Are you considering mobile development as a career path in 2020? Mobile Apps are everywhere and every product has a mobile version in the app store. I hardly ever use my laptop to browse the internet, or shop for products anymore. Today, everything is done using the phone and it makes sense that mobile development is a great career to build as a software engineer. In this article, we will explore the various paths to becoming a Mobile Developer in 2020.
Before we get started, it is important to know that Mobile Development has come long way today, and there are several types of Mobile apps. Depending on your skillset and use-case you have to pick the type of Mobile App, that you are building.
Native Apps (Single Platform)
This is the first and the most traditional way of building a mobile app. Native apps are those, that are built exclusively for a specific platform. They could be iOS apps or Android apps, or even Windows apps. Mobile developers who work on native app development need to pick and specialize in one of these platforms. You will hardly ever meet a native mobile developer who builds both iOS and Android apps. This is because, the skillset to build iOS vs. Android native apps are completely different.
Alright, let’s say you want to build a native iOS app. Let’s see what that really means.
Millions of people love apple devices and own an iPhone or iPad. If most of your users are going to be on an iOS device, and you are exclusively building iOS apps, you would need to learn either Swift or Objective-C for coding the app. Apple is known to be restrictive when compared to their other peers. Technologies that were born out of corporate companies like Facebook, Google and so on, there is a heavy push towards being a part of the open-source community. Whereas, with Apple, you don’t see this as much. Swift and Objective C are languages that are used to exclusively build iOS apps, and you may not find any value in them outside of the Apple ecosystem.
Another thing to consider, is that you will absolutely need a MacBook to develop native iOS apps, and that would be your first purchase as an iOS developer.
Programming Language: Swift/Objective C
Device: Need a MacBook to develop native iOS apps
Android has the largest number of users even today, and building native Android applications is another career path in becoming a Mobile Developer.
Good news is that you can use Java which is a popular programming language to develop Android applications. You could always use your skills in Java to develop other applications outside of the Android world. Recently, Kotlin has also been emerging as a popular alternative to Java in developing native Android applications.
Kotlin is an open-source, statically-typed programming language that supports both object-oriented and functional programming. Kotlin provides similar syntax and concepts from other languages, including C#, Java, and Scala, among many others.
Unlike the iOS world, where everything is exclusive to the iOS platform, Android applications use open source languages like Kotlin. This definitely provides a better developer experience overall.
Programming Language: JAVA/Kotlin
Tools: Android Studio, Eclipse IDE
Cross Platform Native Apps
Although native development is still a good option as a career path, it is not always necessary to build native mobile applications. Cross-platform apps are becoming increasingly popular these days.
Cross-platform native mobile apps are apps that are built with a single code-base, for multiple platforms. This means you maintain one code-base and build both native iOS and native Android apps at the same time.
This a huge jump in the way mobile apps are built. Cross-platform apps do not require multiple development teams managing different codebases, instead one development team can code for all platforms. It is a big cost saver for companies. There are multiple options available, if you decide to take the path of building cross-platform apps.
To become a React Native developer, below are the skills that you will need to learn.
Tools: XCODE, Android Studio
Further Reading: Additionally, learn more about React Native from our blog post.
Flutter is a counterpart to React Native. It has gained immense popularity as well and is emerging as a great option to build cross-platform mobile applications. Flutter is written in a language called Dart. Flutter is Google’s open-source SDK for creating apps for Android and iOS using single codebase. Google is heavily backing Flutter, just like Facebook is backing React Native. The Google community is invested in making Flutter one of the best solutions out there to build cross-platform apps.
Programming Language: Dart
Tools: XCODE, Android Studio
Further Reading: Additionally, learn more about React Native vs. Flutter from our blog post to understand how they compare.
Xamarin is a cross-platform, open source platform that is used to build iOS and Android apps using .NET and C#.
Xamarin is part of the vibrant .NET ecosystem, used by millions of developers worldwide. Xamarin also builds purely native apps cross-platform. The difference between the frameworks is really the tech stack. If you are someone already familiar with Microsoft technologies like C# and .NET, jumping into Xamarin will be an easier transition.
Programming Language: .NET, C#
Tools: XCODE, Android Studio
React Native, Flutter and Xamarin are the most popular cross-platform frameworks that build native apps.
- Do you have experience with Java/C++? Try out Flutter, it maybe more familiar to you.
- Are you are from the C#/.Net world? Then Xamarin will be your best choice.
So far we was what cross-platform native apps are. There is another category of cross-platform apps called Hybrid Apps.
Unlike apps built with React Native or Flutter, hybrid apps do not have access to native features of the mobile device out of the box. They use external plugins like Apache Cordova to integrate native features to the app. Hybrid apps render their graphic elements via a browser, which takes several steps to start showing the component on the screen. These are essentially web views. With hybrid technologies like Ionic, it is easy to convert the web app into a Progressive Web App that can be downloaded just like any other mobile app.
Ionic is a hybrid cross-platform app, but it is different from the native cross-platform apps like React Native and Flutter.
Ionic Framework has released a free eBook that explains the differences between a hybrid app vs. a native app.
Frameworks/Libraries: Flexible (Angular/React/Vue)
Tools: Apache Cordova
Native vs. Cross Platform Native vs. Hybrid
With all these different ways to build mobile apps, let’s look into a quick summary of how they compare with each other.
We explored the different paths that are available to you in becoming a Mobile Developer. What you choose depends on several factors. Consider asking the following questions before picking a path.
- What are my use-cases for this app?
- What languages do I want to learn or do I already know to build this app?
- Does this need to be cost-effective?
- Is it heavy on animations and performance?
- Does it need many of the native APIs?
- What are the job prospects for the technology that I plan to learn?
- Is it open-sourced?
- Does it have a huge community backing?
- Are there plenty of companies using this technology?
- Does my app need to scale?
When you answer these questions, you will be able to see clearly which path works best for you. I hope you enjoyed this post, and do post your comments here. I would love to hear from you. You can follow me on twitter at @AdhithiRavi
Tags: Android, Flutter, Ionic, Mobile, Mobile App, Native iOS, React Native, xamarin