iOS to Android (Architectures)

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.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s