App development is an increasingly popular career choice for aspiring developers, and it’s not hard to see why. The industry offers plenty of exciting challenges, flexibility, and opportunities for innovation and creativity. Web apps and mobile apps are great for providing a highly accessible tool or service to a large target audience, and businesses are turning to app developers to help them unlock more of the market.
With demand for mobile services rising (think Uber, Deliveroo, Airbnb, Netflix, and so on), the future of technology is definitely mobile.
So it’s appealing and you want to get into the industry, but where do you start? And should you become an Android developer or an iOS developer?
Developing for Android and iOS are very different experiences, and require different skills and approaches. Much like learning a new language, it may be easier to pick up a second language once you’ve learnt the first, but you should focus on learning and mastering one at a time.
Between the two choices, you may wonder if developing for one OS objectively better than developing for the other.
As you would imagine, there are pros and cons to developing for each of them, with different advantages and challenges posed by the various coding languages and how they are applied within the systems.
So what are the differences you should consider before diving into a career in Android development and iOS development?
*Click on any of the links to jump to that section
1. The programming language and tools used
The set of languages and tools used for developing on iOS and Android are quite different, and have different patterns, conventions, and quirks. If you already have experience with a language that has some use in app development such as C#, then you may be able to make use of your existing skills (at least gaining experience with the general process of app development in a language you have familiarity with).
You should always be willing to learn more, expand your knowledge and skill set, and expose yourself to new ideas and techniques. The best asset you can have as a developer isn’t just knowing the required language but being able to learn new techniques quickly.
iOS:
Development for iOS, macOS, and any other Apple related systems requires the use of Xcode, which is Apple’s own integrated development environment (IDE). As with most other software products developed by Apple, Xcode will only run on Macs, however it contains every tool that a developer will need to create, test, and publish an app for iOS.
As for the languages used, iOS apps are mainly written in one of two languages: Objective-C, which was the original native programming language of iOS, and Swift, which is the now standard native language (although Objective-C is still somewhat in use and remains well supported).
Swift is Apple’s own purpose made programming language for all things Apple, and comes packaged with Xcode. Swift is increasingly becoming the preferred language for use in apps both by developers and by Apple, is incredibly easy to learn for beginners, and provides a lot of flexibility. It is still possible to create code using Objective-C, and the two languages have a high degree of interoperability.
Android:
The official language used for Android development has long been Java, although many developers are now moving toward Kotlin, which was derived from Java specifically for use in Android development.
Kotlin is an open source language that is sponsored by a collective of large businesses including JetBrains, Google, and more, it was developed to be a much more efficient and maintainable language. It currently has a somewhat dynamic learning curve and is regularly updated, meaning you’ll constantly need to update your knowledge and any existing code.
On the other hand, as a long standing, stable, and well established language, there are an abundance of helpful resources and communities available for learning Java, as well as a wide variety of existing libraries on offer for use in software development projects.
As of May, 2019, Kotlin is Google’s preferred language for all future Android development.
2. Time required to develop an app
The amount of time required to develop and publish an app greatly varies by both language and OS. The amount of written code required, degree of code standardisation for a language, and number and type of supporting libraries available are all factors that will directly impact on how long it will take you to complete a project.
iOS:
For the development phase alone, it can take up to 3~4 months to produce an app’s code depending on the complexity or number of features that are required in the app. The exact amount of time required may vary, but thanks to standardised libraries and practices, a high rate of adoption for new operating systems and new hardware among Apple fans, and improvements to the efficiency of code, it’s becoming far easier to complete projects in a shorter time frame.
Android:
App development for Android often takes longer than for iOS, requiring on average 30~40% more code. It is commonly accepted that this additional development time is due to a combination of Java being clunky and “verbose” having functional limitations, and the need for code to work on a wide variety of devices with differing architecture.
3. App spend and demand
As of the first quarter of 2019, Apple’s App store had around 1.8 million apps available compared to Google Play’s 2.1 million apps (in addition to millions more on the various other Android app stores). The market for mobile handsets has also steadily been dominated by Android since it rose to power in 2013, and Android now accounts for over 70% of mobile devices in circulation. On the other hand, Apple users outspent Android users across app purchases, in-app purchases, and purchases of wearable tech.
Do these figures actually reflect the market demand for apps on a particular OS though?
iOS:
Despite only accounting for a small portion of the mobile market, iOS developers are highly sought after in the industry and the number of apps on the App Store is anticipated to more than double in number and reach 5 million by 2020.
Apple fans tend to be more engaged with digital content, use their devices for longer on average, and have higher rates of app engagement. This trend gives Apple a higher appeal for developers interested in direct profit from customer spending.
Android:
As already mentioned, Android currently dominates the market. Unlike iOS which only works with Apple products, Android is used by a wide variety of brands and devices. Across Google, Samsung, Nokia, Motorola, OnePlus, and more, Android is the engine that drives most phones, tablets, and wearables.
Android users are more likely to only download and use free apps, and will often eschew apps that involve any sort of purchase - whether they be outright or in-app purchases.
4. Flexibility of design and development
How much control you have over the final product can also vary significantly by the coding language you choose, the standards and practices for using that language, and even legal requirements put in place by the OS or the app stores you plan to upload your app to.
iOS:
Apple is known for its consistent brand, design, and layout. That means iOS can be fairly inflexible with some feature designs, and absolutely inflexible with others.
When developing for iOS, there is only the one channel for distribution available, and that’s the Apple App Store. In order to get an app on the App Store, developers must take care to ensure their designs meet Apple’s strict design and UX requirements - which include the placement of buttons, visual display of time and date, bug and crash rates, and more.
All App store apps must be approved by a manual review process, and are usually reviewed within 24 to 48 hours of being published.
Android:
Getting onto the Android store is a less rigorous process, and offers a lot more flexibility for the developer to be creative with their design, and there is no legal requirement to follow a standard design convention - although there are style and UX quality guidelines which you should follow.
Android developers also have more options available for distributing their apps, including Amazon, SlideMe, Samsung Galaxy Apps, and more - which can mean potentially reaching a larger target market.
5. Developer fees and associated costs
Tools and certifications will incur ongoing annual fees in many professions, and the app development industry will put you into that list. The types of tools or certification you will need and the costs associated with them vary depending on languages and software development kits (SDKs) you use, or app store(s) you choose to upload your product to. Some fees are one off, some are ongoing, but it can be tricky to keep up with all the fees you need to pay.
iOS:
iOS development comes at a price - if your app development projects are going to have any sort of price or in-app purchases attached to them, then you will be required to pay an annual Apple developer program fee of USD$99 for an individual or $299 for the enterprise development program.
Android:
There is a one time fixed Google Developer fee of $25USD for submitting your app for approval on Google’s Play Store, however this fee applies only to the initial account creation and enables you to submit any number of free or paid apps.
6. User fragmentation
Software development can be challenging as it is, but throw into the mix the fact that users may have a wide variety of different hardware and operating system combinations, and it can get complex pretty quickly. The amount of time you spend developing can be heavily influenced by how fragmented the user base is, as you spend more time debugging and rewriting code to ensure your app works for the greatest possible number of users.
iOS:
Apple fans love to have the most modern versions of everything, and that extends to their OS. The overwhelming majority of iOS users have a current version of the OS, and many Apple fans are early adopters for new products and keep abreast of new technology.
If one of your major deciding factors is a stable, reliable, and consistent user base, then iOS may be the better choice for you.
Android:
The Android user base is highly fragmented, and over 50% of Android devices were using an OS more than two years old as recently as Q2 2019. There is also a large variety of devices to cater for, with several hundred different manufacturers producing Android devices (including mobile, tablet, and wearable devices).
This means that when developing for Android users, you have to take into account not only current device and OS versions, but also devices and OS versions that may be several months or even years out of date.
For some developers this is appealing, and they relish the challenge of developing an application that works on a wide variety of systems and devices.
To recap and summarise the differences:
If you are looking for the easiest learning experience to simply get into the industry and build an app, then you may find it easier to learn Swift and get into iOS development.
If you are looking for greater flexibility and the ability to innovate through design and crazy new features, then you may want to take the extra time to learn Kotlin, Java, or one of the other languages that will help you get into Android development.
Still not sure whether to becoming an android developer or an iOS developer? Another alternative not covered in this article is to get the best of both worlds by working with both and becoming a Ruby on Rails developer, creating web apps.
PixelForce has an office full of experienced professionals who live and breathe app design and app development for both iOS and Android. If you’re thinking of developing an app, contact us for a free consultation and find out how we can help.