Hey Philippe,

Thanks for posting the project! I think there's quite a bit of
interest in this, and I'll do my best to help you debug and test the
compiler. I'll try to use this with some of the code I've written in
my iPhone app and let you know if I encounter any problems or bugs.

- Ben

On Jan 18, 12:34 pm, Philippe Hausler <phaus...@gmail.com> wrote:
> Well I have not only objc 1.0 support working, but also objc 2.0!
> In response to the project license type (since it is a modification
> of gcc it ought to be): it is GNU GPLv2.
> The project is hosted onhttp://code.google.com/p/android-gcc-objc2-0/
>
> Support? Well I need to have people test this extensively.
>
> Some things that need to be tested (and probably debugged/worked on):
> Fast enumeration ala foreach type code
> Blocks
> atomic, copy and retain properties (nonatomic and assign work so far)
>
> Right now my major focus is on making the compiler work correctly.
>
> On Jan 18, 4:24 am, kai <k...@ihuppmann.de> wrote:
>
>
>
> > Hi Phillippe,
> > great plan (I discussed this with my colleagues before, then searched
> > at google
> > if somebody's already doing this and found this thread).
> > How is it going? Do you plan anything to make this project public in a
> > way that I can
> > support you somehow?
>
> > - Kai
>
> > On Jan 7, 7:11 am, Ben Gotow <bengo...@gmail.com> wrote:
>
> > > Hi Phillippe,
>
> > > Wait... you've coerced GCC into building objective-C for Android, as
> > > well as libobjc.a? That's fantastic! Have you tried to compile
> > > anything against GNUStep's implementation of Foundation? It's pretty
> > > much identical to Apple's, and it might allow Foundation-referencing
> > > Objective-C libraries to be linked into Android apps.
>
> > > I realize you have much greater expectations for this project, but
> > > that alone would be a major accomplishment. I've written several apps
> > > for iPhone and I'm looking to port one of them to Android. I'd like to
> > > avoid translating tons of code from Objective-C to Java, and being
> > > able to keep a single copy of the Objective-C source and compile it
> > > into a static library for Android devices... that would just be
> > > incredible.
>
> > > If there's anything I can do to help you in your efforts, just let me
> > > know. I think you could post this as open source donation-ware and
> > > make quite a bit. Being able to compile Objective-C static libraries
> > > for Android (even without UIKit) would save me weeks of work.
>
> > > - Ben Gotowhttp://www.gotow.net/
>
> > > On Jan 5, 3:48 pm, Gergely Kis <gergely....@gmail.com> wrote:
>
> > > > Hi,
>
> > > > Do you plan to release your work as open-source (hopefully under
> > > > Apache 2 to be compatible with the rest of Android)?
>
> > > > Best Regards,
> > > > Gergely
>
> > > > On Sat, Jan 2, 2010 at 6:48 PM, Philippe Hausler <phaus...@gmail.com> 
> > > > wrote:
> > > > > Thanks for the feedback! I am quite familiar with Cocotron, very cool
> > > > > project (albeit that it could use some commercial support to drive
> > > > > more time devoted to development). So far with my tinkering the
> > > > > compiler fully works, and I have been able to construct from scratch
> > > > > some of the base classes from Foundation and UIKit. My approach was to
> > > > > build a static library housing some of the base calls to load a JNI
> > > > > app that has hooks peering into the base structures of my Foundation
> > > > > and UIKit classes. Ideally I would like to have the libraries loadable
> > > > > to a path e.g. /system/Library/Frameworks/Foundation.framework/
> > > > > Foundation.so to more closely mimic the loading schemes used in the
> > > > > iPhone (this would provide more seamless integration between the
> > > > > "port" and the "original platform"). However this does not seem to be
> > > > > a valid place to keep them. The /sdcard path is writeable but for some
> > > > > reason the System.load does not want to load libraries from that
> > > > > location. So right now the biggest hurdle is where can I store a
> > > > > shared library that might be utilized by many applications? So far my
> > > > > code for Foundation and UIKit is fairly small, but I could see where
> > > > > the library may reach a point at which it would be cumbersome to
> > > > > require anyone who downloads an application that uses this to have to
> > > > > download the entire library for each application (these are mobile
> > > > > devices and memory space is limited).
>
> > > > > So far I think I can keep most of the heavy lifting to create the full
> > > > > API level runtime in c/obj-c instead of having to do the majority of
> > > > > the work in Java, but for the UI it is most likely that classes such
> > > > > as UITextView would have a binding to a jobject pointer to a
> > > > > android.view.TextView object. The Android platform has some nifty
> > > > > features like the override methods for theming, I could see where this
> > > > > advantage might cause some consistency issues with objc iPhone ported
> > > > > apps if the UIKit classes did not utilize their Java counterparts. And
> > > > > as per using the existing libraries from the iPhone, this is flat out
> > > > > not doable, there is a slew of platform issues that would prevent
> > > > > this, first and foremost the devices are different CPUs (the droid is
> > > > > an ARMv5te? and the iPhone is ARMv6), second off the iPhone is mach-o
> > > > > where as the android is ELF so the application architecture is
> > > > > different from the ground level, direct binary compatibility is not
> > > > > feasible. As I had mentioned before, I have gcc built to compile objc
> > > > > for Android, as well as the libobjc.a.
>
> > > > > I had not seen the XMLVM project. Quite interesting, however it seems
> > > > > after briefly looking at it that is the reverse direction, it takes
> > > > > the Java VM bytecode and creates native machine bytecode, the reverse
> > > > > ala llvm -> conversion -> jasmin might be doable but I think might
> > > > > require more work than its worth to port the libraries into a pure
> > > > > Java implementation that interfaces on that level.
>
> > > > > On Jan 2, 10:10 am, Gergely Kis <gergely....@gmail.com> wrote:
> > > > >> Hi Philippe,
>
> > > > >> It would be nice to be able to use Objective-C libraries on Android,
> > > > >> e.g. to port IPhone applications.
>
> > > > >> Have you looked at Cocotron (http://www.cocotron.org/)?Theyhavean
> > > > >> implementation of various Cocoa frameworks that work on both Windows
> > > > >> and Linux. I don't think they started to work on UIKit or IPhone
> > > > >> specific parts.
>
> > > > >> I don't think that the Android platform will have ObjC support
> > > > >> officially in the foreseeable future. So if you want to be able to
> > > > >> develop for consumer devices (that are not explicitly customized to
> > > > >> allow ObjC apps), then each application will need to include the ObjC
> > > > >> runtime + libraries.
>
> > > > >> This probably means static linking, and some magic to initialize the
> > > > >> Objective-C runtime from the Java side, because last I checked,
> > > > >> application lifecycle management was only exposed in the Java API.
>
> > > > >> Of course, such applications would be larger, but the same has been
> > > > >> done for IPhone as well, for example with MonoTouch where the whole
> > > > >> .NET runtime is packaged with the applications.
>
> > > > >> Regarding Android API / UI integration: It is probably a good idea to
> > > > >> look at how the Android Scripting Engine integrates different
> > > > >> languages to the regular Android API. With a sufficiently generic
> > > > >> Java-ObjC API bridge you can write Android applications in
> > > > >> Objective-C, and possibly reuse already existing ObjC / IPhone
> > > > >> libraries.
> > > > >> Then, when you have a thin Objective-C wrapper over the Java API, you
> > > > >> can try to build a UIKit wrapper, so that IPhone applications can be
> > > > >> ported with minimal source changes.
>
> > > > >> FYI: The XMLVM project (http://www.xmlvm.org) is doing something very
> > > > >> similar, but the other way around: It allows cross-compilation of
> > > > >> Android applications to native IPhone / Objective-C applications. It
> > > > >> has Android API emulation, also a Java wrapper for IPhone APIs, plus
> > > > >> an ObjC implementation of the Java Runtime (java.lang, java.util 
> > > > >> ...).
> > > > >> Of course it is not yet complete, but it is actively developed. (We
> > > > >> are using it in one of our projects.)
>
> > > > >> Best Regards,
> > > > >> Gergely
>
> > > > >> On Thu, Dec 31, 2009 at 7:00 AM, Philippe Hausler 
> > > > >> <phaus...@gmail.com> wrote:
> > > > >> > * Post moved from android-platform group *
>
> > > > >> > First off let me give some background about myself and my inquiry: 
> > > > >> > I
> > > > >> > am an iPhone developer, and I am an Android developer. I have
> > > > >> > recently
> > > > >> > embarked on a potentially interesting side project that others may
> > > > >> > see
> > > > >> > some use to. Just as a preamble, I am not looking to have any sort 
> > > > >> > of
> > > > >> > feedback on the benefits of Java versus Objective-C either
> > > > >> > linguistically or efficiency etc. I am looking for viability of how
> > > > >> > this can be accomplished.
>
> > > > >> > In this project I have started, I have successfully compiled, 
> > > > >> > tested,
> > > > >> > and verified a variant of the Android NDK to build ObjC binaries 
> > > > >> > for
> > > > >> > the Android platform. After coercing the compiler to do my bidding
> > > > >> > (along with hammering Xcode to recognize the new platform), my next
> > > > >> > trick will be making a code compatible port of some of the base
> > > > >> > frameworks from iPhone to the Android platform. I need suggestions 
> > > > >> > on
> > > > >> > the path of implementation for a few fundamentals...
>
> > > > >> > Dynamic Libraries or Static?
> > > > >> > Should my port build the framework libraries as dynamic and if so,
> > > > >> > how
> > > > >> > and where would they ideally be stored on the device?
> > > > >> > If the frameworks should be static library inclusions into the 
> > > > >> > built
> > > > >> > applications, will this have a horrific adverse effect of the 
> > > > >> > device
> > > > >> > limitations per installed application size (my best guess is that 
> > > > >> > it
> > > > >> > will be an issue)?
>
> > > > >> > Inherited UI or ported UI?
> > > > >> > If I am successful in the port of Foundation, the next logical step
> > > > >> > will be UIKit. I am a firm believer in consistency of the user
> > > > >> > experience for operating systems, so a tie-in to the native UI 
> > > > >> > would
>
> ...
>
> read more »
-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

Reply via email to