Thanks to the rapid development of mobile technology, by now, more than half of the online electronic devices are smartphones. As a result, more and more web services become available also as mobile applications, improving the quality of user experience. Enhancements like these – talking mainly about the online administration systems – often require implementing complex data managing user interfaces and logic.
As a part of my thesis, I developed a dynamic data editor component which provides a suitable basis to meet these requirements. The target of this development was to implement a plugin, that can parse a data model along properly defined metadata and generate native data editor user interfaces for modifying properties of application managed entities. This Xamarin.Android module presents an out-of-the-box solution for the above-mentioned problem, while also providing an easy-to-use programming interface to customize application specific elements – such as design, validation and autocomplete support.
The plugin uses the MvvmCross framework in order to implement the MVVM architectural pattern. It also provides a wide range of modern programming tools that added a great value to the implementation. With its built-in dependency injection container, the framework made it possible to create loosely coupled components and design a well-structured programming interface. The data binding paired with the tool’s cross platform solutions made the view generation process quite straightforward. MvvmCross also enables other Xamarin.Android applications to easily integrate the developed dynamic data editor component.
In my thesis I present the applied technologies, the different architectural decisions, and go through all the implemented functionalities with the help of a demo application. I write in details about the implementation of some essential features – such as the autocomplete configuration tool and the FluentValidation integration – while also focusing on low-cost upgradeability, as it was the primary target during the development.