The smartphone has been experiencing a boom over the past few years and concurrently there has been a surge in the number of mobile apps. At the moment, Apple’s App Store has approximately 2 million apps whereas Google Play has about 2.2 million apps.
According to Gartner, mobile downloads will reach 268 billion this year and generate $77 billion dollars. But according to Kevin Curran, a senior member of the Institute of Electrical and Electronics Engineers and computer science lecturer at the University of Ulster, the market might already be saturated.
If you noticed, 2016 wasn’t the year of any momentous announcements within the industry. Everything was incremental which suggests that the smartphone itself has plateaued in terms of hardware. According to Curran, the fact that Samsung Galaxy S6 didn’t have much bloatware when compared to its predecessors is concrete evidence of this phenomenon. This could mean that the industry is moving away from the walled garden approach to the current operating systems (OS).
No one really knows how the smartphone manufacturers are going to respond or how developers will have to adapt to the changing ecosystem. Apps are no longer just built for smartphones as they also have to cater to the Internet of Things (IoT) enabled devices, wearables, connected homes, and connected cars.
So what will mobile app development look like in two to five years? Let’s speculate a bit.
1. Mobile App Development Will Become Easier
Mobile app development is expected to become much easier in the coming years. For example, Apple has already made it easier to engage in iOS development by changing a few terms within its iOS developer program and by introducing Swift.
Swift is comparatively easy to learn when compared to Objective-C. Further, with it becoming open source, there’s also a strong community forming around the language (with new Swift libraries popping up every day).
IBM is also trying to help developers on the server side by enabling them to write their backend code in Swift. This, in turn, will also enhance Swift’s value proposition as a programming language.
On the Android side of things, Google continues to launch multiple online courses to generate more interest in Android development. As a result, Android might continue to eat up Apple’s market share as more apps get developed on its platform.
But Google must first eliminate the vast fragmentation that exists within the Android ecosystem. This is because it will become increasingly difficult to support thousands of different Android devices in the marketplace.
2. Cross-Platform Development Will Become the Norm
For the past few years tech giants like Facebook, Google, and Microsoft have been trying to promote cross-platform application development. Microsoft's acquisition of Xamarin this year will enable developers to build apps for multiple platforms by utilizing IDE Visual Studio and C#.
With Xamarin, developers can write code for both Android and iOS in C# (including shared code bases plus user interface or UI forms). As a result, it might become the “go to” platform in the near future, especially for C# developers.
Further, Google’s acquisition of Flutter should also enable developers to code high-fidelity and high-performance mobile apps to support both Android and iOS from one codebase.
3. Shorter Development Cycles with Hybrid Apps
Building hybrid apps on frameworks like Iconic, PhoneGap, and Titanium can drastically reduce development time. These frameworks have already been used in the development of millions of apps that rely on the native platform’s UI rendering and WebView API.
As the latter has improved significantly over the past few years, hybrid apps have also improved. But it still falls short when it comes to building complex apps that require high performance like 3D animations and games.
Further, native APIs continue to change with each new OS release. As a result, custom plugins have to be written to reflect these changes. Sometimes changes can also make it difficult to debug hybrid apps when compared to native apps.
4. React Native: A Horizontal Platform
React Native follows a philosophy of learning it once and writing it anywhere. This is a departure from the cross-platform philosophy of building it once and running it anywhere.
Unlike other similar frameworks, React Native is different because it performs the layout on a separate thread without blocking the UI. This enables significantly smoother animations while making the app look consistent with respective platform ecosystems.
Further, Flexbox can handle the layout while debugging can be done via Chrome Developer Tools (which makes it a breeze). At the same time, there are some disadvantages as React Native doesn’t support all the custom controls in Android and iOS (which will force a developer to write a lot of custom code).
But React Native remains popular as it makes the experience of going from MVC to a complex app much easier than AngularJS. Further, the declarative code also makes it significantly easier to reason with app behavior. One-way data flows also makes things faster and modular while simplifying DOM rendering.
As Facebook has the most mindshare when it comes to React Native engineering talent, you can also expect the company to make huge strides in the smartphone market in the near future. When Facebook releases its new smartphone with a new OS, it’s expected to disrupt both Apple and Google with its significantly improved ecosystem (but none of this information has been confirmed).
Unlike Apple and Google, Facebook’s libraries don’t make it mandatory to use any significant combinations. Further, it also uses view components with a unidirectional data flow.
React Native’s new slogan “horizontal platform” captures the essence of the development process. The word “horizontal” means that it can be used across smartphones, smart TVs, VR/AR headsets, monitors, and (almost) any other kind of hardware.
At present, React Native is the common ground between Android and iOS, but this doesn’t mean that engineers focused just on Android or iOS will be replaced by React Native engineers anytime soon.
What Facebook is trying to do here is overcome the bottleneck in the iOS App Store and Google Play reviews that can take anywhere from hours to months to push through an update. Facebook wants mobile app developers to mirror web developers who can ship their native apps continuously.
If they achieve it, it would be revolutionary as it will also end the current OS duopoly of Apple and Google. For simple mobile apps, the hybrid approach should continue to be preferred, but something needs to be done with the framework to offer something more to build intensive and complex apps.
Cross-platform development is not expected to reach the same level as tech giants like Apple, Google, and Microsoft don’t show any signs of working together in the near future to make it happen.
At Intersog, we believe that native app development is here to stay and will grow in importance over the next two to five years. But first, we need some quality releases on React Native to fulfill the promise. Further, Facebook itself needs to move away from using Objective-C for most of its iOS apps and make the switch to React Native.