July 24, 2020 Last updated July 24th, 2020 558 Reads share

5 Reasons to Choose MDA Approach for Mobile Development

Image Credit: DepositPhotos

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

Google recently provided an answer with the J2ObjC project which converts Java code (Android) into Objective-C code (iOS). The advantage of such an approach is to be able to retrieve the functional code of an Android application in order to facilitate conversion to the iOS platform.
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-howproductivity gains while responding to the issues of fragmentation of mobile platforms.

1. Reduce Fragmentation Issues

Each mobile OS has a market share, and therefore each has its own community of users and developers. This fragmentation poses a concern for companies wishing to reach a large audience because the development of cross-platform applications is very expensive in time and money. Businesses are faced with a dilemma:
  • 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.
Hybrid solutions exist such as Cordova (native application built from Web view and Html5) or Flex 4.6 (execution on Flash platform) and make it possible to ensure multi-platforms, but their support remains technically partial. In reality, a native application will remain more suitable for several reasons:
  • 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.
The MDA approach can respond to these issues: describe the functional needs of an application regardless of the execution platform and respect the technical specificities of each platform. MDA allows you to generate boilerplate code specific to each platform. This ensures a gain in productivity, even on native applications.

2. Capitalize on Similar Concepts

Each mobile OS uses its own programming language and sports its own APIs, but the general concepts remain standard and common. We can afford to capitalize on common concepts between different platforms allowing to model an application in a generic way, let us quote for example:
  • 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.
The MDA approach divides the design of the application into two points of view:
  • 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.
The step which follows the functional and technical description of an application is the generation of the source code, this is the role of the generator (eg Mia-Studio ). It relies on the functional and technical model of the application to generate source code that the developer can enrich manually (the algorithmic processing and the resources that cannot be deduced from the model). Modeling assures us of the sustainability of functional knowledge. Code generation saves considerable time leading to increased productivity.

3. Expand the Mobile Ecosystem

The ecosystem – everything that lives around a platform to facilitate its development – existing under JavaEE / .NET is large, but on a mobile platform, this ecosystem is further reduced. The use of third-party libraries in mobile applications is limited by the different OS for several reasons:
  • 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.
To ensure the sustainability of the code and extend its scope of compatibility to several versions, it is, therefore, preferable to be as independent as possible from third-party libraries and to have a standard code in the SDK. The MDA approach reduces development time by generating standard code in the SDK, respecting good architectural and quality practices.

4. Industrialize Development

The implementation of an MDA approach, together with the different components of a software factory (construction, continuous integration, quasi metric analysis), industrializes development and ensures good quality code.
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).
  • 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.
  • cap on the good practices of development in order to develop future applications even faster.
In the market, there are still a few developers with “mobile” skills. The industrialization of mobile developments through the MDA approach makes even more sense in this context because it allows for better support and better monitoring.

5. Reduce the Cost of Ownership

With ever-tighter budgets, companies want to lower the cost of ownership of their applications. The MDA approach, and more specifically the DSL and the code generator, have great capitalization and reusability value. They thus make it possible to reduce the costs of ownership, in particular on the initial investment and the cost of maintenance:
  • 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

Gurbaj Singh

Gurbaj Singh

Read Full Bio