Smartphones, which run complex operating systems, are equipped with numerous sensors and provide a rich feature set, have become an integral part of our everyday lives. Exercising as a free time activity is more and more appealing and smartphones are used in this area as well. People would like to measure and track their progress, also improve and tune it based on detailed statistics about it.
While the currently available mobile applications are perfectly capable of tracking outdoor sports, indoor activity details have to be added manually to the app. The main goal of the department's SmartActive project is to examine the possibilities of squash to add new elements to it, also to provide detailed and useful statistics for the players about their performance, at any scale from beginner to professional levels. The system collects data during the gameplay, which is stored in a database that can be accessed through a web portal. Another goal of the project is to provide a community platform to the users, e.g. someone can organize a tournament, to which he/she can invite his/her friends. My objective was to design and develop a cross-platform mobile application, which can support these features.
In my bachelor thesis I first introduced the concept of the mobile application to be developed. After that I examined the currently available cross platform mobile software development frameworks and reviewed them by their compatibility to the SmartActive mobile application. Then I presented the needed tools for starting development in the Xamarin framework, also showed their correct settings and usage. I reviewed the options of development in the framework, presented its main elements used for the development, also their issues, which I encountered while implementing the program. I gave a detailed view of the mobile application's structure, also touched upon the main programming paradigms and unit testing concept I used for the implementation. Finally, I presented the completed application's user interface and its operation in detail. The structure and feature set of the program is the same on all target platforms, thus providing a consistent user experience.