What are the key factors which makes an app more of android or iPad specific. Would like to hear about usability part of it also.
There are some major differences:
- Screen Size and Orientation
- System Bar
- “Back” Button
- Action Bar
- UI Elements
Take a look at Designing for Android Tablets for more details.
The biggest issues in my mind on Android are the wide variation in screen sizes and pixel densities; relative layouts can help solve this issue somewhat. Remember on the iPhone/iPad you have exactly two screen sizes (times two orientations). Across Android you have indefinite potential screen sizes, in both physical size and pixels.
Another issue is that on Android you have buttons; home, menu, back and search, whereas the iPhone just has the home button (which should remain as a home button). Android also has the potential to have a keyboard or trackball included as well. This gives you extra capabilities, but I would not depend on them. Many/most android users don't have keyboards or trackballs, and avoiding use of these buttons can help you keep an app consistant across phones. They can help bring a little added functionality though, and many people know to use the menu button at least.
Multitasking is a big difference programatically; android lets you run a "service" in the background for live updating data, which has some great potential, but always consider if this is appropriate. When your app runs in the background this adds memory and CPU usage, reduces battery and can affect system stability. If you're designing an app for both Android and iPhone I would stay away from this unless there's something really cool you can do with it; you'll keep your app simple and consistent across both platforms, and you can avoid complications with the process lifecycle.
Widgets are a cool feature you can add for an android version; however most non-technical Android users I know had never heard of widgets or were unclear what they were or how they worked, much less how to add a new one to their screen. Don't depend on a widget, they're extra goodies most of the time and often overlooked.
The biggest problem people usually have is when an iOS app is different from the Android version. People hate this, and most of us with smartphones have at least one friend with the other OS, and word travels fast if an app doesn't function as well/the same on both platforms. If you're looking at developing on both, I would intentionally avoid unique features of both, only consider them when you can give the same functionality transparently to the users.
Generally speaking Android gives you more functionality than iOS actually, yet people tend to prefer iPhone versions of apps; this is in part because many companies put more effort into their iPhone version, but remember you can avoid this if you just keep them the same.