Nowadays smartphones are widely available as their market has exploded in the recent years. Every day, more and more devices get shipped to customers all over the world. Their popularity is largely due to the increasingly available app selection, widening their capabilities.
When developing a mobile app, developers have to be familiar with the targeted platform and its features. The available general development environments provide high-level programming languages and software libraries. They aim to solve problems at program code level. However this approach requires different solutions on different systems. This further increases the learning and development time needed.
On the contrary a model-driven architecture hides the particularities of the different platforms by introducing a higher level of abstraction. Thus, developers can work with domain-specific general concepts on a multi-platform solution. This approach increases reusability and the automated code generation improves productivity and software quality.
The objective of my thesis is to present a model-based development system created specifically for the iOS platform. First, I provide insight into the utilized technologies, then I expound the architecture and making of the tool. The system provides domain-specific modeling languages to describe the data model, user story and user interface of an iOS app. My solution uses code generators to build the necessary platform specification models and accompanying source codes based on the domain- specific models. All of the derived artifacts form a complete, buildable application project. The generated sources can be supplemented with hand written code to implement the logic of the app, whilst maintaining consistency with future changes on the domain-specific models.
To present the capabilities and usage of the software I detail the process of developing an example app. Finally I explore the possibilities for further development and improvement. The tool is extensible, since the architecture provides a solid basis for future additions, like targeting new platforms.