The main purpose behind writing this article is to focus on the different variants of mobile technologies present in the market.
The mobile market has been quite crazy over the last 5 years. We have seen too many trends, techniques and technologies emerging and dissolving over the period of time. This article assumes that you are a mobile app developer who wishes to choose the best technology for his Enterprise Mobile Solution.
Let’s go through different mobile development technologies generations one by one and see their advantages/disadvantages.
- 1st Generation (Native)
- iOS – Objective C / Swift
- Android – Java
- Windows -.NET
- Advantages
- Native UX
- High Performance
- Hardware and Platform Access
- Disadvantages
- Single Platform
- No Unified Codebase
- 2nd Generation (Hybrid HTML and JavaScript)
- PhoneGap
- Appcelerator
- Apache Cordova
- Kony Mobile
- Advantages
- Multiple Platform
- Unified Codebase
- Disadvantages
- No Native UX
- High Performance
- Hardware and Platform access
- 3rd Generation
- Xamarin
- React
- Advantages
- Multiple Platform
- Native UX
- High Performance
- Unified Codebase
- Hardware and Platform access
There is a transition from Native, then hybrid and now cross platform. The technology is getting much better and faster day by day.
The native generation is still transition proof and many prefer it over the later two generations. It is because it offers seamless performance, support, and resources. The direct support from Apple and Google is an important factor in selecting these technologies.
The growth in the second generation is stagnant due to the rise of the third generation. People are using Cross Platform (Native) to use a single language for development across platforms and also share more than 40% codebase to reduce time-to-market.
The only factors which help people use the cross-platform app (native) over the normal native apps are code sharing, time-to-market and resource constraints. Those who fall in this category are going towards cross-platforms apps which not only have native UX but also performance.
Also, I see that many still are confused between Hybrid and Cross Platform. Let me tell you, these are completely different kind of technologies. Let’s understand their definition:
Cross Platform:
It is a solution developed to minimize development efforts by compiling the source code for further execution on multiple mobile platforms. But the result of each separate compilation will be an individual executable file. For example, iOS executable file has .ipa extension, and for Android, it is *.apk, etc.
Hybrid:
These apps are developed using web technologies like HTML, CSS, Javascript etc. It is an app which runs in a “wrapper” and serves not as a web page, but as a standalone application.
Good professionals are very sensitive to the concept of development, efficiency and productivity and most of them have unique vision “what is good and what is bad?”, but usually, it is all about technology set that use, care and cherish. In general, it may happen that the budget decides everything, so the basic background for the emergence of cross-platform solutions was their benefits to business, namely:
- Need a single developer who can develop a mobile app and deploy it for different OS. Thus you eliminate a need for full-time developers for every single OS;
- Difficult to find developers for individual platforms when the business requirement is critical
- Ease to manage the app versions for different mobile operating systems
Let’s see some key takeaways and considerations to compare Xamarin and Hybrid Mobile App. To understand the difference in a much better way with quantification, I have created a sample app which demonstrates and provides the detailed analysis of the key points as follows.
Key Takeaways:
-
Cross Platform (Native) app fulfills most of the requirements whereas Hybrid app was unable to deliver on the key piece of functionality without requiring custom Objective-C and Java
-
Xamarin performs CPU-intensive tasks much faster than Hybrid HTML
-
Cross Platform Native loaded large datasets faster than Hybrid HTML
-
Cross Platform Native used less memory than Hybrid HTML
User Experience Key Considerations:
- Native look and feel
- Hardware & Platform Access
- UX Design Capability
Developer Productivity Key Considerations:
- Volatility of HTML frameworks
- API Access Extensibility
- Stack Complexity
- Strongly-Typed Development
- Compilation Time
Metrics:
Performance (ms) – to load and display a single page
- iOS
- Xamarin – 1400 ms
- Hybrid – 2000 ms
- Android
- Xamarin – 3690 ms
- Hybrid – 4502 ms
Compile Time (sec) – to compile the mid-size app
- iOS
- Xamarin 34 sec
- Hybrid 18 sec
- Android
- Xamarin 32 sec
- Hybrid 25 sec
Code Reuse (%) – considering the basic flows and libraries used
- Xamarin Native – 45%
- Xamarin Forms – 96%
- Hybrid Mobile – 99%
App Size (MB)
- iOS
- Xamarin – 35 MB
- Hybrid – 11 MB
- Android
- Xamarin – 11 MB
- Hybrid – 6 MB
TCO Key Considerations
- UFC (Upfront Cost) vs Maintenance
- End-UserProductivity App Adoption
- Agility Costs
Conclusion:
The selection of technology for your enterprise solution is a process which consists of various parameters. Some of them are budget, time-to-market, user experience, performance, explicit requirement and code reuse.