With the continuous increasing adoption of mobile devices, software development organizations that aim to exploit the mobile market have plenty of new business opportunities through direct sales in app stores and delivery of B2E and B2B solutions. Nevertheless, the vastness and diversity of mobile devices and operating systems available on the market oblige companies to produce and deploy the same app several times, once for each of the different mobile platforms. Unfortunately, cross-platform and multi-device development is a barrier for today’s IT solution providers, especially SMEs, due to its high cost and technical complexity.
We believe that the adoption of model driven development (MDD) can dramatically simplify multi-device development, reducing substantially cost and development time, so as to increase the profit of SME solution providers and at the same time reduce the price and total cost of ownership for end-customers.
In our study, to be presented in the upcoming MobileDeLi workshop, we report on a comparative study conducted to identify the best trade-offs between different automatic code generation strategies.
We use the model driven architecture (MDA) as a reference framework to illustrate the different alternatives. MDA defines models at three different levels of abstraction: Computation Independent Models (CIM), Platform Independent Models (PIM), and Platform Specific Models (PSM). A set of mappings between each level and the subsequent one can be defined through model transformations. Typically, every CIM can map to different PIMs, which in turn can map to different PSMs but many other combinations can be followed, for instance skipping one of the levels.
Different approaches towards the automatic generation of mobile apps from the models describing the application
- PIM-to-Native Code (NC)
This option states that the app code is generated from a PIM describing the app. Cross platform is achieved by providing one native code generator for each targeted platform. In this option, all the platform-specific details are embedded in the code generator. That makes this approach faster (since there is no need to generate the PSM). But embedding all the details of the app in the code generator reduces its flexibility. Typical data-driven native apps would be better suited for this option.
A global PIM is transformed into a set of PSMs that refine it for specific platforms. These lower-level PSM models are the input of the code-generator for the corresponding platforms. This approach could be better when having to develop native apps, with complex functionalities. In fact, the PSM level allows to benefit from the specificities of the platform at the level of models and thus allowing more tuning options with respect to option 1.
It consists on defining directly the PSMs, one per each development platform and then generate the app code from these PSMs. This option is better when developing native apps for one specific platform.
- PIM-to-Cross Platform Code (CPC)
This option takes as input the platform independent model and generates the code required by the cross platform framework (such as PhoneGap, AppCelerator Titanium, and Xamarin) to produce the cross platform apps. This option is better when developing the apps in which cross platform richness is more important than high performance.
- PIM-to-Framework Specific Model (FSM)-to-CPC
With respect to the PIM-to-CPC option, this approach introduces the FSM which gathers the information regarding the cross platform framework used to produce the apps. FSM is a PSM in which the Platform in the MDA terminology, is actually a Cross-Platform Framework for mobile apps development.
Our study showed that there is no approach better than others in absolute terms but provided useful guidelines (e.g. cross platform approaches are generally advisable for companies with limited resoures) that helped us to identify the best strategy for the WebRatio company in particular. The approach we advised to WebRatio is implemented in the company’s newly released product WebRatio Mobile Platform (released Feb 17, 2015), in collaboration with AutoMobile project.