The democratization of nomadic platforms (mobiles and tablets) is pushing companies to offer ever more services to users. They have, in fact, understood all the issues behind mobile applications: improved communication, new user services, advertising management, competitive advantage, etc.
This craze for nomadic platforms offers new market prospects, in particular for publishing companies (whether they are Mobile Agencies, Web Agencies, or even IT services companies) which can offer their development expertise. Since 2011, the mobile sales market has overtaken PC sales and therefore offers very significant mobile application development market prospects.
However, these publishers must adapt to mobile development platforms which are fundamentally different from that of desktop applications. Indeed, these platforms impose strong constraints, the resources being limited: small screen size, weak processor, limited storage, slow and intermittent connection, limited RAM. All of these limitations imply a particular development discipline to ensure that the user experience is always effective.
At the software level, multiple OS (Android, iOS, BlackBerry, Windows Phone) are competing for the mobility market. Each OS corresponds to an application download platform, Mobile application development tools, and a programming language allowing the development and distribution of applications.
This heterogeneity of development tools and languages makes it difficult to develop cross-platform mobile applications. It pushes developers to make a choice on the platform while ensuring the greatest possible distribution.
Tools to Help Developers
But this approach still raises many questions:
- What about the Objective-C to Java conversion? And to other OS?
- And more generally, how to capitalize on the functionality of an application independently of technical concerns in order to facilitate its migration?
A Response With MDA
The MDA approach has proven itself for the development of business applications and can also bring a lot to mobile applications. Through 5 points, we will see why and how the MDA approach can help us ensure the sustainability of know-how, productivity gains while responding to the issues of fragmentation of mobile platforms.
1. Reduce Fragmentation Issues
- Develop a quality application in an efficient time and limit its distribution to a specific platform.
- Developed an application with reduced functionality, but offered on several platforms and to a large panel of users.
- The user has an environment adapted to his platform and its specificities: the user experience remains optimal.
- The developer takes advantage of the specific architecture and optimizes the application according to the platform.
- The application can evolve and possibly take advantage of features specific to a platform or OS.
2. Capitalize on Similar Concepts
- Activity: corresponds to a page of the application, it is a concept common to all OS. An application is made up of one or more activities.
- Application data management: by separating the graphical interface code and the functional code.
- Views and associated actions: a view is a graphic object through which the user interacts with the application which causes an action linked to the view. We find most of the views on all mobile OS: button, text entry, label, navigation bar, radio button, checkbox, etc.
- Type of events: an application must take charge of certain events that may appear during its execution such as phone calls, SMS, etc.
- Native applications: native applications such as calendar, contacts, alarms, media players are common to all OS.
- A ” functional ” point is of view independent of details related to the execution platform. We define what we want to generate (the what). In this part, we model abstract concepts such as screens, buttons, business objects, CAD, but remaining independent of their technical implementation. Modeling the functionality of the application ensures the sustainability of know-how.
- A ” technical ” point of view in which the architecture of the execution platform will be described. We define how we want to generate it (the how). In this part, we specify how the functional notion must be generated: which language (Objective C, Java), which version (Android 4.1 for example), which BDD implementation. Modeling the technical architecture ensures that the execution platform is taken into account.
3. Expand the Mobile Ecosystem
- A large application size: the massive use of libraries is contrary to best practices for mobile development (memory space problem).
- The corollary of the previous point: an application size that is too large can be a brake on its download (limited speed and costs of 3G networks).
- The lack of visibility of bookstore developments. While the libraries for JEE / .Net applications are carried by major publishers (JBoss (Red Hat), Spring (Spring Source), Microsoft, etc.), the existing mobile libraries are almost exclusively developed by third-party developers. Monitoring and maintenance are therefore not always guaranteed.
- The publisher’s Google, Apple, Microsoft keep control over the evolution of SDKs and therefore do not guarantee the compatibility of third-party libraries with new versions of the platforms.
4. Industrialize Development
Industrialization with MDA requires several key elements:
- The implementation of a POC by a team of software architects. This POC will serve as the expected code base to facilitate the realization of the generator.
- A generated code must not be a source of errors and must remain compatible with the levels of software quality (quality, architecture).
- A developer training in the use of DSL and generator.
- Technical support to accompany developers with the tools to ensure a good start of the project.
- A community around the generator that reports bugs. The continuous improvement of the generator benefits current developments and future projects.
- A cap on the good practices of development in order to develop future applications even faster.
5. Reduce the Cost of Ownership
- A design facilitated by an adapted DSL, framing the specific needs of mobile platforms.
- A code generator available “off the shelf” and usable quickly allows you to boost the start of a project.
- Reduction of technical support: complex code or patterns which are prone to errors (typically related to persistence, ORM mapping) are generated.
- A quality code following best practices ensures better control and a reduction in maintenance costs.
- An iterative process: the MDA tooling by continuous improvement will reduce project costs gradually as it improves.
An OS can today be the market leader and tomorrow lose certain markets. An example, with the announcements of Samsung, the world’s largest smartphone manufacturer, which intends to release new smartphones in 2013 by abandoning Android for Tizen. Or even like the Chinese giant Huawei which offers its own mobile OS or even more recently Firefox with FirefoxOS.
In conclusion, instead of investing in the technology that houses an application, it is better to invest in a development technique that makes it possible to capitalize on the functionality of an application independently of its technology. A method that integrates scalability and sustainability in its development process like the MDA approach.
DepositPhotos – mobile phone