Nowdays, tablets have become more and more popular both for developers and for users. Microsoft has recognized this fact, so it supplemented the latest release of Windows (Windows 8) with a new cross-platform application architecture called Windows Runtime (WinRT). The greatest advantage of WinRT applications is that they natively support x86, x64 and ARM processor architectures, therefore enabling them to run on desktop and tablet devices. Applications of this kind are called Windows Store or Windows 8 applications. Windows Store applications can be downloaded through the Windows Store and they embrace the Microsoft design style principles. In addition, WinRT provides different programming languages from which developers can choose.
The goal of this thesis was to learn about the basics of the Windows 8 platform and then to create an audiobook player Windows Store application which meets the increasing expectations of the users, takes advantage of the services and possibilities of the platform and embraces the Microsoft design style principles.
The data for my application was provided by a growing online free audiobook collection called LibriVox. This collection currently contains about six thousand volumes and is expanding by about hundred books each month. Realizing an efficient, easy-to-use search function was an important goal of the application due to the large and increasing number of audiobooks available. Furthermore, an additional requirement of the application was to provide download, storage and streaming functions for the audiobooks.
I implemented the application logic in C# and created the graphical user interface with the help of Extensible Markup Language (XAML) using the Model-View-ViewModel (MVVM) design pattern. Furthermore, during the implementation I used several technologies provided by the .NET Framework, such as the Language-Integrated Query (LINQ) which provides a new set of language elements with an SQL-like query functionality or the Task-based Asynchronous Pattern (TAP) which allows developers to make asynchronous function calls with the use of language elements.