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 on http://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
> > > >> > be the best route in my opinion. This poses a quandary, how can a c/c
> > > >> > +
> > > >> > +/objc application bind into the Java based UI? Is there a lower
> > > >> > level
> > > >> > hook point for this? Can the JNI be bi-directional for connections to
> > > >> > UI elements?
>
> > > >> > The overall aim to this project is somewhat academic at the moment,
> > > >> > however for the concept of speed of porting applications to multiple
> > > >> > platforms this would definitely be quite attractive to developers
> > > >> > currently developing for iPhone and wanting to migrate to the android
> > > >> > platform.
>
> > > >> > I would love to hear any constructive ideas in regards to these
> > > >> > issues.
>
> > > >> > --
> > > >> > unsubscribe: [email protected]
> > > >> > website:http://groups.google.com/group/android-porting
>
> > > > --
> > > > unsubscribe:
>
> ...
>
> read more »
-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting

Reply via email to