Nowadays mobile platforms are becoming more and more popular, as every day many new devices are released to the market. For an average person, owning a mobile device – especially the mobile phone – means everyday accessibility, communication, source of information and entertainment.
Android currently is the largest available mobile platform. In just five years (considering public availability), it acquired a very large user base that is still rapidly growing, as the platform is evolving. There are a lot of free and also paid applications available for download from the application store (Google Play). To satisfy the needs of customers, Android developers create a lot of new applications with hard work.
To develop a successful application, it is necessary to have a solid knowledge of the target platform, and also to deal with performance and compatibility issues that may occur in such a diverse ecosystem. To meet quickly changing requirements, it is general practice to create prototype applications, which provide important feedback in the early stages of development. Today, mobile application development environments are using traditional programming languages (e.g. Java, XML) and provide great utility libraries for typical tasks. However, the available development toolkits are simple in the sense that they mostly focus only on the source code, and do not support architecture design and high-level reuse.
The goal of this thesis is to create an efficient environment for mobile application development, specifically for the Android platform. I designed a high-level modeling environment using domain-specific languages built on Xtext technology. This environment supports the modeling of the user interface, the data layer, the Android application components, and simple application logic. My solution is more efficient than the state-of-the-art, i.e. the Applause, iPhonical, MDSD-ACP solutions, because it is integrated with Google’s Android Developer Tools. My tool automatically generates application code, and provides the possibility to customize the generated source, while maintaining the consistency of the high-level models. It is also extensible, since the architecture provides a solid basis for future additions such as new language concepts.