SoftwareBY RabIT software engineering · January 29, 2019
Mobile technology is still heavily on the rise. According to Statista, there are 4.57 billion mobile users in the world in 2018. This number is expected to reach 4.68 billion in 2019. Most of the world’s population can be reached through mobile applications.
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 2019.
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 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 last year, it has been rapidly gaining in popularity. According to GitHub, Kotlin is the fastest growing language in 2018. Its number of contributors has more than doubled since last year.
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 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 5 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 rapidly 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
More and more people are choosing to build hybrid mobile apps over native ones. The growing demand resulted in the evolution of a number of hybrid 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 hybrid mobile technology of 2018.
Source: Google Trends
Advantages of Hybrid 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 app
- Hybrid apps can have stability issues across different devices
- Inconsistent performance on different platforms, which can negatively impact user experience
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.
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 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 a dynamic & innovative software engineering company in Santa Monica, California. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.