Mobile applications are everywhere. The popularity of mobiles led to a whole new industry which hasn’t existed a decade ago. After Java revolution in enterprise software development from 90s to mid 2000s, it is mobile app development that has become so big in recent times but writing applications has evolved over time.
Before getting into how mobile applications are built, Let’s see the OS used in the mobiles. There are predominantly 3 OS in mobiles: iOS, Android and Windows. The other less popular OSes are Symbian, Blackberry etc. Application development generally involves downloading all the tools necessary and writing app code in the specific language ( Objective C for iOS, Java for Android and C# for Windows). Applications are built using these languages separately for quite sometime.
The main drawback of hybrid apps is that they are slow and are “ugly”. Because they run on all platforms, these apps and the APIs are limited to “common denominator” of all features. For example, if you want to enable touch ID for your app in iOS, the API is not available unless touch authentication is possible on Android and Windows too. This led to wide spread notion that hybrid apps are cheap but users don’t like them. In reality, a well built hybrid app is impossible to distinguish from native app when native functionality is not used.
Recently, a major innovation emerged in the app development war, that is, hybrid development with native speed and APIs. This is the technology called Xamarin and the creators are the people behind Unity. Xamarin lets developers write code in C# and use native APIs through solid Xamarin C# API. Developers can share all the non-platform-specific code into shared C# code and platform specific code into different packages. The Xamarin project tree has different sub projects for Android,iOS and Windows mobile. The code is compiled into intermediate CLR code and when you want to create an APK or APP (native packages), the code in converted to their native binary equivalent. This is just too good to hear, but it’s true. We can say it is partial hybrid app development with native speed. Single language (C#) with platform specific functionality as needed. As Xamarin is rolling out the APIs quite fast, developers don’t lag in using new features in native APIs.
Finally, mobile app development has become a very huge community where different people have different views. Simply choosing the type of development can be daunting task for non tech savvy people. The decision of whether to choose hybrid, partial hybrid,native development depends on the app functionality and the cost that company can afford.