Alex Rivera | Logout

What is the state of non-Objective-C programming for iPhone?

Asked 2009-11-09T19:11:02.450
21

After spending three weeks learning Objective-C and Cocoa programming for my work, I've been tasked with researching alternatives to it for iPhone development.

I know of two existing alternatives, and one future possibility.

C#

  • Xamarin (previously MonoTouch) is a C#.NET implementation with bindings for iPhone specific functionality such as touch screen and accelerometer. It integrates with Xcode and Interface Builder and also allows for custom Objective-C bindings to be made.

Java

  • alcheMo-for-iPhone generates C++ code to be compiled for iPhone from J2ME source. It also provides touch screen and accelerometer bindings.

Flash / ActionScript 3

  • Adobe has announced that Flash Professional CS5 will allow Flash applications to be deployed for iPhone. No details have been given yet.

I'd like to know if anyone has experience with any of these. Our company is looking into re-using code using these solutions if possible, rather than re-writing the same functionality in Objective-C.

EDIT: I know the drawbacks of not using Objective-C and the provided frameworks. I would like input as to possible solutions from people with experience doing this rather than reasons why Objective-C is better.

Edit
Report

3 Answers

1

I've also looked for alternatives to Objective-C because writing it for me is simply not productive. I'm currently looking into XMLVM (http://xmlvm.org/overview/) as a way to write Java which then becomes Objective-C source code. There are many nice things about this solution but the biggest in my opinion is that it produces Objective-C source code so you are not prevented from attaching your core application to APIs which have not yet been mapped using XMLVM. My intention is to write the core of my applications in Java which is then portable to IPhone and Android, then add platform specific functionality on top of that in either Objective-C or Android-Java.

answered 2009-11-09T19:50:22.213
1

I would suggest looking at using a hybrid solution.

Because of Objective-c's flexibility, you can implement your interface in Objective-c and your data model in almost anything else. You can practically draw the interface using Interface Builder so your actual coding in Objective-c is minimal. The real challenging parts of most serious applications are in the data model and that is where you are most likely to have legacy code or code from other projects.

As noted here by others, there are many libraries that allow you to glue almost any major language/API into Objective-c.

answered 2009-11-09T19:59:24.240
1

Although using C# and Java on the Iphone will make someone with a background in those languages feel more confortable, I'd still stick to ObjectiveC.
In the beginning it'll seem easier to use C# or Java but will may be harder later on. For instance, what if Apple decides to modify the cocoatouch framework in the future? You'll have to depend on monotouch implementing all those changes and in fact will be lagging behind on the guys who are using ObjectiveC.
Even when Apple does keep things as they are, it'll still be possible you'll run in quirkinesses of the Mono stack and will have to jump through hoops to get things done.

answered 2009-11-09T20:03:34.520

Your Answer