What is the most efficient way to port an iPhone app to Android? I know Apple doesn’t like 3rd-party, non-Objective C platforms generating code for their platform … but is there something out there that can take an iPhone app and convert it to Android friendly code?
If not, how have folks out there been creating Android versions of their existing iPhone apps?
There’s nothing of the sort to port your app. You can use 3rd party tools to create apps that work in both. That’s what Titanium and PhoneGap were aiming at. With the new changes to the SDK Agreement, those look like they’re not really “legal” or at least violate the agreement.
As for your other question, yes, people do create 2 separate apps. One for Android and one for iPhone. That’s the way I currently do it and seems as if Facebook and others do the same.
Yeah, people don’t usually love the answer that we have for this one at Appiction. It seems like it should be easy since they are so similar, but they are completely different operating systems with different ways of being used. Sometimes a company will be able to cut a deal with you since the art has already be developed and the basic wireframes have been conceived. At Appiction we created a video to answer this exact question for our clients: http://www.youtube.com/watch?v=Y-fdRw1WNYI
Apportable provides a platform to build and deploy existing Objective C apps to Android.
There are few alternatives to port an app from one platform to other. like Rhodes Mobile, Titanium and PhoneGap. In fact they did a good job and tried very well to remove fragmentation in smart phone app development.
But according to Apple’s SDK Agreement version 4.0, section 3.3.1
app must be developed in C/C++/JAVA script.
At this stage convincing way is to write it separately.
PhoneGap is not a true cross platform app development tool.
If you want to create an app for both iPhone and Android using PhoneGap, then you have to create two different apps that will make use of PhoneGap framework. But one single app for iPhone and Android can’t be created using PhoneGap.
There really isn’t a short cut to porting. The best thing you can do is use a company that specializes in porting, like migration.mobi. The cross-platform frameworks have performance problems and really limit what you’re able to do.
Games are a different story altogether, so be ready for different answers if you’ve been a complex real-time game on iPhone and you want it to work on another platform.
Noodlecake Studios appear to have solved the issue of porting from iOS to Android, recently porting Trainyard among others:
Its no secret that the process of porting iOS games to the Android
platform has been met with rough waters… These issues are
familiar to us at Noodlecake Studios and prompted the creation of
Noodlecake Games, a porting and publishing entity designed to
alleviate many of these problems. Through our efforts over the past
year, we have developed technology that allows us run iOS code
natively on android devices. What that means for developers is there
is no need to rewrite iOS code for the Android platform, it all runs
automatically. To be expected, many developers at first didn’t believe
what we were doing was even possible.
At android there are 2 categories: the lower one, with g1 and the better with Nexus 1 if you want to develop games.
Those cross platform libraries I think they can do cross platform “Hello word” applications.
To generate a correct Blackberry networking application or an optimized Android graphic application (to both categories), I highly doubt it!
- the frameworks has the big cons, when you want to look outside of the sandbox. Those 3-4 custom stuff, plugin often cost more, than the whole application written fast until that point.
So, “Hello word” +very basic, only soft stuff with cross platform.
High performance, nice graphic, easier to bugfix, support, professional work: develop for each platform and categories.
There actually is a tool that does exactly what you’re asking called O2J. You can leverage your existing Objective-C codebase and convert it to Java with the O2J conversion tool.
It’s a paid app available on the Mac App Store… O2J Objective-C to Java Converter
Most of the time it’s preferable to have a native UI and native code for performance, working with the platform UI paradigms and to take advantage of platform specific APIs/services.