

Is Android development tougher as compared to iOS development - manish_lnmiit

I am iOS developer, when ever I try to implement it, it implemented easily without much efforts. While Android people always struggle to make that design. Is it like Android development is tougher than iOS development. Also why every app first comes on iOS platform?
======
geal
These are different platforms:

* UI design is a lot easier on iOS if you use XCode's interactive designer. Doing it on Android with Eclipse's designer is painful, but I expect that Android Studio will make that easier.

* UI design without the interactive designer is easier on Android, because iOS is quite verbose for this

* About the code, I have found that iOS's APIs are badly designed, and change too often. The API's of Android are much more stable, but they can require too much code sometimes (example: setting onclick listeners for elements).

* About the tests, it is a lot easier to test for every iOS device, because there are so few (and iOS versions are rapidly deprecated). Android devices have a lot of different OS versions, screen resolutions, CPU, etc. That makes it tougher to test exhaustively.

Nevertheless, I have found that Android development is a lot easier than iOS
development (at least for me), simply because XCode spends its time fighting
me. For Android, I can just bypass Eclipse and work directly in vim with a
Makefile, or I can develop in Scala and use SBT. It's much more fun that way
:)

And to answer the last question: apps are primarily developed for iOS because:

* it is believed that iOS users are more likely to pay for an app

* journalists are often more on iOS than Android (and you want to please them)

* CEOs are often more on iOS than Android

~~~
manish_lnmiit
Thanks for your reply, you clearly have cleared some of my doubts.

------
gregorkas
Actually it depends on what you're trying to do - a good Android developer
will spend the same amount of time implementing some of the features as a good
iOS developer and some things are easier to do here and some there. The main
issue I think is the learning curve, because on iOS you usually have to think
about memory allocation (although it got better with ARC), but other than that
I wouldn't say that either of the platforms is "tougher".

The main reason some apps come to iOS first is better app discovery and a
larger user base. If you manage to score a high user base, the monetization is
quite awarding so that's why developers choose iOS first. Definitely not
because of iOS being easier than Android.

~~~
manish_lnmiit
Thanks mate for your feedback. I sometimes thought products comes first on iOS
because its easy and less devices to tackle with as compared to iOS. So,
experimenting with iOS is a good way to go. Although I know that for
revenue/monetization purposes iOS is more fruitful than Android.

------
bookwormAT
Android is a cross platform technology that is used by many companies to
create all kinds of device software.

Building an app for the Samsung Galaxy S is about as hard as making an app for
the iPhone. But an App that runs on both the Galaxy S Software and the HTC One
Software is much easier to build that one that runs on the Apple iPhone and
the Blackberry Q10

Because Android is a cross platform technology, designing an app for Android
is more like doing on for the web.

~~~
manish_lnmiit
"App that runs on both the Galaxy S Software and the HTC One Software is much
easier to build that one that runs on the Apple iPhone and the Blackberry Q10"
what does it signifies??

------
stewie2
yes, it is. I started with Android (because I don't need to pay for developer
membership), but I hate it very much. Eclipse is very shitty IDE. So many
bugs, so slow, so not user friendly.

------
Zigurd
The first thing I tell designers and coders with iOS experience is to get over
trying to make your layouts pixel-perfect. It's such a simple thing. But so
many projects end up wasting a lot of resources, or even end up locking screen
orientation when they first ship because they didn't take this seriously.

The other side of this coin is that a simple wireframe can get implemented on
iOS quickly, while on Android, the coders may spend a lot of time on multiple
layouts, multiple sets of graphical assets, different font sizes, different
screen dimensions and densities, etc. It often helps if the designer
participates in creating and testing layouts and assets for an Android
version.

Secondly, a lot of coders who don't also have some server-side Java experience
find Eclipse jarringly unfriendly. Spend some time getting used to Eclipse and
understand how the "It's plugins all the way down" model makes Eclipse do some
stupid things. Android Studio is much better, but it's still an "early access"
release.

Thirdly, Android's runtime is a platform for apps and system middleware. Large
parts of the Android system are written in Java using the same toolchain as
apps. You can, for example, add an API to Android that other apps can use. You
can communicate with lots of other apps. You can "borrow" parts of apps' UI
and ask them to do particular tasks, like picking a file, for you, and you can
let other apps do the same with your app. Android is more complex because it
is more expressive.

