Hi Philippe, Its quite an interesting achievement. I would be delighted to work for it.
Regards -Durgesh O Mishra 2010/1/19 Ben Gotow <[email protected]> > 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 < > [email protected]> 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 <[email protected]> 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 < > [email protected]> 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: > [email protected]<android-porting%[email protected]> > website: http://groups.google.com/group/android-porting > -- "If you only have a hammer, you tend to see every problem as a nail."
-- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting
