The iOS operating system is simpler than Android. When porting an iOS program to Android, you have to take into consideration the following changes:
-
Android has a much larger variety of screen sizes and resolutions, from small to tablet size. See this page for more information on how to deal with it: Android: Supporting Multiple Screens.
-
Android comes with a Back/Quit button. If your app does not handle it, the app will quit without asking.
-
iOS has no Back button. If you want to provide “back” functionality, it has to be in the software, typically with a <Back] button in the upper left of the screen.
-
Android comes with a Menu button. This typically lets the user access extra functionality, such as settings. iOS has no such button.
-
Android comes with Home and Search buttons. The one button iOS has is a Home/Quit button.
-
Some Androids come with a physical slide-out keyboard, and perhaps a D-Pad.
-
The Android user can pull a menu down from the notifications bar at the top of the screen.
-
Android comes with a desktop, onto which the user can place apps, shortcuts (aliases), and widgets. The latter are gadgets that an app may offer that provide a always-available look at part of its contents. In iOS (4), all you have are apps.
-
Android does not have a standard set of fonts. A programmer cannot count on Ariel, Helvetica or Times being present.
-
The user’s default font might not be able to handle non-western characters, such as Arabic or Chinese. Helvetica on iOS does a good job.
-
The default programming language of iOS is Objective C. For Android, it’s Java; quite different.
-
For iOS development, you pretty much need to use XCode on a Mac. For Android, the IDE of choice is Eclipse, on Windows, Mac or Linux.
-
While GUI systems pretty much stick to the idea of placing widgets (buttons, etc) inside of windows, the details differ between Cocoa Touch and Android.
-
The architecture of an app in Android is modularized into classes such as Activity, Intention, Service, Context, ContentProvider, BroadcastReceiver and Fragment. These do not exist in iOS.
-
Android has an Activity Life Cycle : Launch, Starting, Running, Paused, Stopped, Destroyed. This supports multitasking, and , at least earlier versions of iOS do not have anything similar.
-
Both platforms contain a WebView running pretty much the same version of WebKit. Neither version offers scrolling within a frame. In iOS and Android, there are several workarounds, including iScroll.
-
If you program to WebKit, many of the architecture differences become irrelevant. You can add on extra platform functionality, but the core stays 90% the same.
-
The Android ecosystem encourages free apps. You make your money from advertising. The Apple ecosystem is more secure/complex, and better at letting developers charge some money for their apps.