As mentioned in a previous blog post I am going to write some observation posts on development tools that can be used to write hybrid mobile applications. What is a hybrid mobile application in my thoughts? I see it as a:
- platform specific native “shell” application
- utilizes a browser control as its rendering surface
- provides an API that gives access to native device functions (camera, contacts, …)
- the application specific code can be bundled and ”injected” into the shell application
There are many other possible ways to think about hybrid mobile apps, but the slice of approaches I’m most interested in is the one where you utilize web standards to build your mobile applications. There is a great blog post by Udayan Banerjee called Cross-Platform Hybrid Mobile Application Development – a Tool Comparison where he goes into great detail on the huge set of different tools that are available in the broad sense of hybrid mobile apps. He divides the tools into:
- Visual Tool (No access to Code), (see this)
- App Generator (Native application for multiple platforms), (see this)
- Hybrid App (Leverages embedded browser control), (see this)
- Game Builder (see this)
I will only discuss tools that are in the Hybrid App space.
See the following post for some of my observations on tools in this space: (not written in the specified order)
- Cordova (to be written)
- PhoneGap / PhoneGap Build (to be written)
- Intel XDK (to be written)
- Red-gate Nomad (to be written)
- Icenium (to be written)
- DevExpress DevExtreme (to be written)
I will update the links when the posts are written.
It is unbelievable how many companies jumped on the mobile app development bandwagon.
In the early days life was easy. When you developed for iOS (iPhone, iPod Touch and iPad) you bought a Mac, downloaded XCode and started programming in Objective-C. For Android you grabbed a PC, downloaded the Android SDK and Java was your best friend. And for Windows Phone (yes it still exists) you downloaded a version of Visual Studio, the Windows Phone SDK and you started to hack away in good old C#.
The new trend for mobile apps that don’t ask too much from the platform (say non-game, and non-multimedia applications) is to develop them cross-platform without the need to rewrite the applications multiple times in different languages.
Wikipedia gives a nice overview of some of the available mobile application development platforms at http://en.wikipedia.org/wiki/Mobileapplicationdevelopment. And this overview is even far from complete.
Within the development platforms you see broadly two options for developing your cross-platform mobile apps:
- Development in one language for a native UI, where the interaction patterns are phone specific
- Development one one language for a cross-platform UI, where the interaction patterns are app specific
In some following posts I will dive into a few of the development options for creating hybrid mobile applications using tooling like:
All above options have their roots in the Cordova project.