SoftwareBY RabIT software engineering · February 07, 2020
Mobile application technology is still heavily on the rise. According to Statista, there were 3.2 billion smartphone users in the world in 2019. This number is expected to reach 3.5 billion in 2020, and 3.8 billion by 2021. Most of the world’s population can be reached through mobile applications.
Edit 07/02/2020: Updated data and research results in the article for 2020
Choosing the right technologies is one of the most crucial decisions you have to make when entering the mobile app market. There are new solutions appearing constantly which make this decision more difficult.
This is why we decided to focus this article on helping you find out which platforms, frameworks and languages will work the best for your business in 2020.
If you are still on the fence about building digital solutions for your business, I recommend you read one of our earlier articles:
When choosing your tech stack, first you have to consider your overall business strategy. Do you want to reach potential users on the Android or iOS platform? Perhaps you want to reach both with a single application. Once you have this figured out, you have to decide whether to build a native, hybrid or progressive web application.
Here is a quick breakdown to help you choose the mobile application technology that fits your business the most:
Native applications are developed specifically for a single mobile platform. Today, the only relevant platforms to choose from are Android and iOS. Depending on which one you choose to focus on, you will need to compile your tech stack accordingly.
Android – Java and Kotlin
Most Android applications are built using Java. After all, it is still the most widely used language on the planet. The classic way of writing native Android apps is to use Java and the Android SDK.
Java’s popularity for Android is mainly a result of its rich set of core features, redundancy, high security, speed and scalability. However, since mid-2017, there seems to be a trend that shows Kotlin finally replacing Java as the go-to language for Android app development.
Since Google endorsed Kotlin as an official language for building Android apps, it has been rapidly gaining in popularity. According to GitHub’s Octoverse, Kotlin was the fastest growing language in 2018. Its number of contributors has more than doubled since the year before.
According to the 2019 Octoverse, Kotlin is still the 4th fastets growing technology.
Kotlin is wildly popular mainly because it makes coding much more concise, and is 100% interoperable with Java and Android. Writing code in Kotlin requires approximately 40% less lines of code compared to Java.
The language is big, complex and new, so it might take time for people to learn. Although, it is reportedly much easier for developers who already know Java, and there is also a rapidly growing support community today. You definitely won’t have any trouble finding Kotlin experts in the years to come.
iOS – Objective-C and Swift
Objective-C is a superset of the C programming language, and is utilized by a high number of mobile developers building apps for OS X and iOS. It is a very mature and tested mobile application technology that survived many generations of developers since its first release in the early 1980s.
Thanks to its stability and maturity, Objective-C manages to stay relevant today. There are a lot of well-documented third party frameworks out there, and very strong community support. It is also highly compatible with C and C++ programming languages.
There was obviously room for innovation, though. In 2014, Apple released Swift to provide new developers with an alternative that is easier to learn and to understand. The code length in Swift is significantly reduced, which makes development with it much faster compared to its older counterpart.
Apps developed in Swift are also considered to be safer and less prone to bugs and crashes than the ones developed in Objective-C. While Objective-C is still in the lead when it comes to community support and documentation, Swift is rapidly gaining in popularity.
Stack Overflow conducts a survey with its developer community each year. This is how the popularity of Objective-C and Swift changed with the community over the past 6 years:
We can see that the number of Objective-C developers started to stagnate after 2016 with only a minor increase this year compared to 2017. On the other hand, it is expected that the Swift community will continue to grow over the coming years.
Here is how native mobile technologies cluster together according to over 100,000 developers surveyed by Stack Overflow this year:
Advantages of Native Apps
- Native apps are faster and more responsive than hybrid apps
- They can run offline depending on functionality
- Developers can better utilize device functionality like camera, microphone, swipe gestures, etc.
- They are more interactive and run much smoother, creating a better overall user experience
- More expensive and slower development compared to hybrid apps
- Harder to scale and maintain on each platform separately
Hybrid & Cross-platform Apps
More and more people are also choosing to build cross-platform mobile apps over native ones. The growing demand resulted in the evolution of a number of cross-platform frameworks like Ionic, Cordova, Xamarin or React Native.
Xamarin uses C# and .NET. Xamarin.Android and Xamarin.iOS are used for providing platform-specific behaviour, while Xamarin.Forms is responsible for code sharing. It allows for the reuse of 96% of the written code. Xamarin also has a large community following.
React is a great choice if your app needs to handle heavy operations like image editing or video processing. High accessibility and its ability to build high-performance UI solutions fast helped it become the most sought-after cross-platform mobile application technology of 2019.
Source: Google Trends
Advantages of Hybrid & Cross-platform Apps
- More cost-efficient than native app development
- Shorter time-to-market
- Most of the code is reusable for multiple platforms (write once, use anywhere)
- Because there is only one code base, it is much easier to scale and maintain a hybrid or cross-platform app
- Hybrid and cross-platform apps can have stability issues across different devices
- Inconsistent performance on different platforms, which can negatively impact user experience
- Mobile OS updates take a bit longer to integrate into cross-platform frameworks than native ones.
- No access to certain mobile hardware-related features that are only available in native apps
Progressive Web Apps
Progressive web apps (or PWA) are the perfect cross between native mobile apps and websites. PWAs are web applications that load like websites, but can offer functionalities traditionally available only to native apps. They can be loaded with the push of a button from the user’s mobile home page, without having to go through the whole app installation process beforehand.
Service workers are used to provide the best of both web and mobile native worlds. These service workers lie between the network and device to supply the content. Among many other properties, they are capable of utilizing cache mechanisms efficiently. This allows PWAs to work in offline mode as well.
World-leading companies from all industries are reportedly already experiencing higher web traffic, customer engagement, and conversion rates thanks to PWAs.
We wrote about 8 famous PWA success stories in a recent article.
Advantages of Progressive Web Apps
- PWAs provide a smooth experience at high performance, without relying on web connectivity.
- They are also able to deliver real-time updates and push notifications, which was a feature reserved only for native apps in the past
- They use 10-1000x less storage space compared to native apps
- Fast and cost-efficient development
- PWAs don’t have access to all mobile hardware functions such as fingerprint scanning, advanced camera controls, Bluethooth, etc.
- Running robust web apps on a smartphone uses up battery charge fast
Thanks to the popularity of mobile platforms, today there is a mobile application technology for everyone.
It is up to you to assess the needs of your organization and make your choice according to your strategic vision and goals. If done correctly, your new mobile application can become as important of an asset to your business as a brick-and-mortar store.
We hope this article helped you figure out which technologies will be the best fit for your business.
If you need additional information to help you select your ideal mobile technology, feel free to ask your questions through our website, or ask for a free consultation.
RabIT software engineering
RabIT is an innovative software engineering company from Hungary. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.
Code quality and transparency are our main priorities throughout each project.