Cross Platform Mobile Development Approach
What is cross-platform mobile development? The term definitely has a number of different interpretations, meanings and approaches to achieving a common goal:
Reducing the overhead of maintaining mobile applications across the range of device platforms.
Two distinct approaches have emerged.
Mobile Web
The mobile web approach to cross-platform mobile development focuses on the use of a web browser as the application delivery mechanism. Given that modern devices all come with well-equipped browsers this approach offers a lot of merit, and when you also consider that the native development tools on each device platform provide ways to embed browsers into your application it opens the door for Native Deployment options also.
The primary benefit of developing using a mobile web approach is that your application (when written well) will have the broadest possible reach of any application. Your application code has a good chance of working on devices beyond mobile in the future.
The primary challenge of developing mobile apps using this approach generally revolve around working with the various different implementations of web standards across devices and device web browsers.
Native Deployment
It should be no surprise that to most people, having a mobile app means having an application in one of the various mobile application stores. The following is a list of ways that cross-platform mobile apps can be written and targetted at various devices.
-
Bridging: First writing an application using pure mobile web technologies (HTML5, CSS3, JS) and either in addition to, or instead of a web-based deployment, having a wrapper application present the app natively on the device.
-
Runtime Engine: Using a common codebase and a native engine that is written for each of the different devices, apps can be presented on multiple devices. Web technologies are often used, but may not be.
-
Cross Compiling: Using a single central codebase, native mobile apps are cross-compiled into the relevant source for each of the platforms and then built using the native tools to create a native application.
The primary benefit of using native deployment techniques is that your application will have a presence in the application marketplaces that people use. Additionally using some of these native approaches does not preclude you from building your applications the mobile web way.
The primary challenge around some (definitely not all) of the native deployment techniques is how well the approach can scale as the number of devices increase. Also how quickly can something like a cross-compiler adapt to a brand new device being released?
