Blog

Extending the Interaction Flow Modeling Language (IFML) for Model Driven Development of Mobile Applications Front End.

Front-end design of mobile applications is a complex and multidisciplinary task, where many perspectives intersect and the user experience must be perfectly tailored to the application objectives. However, development of mobile user interactions is still largely a manual task, which yields to high risks of errors, inconsistencies and inefficiencies. In this paper we propose a model-driven approach to mobile application development based on the IFML standard. We propose an extension of the Interaction Flow Modeling Language tailored to mobile applications and we describe our implementation experience that comprises the development of automatic code generators for cross-platform mobile applications based on HTML5, CSS and JavaScript optimized for the Apache Cordova framework. We show the approach at work on a popular mobile application, we report on the application of the approach on an industrial application development project and we provide a productivity comparison with traditional approaches.

Domain-specific modeling and code generation for cross-platform mobile and web applications

Nowadays, mobile devices constitute the most common computing device with the growing usage of smart phones. A vast array of features has been incorporated into those devices to address the different demands of users. Today mobile devices are as powerful as desktop computers in terms of their computing capabilities. This new computing model have brought intense competition and innovation among devices, OSs, and application providers. Even if the mobile OS market is beginning to mature and consolidate, most researches concur that it is unlikely that a single vendor will dominate the future mobile-centric world. The dilemma between browser-based (HTML 5) and native (iOS, Android, Blackberry, Symbian, Windows Phone) interfaces will remain relevant and will challenge the capacity of organizations to meet the increasing demand for mobile applications. Currently, there are several frameworks implementing different methodologies for cross platform application development (Web, Hybrid, Interpreted and Cross Compiled): examples include PhoneGap / Cordova, Appcelerator Titanium, and Xamarin. However, these approaches still require manual programming. The advantages offered by those cross platform approaches can increase if combined with Model Driven Engineering techniques. The research work of the candidate proposes to face the challenge of the mobile revolution by exploiting abstraction, modelling and code generation, in the spirit of the modern paradigm of Model Driven Engineering. The rationale is to represent application designs in a platform-independent manner and then generate the code to deploy the application business logic and interaction logic onto any platform of choice. This will simplify multi-device development, reducing substantially cost and development time, so as to increase the profit of solution providers and at the same time reduce the price and total cost of ownership for end-customers. The research will investigate appropriate domain-specific modeling languages and code generation techniques. The final goal is to enable the domain experts with no programming background to develop their own applications or a large part of thereof by delegating to software engineers only the technical issues when required. Integration of the activities of the different roles will be investigated and optimized too.