iOS vs Android App Development in 2017

iOS vs Android App Development in 2017

March 5, 2017

Mobile app development is one of the most lucrative fields for developers today. With Android and iOS accounting for over 95% of the mobile market, virtually all mobile developers find themselves choosing between the two platforms for their projects. This article discusses the key comparisons when choosing Android/iOS for your project.

Learning Curve

If you've never done mobile app development, then you'll experience a similar learning curve with both platforms. While iOS has a more established IDE (XCode) than Android (Android Studio), it's still written in Objective C and has an interface builder that takes some getting used to. Objective C is essentially Apple's version of Java. Both are verbose and object oriented. Like Java, Objective C also relies heavily on boilerplate code and is strongly typed. If you're coming to mobile app development with a JavaScript background, then it may take some time getting used to the more verbose syntax of both Java and Objective C.

What About Swift?

iOS has introduced Swift, a language written to address the pitfalls of Objective C. It's syntax is much more similar to a dynamically typed language (like JavaScript) and may be easier to start with if you've never written Java, Objective C etc.

Similarities

Even with Swift's less verbose syntax, iOS still shares a similar learning curve with Android. Both share a similar project structure and are MVC like in nature. This means once you understand the relationships between the views and business logic you'll more easily transition between the two platforms. Similarly, once you get familiar with either Java/Objective C you will have an easier time exploring the other side.

Differences

Swift/Objective C handle null pointer exceptions more elegantly than Java. This means your app won't crash if your code produces a null value. With Java, null pointers will crash your project without clearly revealing their roots. This can slow down development time considerably as errors are harder to track with Java. Conversely, you are able to catch things like memory leaks earlier with Java's stricter debugging.

View rendering is another key difference. While XCode has a robust interface builder with drag and drop capabilities, Android relies more on XML for layouts and rendering. If you're familiar with CSS, then this actually isn't too bad. It's just a matter of learning Android's version of things like padding/margin and applying them to your layout 'components'. However once you've experienced the ease of dragging a UI element onto a screen canvas and having all the code prepopulate, it will be tough for you to appreciate Android's XML approach.

.

Revenue Opportunities

Research has shown that, while more people have Android devices than iOS devices, the iOS App store generates around 75% more revenue that Android's Google Play store! This means that iOS users are more willing to pay for apps than Android users. If your an independent app developer looking to make good money, iOS may be the platform to hone in on.

Fragmentation

Cross platform development is always important to developers who want their app running on as many devices as possible. With iOs development, your developing for considerably fewer devices than Android. XCode's interface builder also makes views inherently more responsive than Android. This means it can take more time to make your app responsive for Android than iOS because you have more potential devices running on more potential versions.

App Capabilities

A bi-product of Android's more fragmented environment is it's ability to control the device it's running on. With Android, you can tap into app sharing, launchers etc. While iOS does give you a more performant 'sandboxed' environment, it severely limits your ability to interact with the native technologies of the device. Sure you can interact with the camera feature etc., but your interaction with other apps / functionality running on the device are severely limited with iOS.

Approval Process

Getting your app into the store is much more painstaking with iOS. First you have to register as a developer which costs $100 annually. This contrasts greatly with Android which only requires an initial $25 fee. Additionally, you have to download certificates and link them with your account to become an 'approved vendor' with iOS. You submit your builds and they are reviewed between 2-7 days. Sometimes your apps can get rejected with vague reasons and this gets frustrating as you have to repeat the approval process each time you submit a build.

Android is cheaper and less strict in terms of publishing. You submit a few screen shots, pay the fee and your app will appear live in the store a few hours later. It's not the most enjoyable process, but when compared to iOS will seem like a breeze!

Conclusion

Both iOS and Android share similar learning curves but for different reasons. If you've worked with Java before, then getting started with Android will be easier than iOS. If you have more front end experience, then Swift may make iOS a better place to start. In general, iOS app development is more lucrative from a revenue standpoint but Android allows you to reach a larger audience and faster.


Join the conversation...



Submit

i'm all about the XIB and iOS. they make it so easy to drag and drop elements onto the screen and linking up elements to viewController functions is pretty straight forward. I have never done Android development but hear their interface builder isn't quite up to speed with the more established xCode.
Posted by Terry Beal on May 11, 2017
i recently had to build a native mobile app solution for both iOS and Android. i was building out the same functionality and the idea was pretty simple, just a single page view with some charts etc. android was super simple in terms of "deployment" or getting it live in the store. Apple was more expensive and time consuming with the review process etc. Android layouts were more straight forward. creating a responsive design was easy with the xml linear layout concept. ios had a nice interface builder but it took a lot of tweaking to get it to play nicely across different devices...
Posted by Sundari B. on April 19, 2017
i have to say coming from iOS into the Android world i was a bit nervous. But honestly Android has a much more simplistic way of handling views. It's all just XML and that made things so easy for me...but also just do everything server side in JS and then use Android and IoS sdk as basically template engines...take as much work off the clients rendering the content as possible...
Posted by David Morwrath on April 7, 2017
iOs brings a much more affluent demographic to the table. so it makes more sense for individual developers who are trying to make money from apps. android gives you access to a lot more customers ..just cheaper ones at some point it's just what is right for you.
Posted by ios fan on March 22, 2017
agreed this is good to know..especially when you're not coming from a java background.
Posted by Todd Anderson on March 5, 2017
thanks, super relevant...
Posted by Sam Erickson on March 5, 2017


More by the stackchief