Android vs iOS: Which Should I Learn First?
Mobile development is the fastest-growing domain in the software industry, full of opportunities and freelance job possibilities. Mobile development—and the job of the mobile developer—is changing all the time, with updated versions of operating systems (OS), new devices, and new technological capabilities.
ANDROID AND IOS: OWNING THE MOBILE MARKET SHARE
The most popular operating systems are Android, iOS, and Windows. Currently, iOS and Android have taken over the majority of the mobile industry. According to recent stats, the two platforms account for around 96.7% of the entire market. With such huge audiences, iOS and Android offer plenty of opportunities for those who want to pursue a professional career in either OS, each with its own pros and cons for developers. Some mobile developers eventually strive to learn both operating systems to diversify their skill sets, but for beginner mobile developers, it’s best to choose the OS you’ll want to learn first and go from there.
An introduction to basic mobile app structure
No matter which platform you choose to learn first, there’s a basic principle of mobile development you should master: the Model View Controller (MVC) pattern, which dictates the process a mobile developer follows during development. In this three-tiered structure, the business logic, screens, and assets are managed separately in different files and directories within the same project. The three-tiered MVC development approach can be summarized into three key steps:
Once a developer is familiar with MVC design and its principles, here are some other things to consider that might help a developer select a mobile operating system to specialize in.
They say the first step is always the most difficult one. It takes time to get familiar with any new technology, and mobile application development is no exception. Expect it to take some time to learn, depending on how well you understand basic development principles. Android and iOS both have different complexities and standards, which result in different learning times for both. iOS is a mature operating system compared to Android, and it has a predefined set of standards and rules. iOS strictly follows the rules, which often makes App Store approval difficult. iOS also has pretty good tools, like the newer Swift programming language, which makes its learning time potentially shorter. Android is vast, with more than 5000 devices from different vendors running different OS versions, screen sizes, and densities, which means a developer has to account more for compatibility and testing in the development process. In Android, outputs from the code can be a little complex, which makes it difficult for a beginner to understand it without diving into the depths of the code. Since Android is programmed in the Java language, developers with a background in Java programming may find it easier to transition to Android than iOS.
For iOS development, developers are required to subscribe to Apple’s membership program to publish apps to the App Store. Apple offers different programs with different requirements. An individual developer program costs around $100 a year, which may be a lot for a freelance developer who’s just building their business. On the other hand, Android doesn’t require any kind of subscription or membership program for development. But in order to publish an application, the Google Play store charges a one-time $25 registration fee.
For iOS development, a predefined set of standards and rules listed by Apple must be followed in order for an app to be approved and published in the App Store. In Android, a developer has more freedom and can explore different solutions for the same issue, e.g. writing custom views or modifying native views. This isn’t restricted in Android, but in iOS this kind of flexibility is off limits. During iOS development, screens are designed with a drag and drop interface. This can be done with a mouse and shortcut keys, mostly in interface implementation. You’re only able to add tabs with the NavigationController which is a graphical interface, giving you fewer options. If you attempted to change the position of tabs in iOS, for example, the app would be rejected. The Android UI graphical interface isn’t quite as convenient or handy, requiring you to write code in XML for optimal screen design. In the Android UI graphical interface, layouts and views are written in XML. Paddings, weights, margins, and gravities of Views are coded in. Designing screens in XML is helpful because it allows you to analyze the View hierarchy of a screen at a glance. Some Android-specific features like Background Processing (Services), Broadcast receivers, Intents, and Content Providers offer a developer very deep understanding of a mobile operating system. Moreover, it enhances your development skills, which can be used on other platforms.
So, which is right for you?
After comparing some leading features of iOS and Android development, on one hand iOS may seem like a better option for a beginner without much prior development experience. But if you do have prior desktop or web development experience, we would recommend learning Android development. Learning Android provides a deeper understanding of how things work in mobile development. It gives you more control compared with iOS, allowing you to programmatically add/remove and edit your screens, and write screens in XML from scratch, all of which give you a better understanding of a mobile operating system’s workings. In iOS, you have less control over modifying default behaviors of views/applications, and screens are built with a graphical interface (drag and drop). Android also gives developers more freedom to solve problems, and allows the developer to do so using whatever custom or native approach he wants. For example, suppose you want to implement Tabs in your application. In Android, you have options for how you want to add tabs—to the Action Bar, via TabbedView, or at the top of bottom of the app—but in iOS, you have fewer options. Android gives an open choice to new developers. It allows you to test and distribute your application on the Google Play store or any other medium if preferred. Although Android development takes more time to master compared to iOS, its complexity can boost your confidence to master other mobile platforms and tools like iOS or Xamarin. In short, we would suggest you approach mobile development as a challenge. Start learning Android if you want to jump into mobile development and expect it to take about 1-3 months to understand it completely.