Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Porting iOS app to Android [closed]

we made a quit big iOS application with 2000+ objective c classes. I am wondering there is a best practice guide to port it to Android ? Currently I am looking at Visual Paradigm (UML) which reverse engineers objective c files to UML. Like Enterprise Architect it also allows me to generate code(headers + declaration) for another popular language like java or c++. Are there any other approaches yet ? Also, as our app is heavily using the UINavigation and UIView controllers, I am wondering there is similar model and implementation on Android.

Thanks so far, guenter

like image 919
xamiro Avatar asked Feb 14 '11 15:02

xamiro


3 Answers

In all honesty, I think that what you are planing is just going to make for crappy code that will be insanely hard to maintain. I realize it sounds like a lot of work, but its gonna be easier in the long run, I would just "port" the concept of the app to android and write it from the ground up.

like image 126
blindstuff Avatar answered Oct 04 '22 16:10

blindstuff


The Apportable SDK

It cross-compiles Objective-C applications to Android, without extensive changes to the original codebase. Instead of translating the code to Java, Apportable cross-compiles your code to run directly on the Android device’s processor, bypassing the Java runtime, resulting in speed and performance that rivals the iOS version.

The platform has been tested on Apportable’s library of over 150 devices and in the wild, where Apportable-powered apps have received 5-star reviews on thousands of devices.

check out the sdk here

like image 33
Durai Amuthan.H Avatar answered Oct 04 '22 17:10

Durai Amuthan.H


AFAIK there is no automatic tool to convert Objective-C to Java. There is java2objc that does the reverse.

Here are some official tips for porting Objective-C to Java: http://www.nextcomputers.org/NeXTfiles/Software/WebObjects/Guides/PortingObjectiveCtoJava.pdf

I'm not an iOS expert, but AFAIK iOS does not have layout managers - it uses XIB/NIB to do layout (or dynamically in code, which is not recommended). On Android there are layout classes which are primarily used to support different resolutions. Also, layout is declared via XML files.

So it seems there is a lot of hand-coding in front of you. Since a project is quite large, I'd get a help of an expert that knows both Android and iPhone.

like image 39
Peter Knego Avatar answered Oct 04 '22 17:10

Peter Knego