I constantly meet with mobile app developers struggling with the requirement from customers about
having their mobile apps available on multiple mobile platforms. Mainly for iOS and Android, but now also for Windows Phone (aside, you may want to know that Windows has now surpassed iOS in mobile market in Italy. No surprise here, great phones and bargain prices!).
With the Automobile project we are trying to cross the chasm of cross-platform development through a model-driven, code generation approach. However, even with this kind of vision, various options remain open. Should we design (model) the application once with a conceptual modeling language like IFML, and then build different code generators for each mobile platforms? Or should we build a unified generator that produces code that is cross-platform per se?
We are currently investigating the latter option, and we started our path with a set of seminars on Apache Cordova (the open source project that is behind the more known PhoneGap product by Adobe).
Apache Cordova is a platform for building native mobile applications using HTML, CSS and JavaScript. It comprises a set of device APIs that allow a mobile app developer to access native device function such as the camera or accelerometer from JavaScript. Cordova can be combined with a UI framework such as jQuery Mobile or Dojo Mobile or Sencha Touch for getting the best apps with limited effort (although these frameworks sometime add additional computational overhead to the app).
The advantage of this kind of approaches, from a model-driven development perspective, is that we could develop only one code generation for different mobile platforms.
Ivano Malavolta, from University of L’Aquila, came visiting us and offered his vision for developing effective and efficient mobile applications. He proposed an approach that is highly scalable and maintainable, based on clean and well structured frameworks and patterns.
This perfectly copes with our aim of automatically generating the code (within the WebRatio platform).
You can find the slides of his core presentations here:
[slideshare id=30102625?rel=0&w=425&h=355&fb=0&mw=0&mh=0&style=border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px; max-width: 100%;&sc=no]
[slideshare id=30102467?rel=0&w=425&h=355&fb=0&mw=0&mh=0&style=border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px; max-width: 100%;&sc=no]
and others here:
http://www.ivanomalavolta.com/my-seminars-series-about-cordova-webratio/
Bottom line: cross-platform mobile apps are not just for crappy, cheap applications. If you develop cross-platform mobile apps professionally, you can get excellent results (apps like Flipboard, Gmail, or Amazon are developed like this!).
Furthermore: if you work at conceptual level with a modeling language like IFML and then you generate cross-platform apps, you can maximize your productivity and maintainability of the apps.
To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).