If you can believe it, the mind can achieve it.

Trends in Mobile Application Development

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.

After a while, a company called “Phone Gap” popularized “hybrid web apps”. These apps can be thought just like website running on your phone browser but does more. Unless someone needs a native functionality like accessing sensors,camera etc., developer can just use his HTML to write UI and JavaScript to write functionality. Browser is like the container in which the application runs and UI is rendered by browser. This browser is embedded,full screen and shows no controls at all, so users doesn’t know it’s a web app unless the app is very slow and is behaving weird.

Companies started using it aggressively especially banks etc. whose apps just need network communication and basic UI features. PhoneGap provides tools to package your HTML/CSS code into native applications. It handles all the platform specific things so developer can just concentrate on functionality. If the app doesn’t need native functionality, then hybrid app development makes it really fast. PhoneGap APIs also provide some native functionality so developers can access them via JavaScript. As PhoneGap apps run in a containers, these APIs are not as fast as their native counter parts. The main benefit of the hybrid app development is the less cost, speed and a uniform code base across all platforms.

mobile-application

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.

 

« »