Mobile Application Development

Objectives and outcomes

Acquisition of knowledge and practical skills needed to create applications based on the Android platform. Students understand and can implement all the key concepts, technologies and design patterns necessary to create scalable, modern mobile applications.


History of development, architecture, versions and layers of the Android OS interface. Getting to know the working environment “Android studio”. Types of android applications, AndroidManifest.xml file, permissions and components. Anatomy of an android application, overview of characteristic folders for storing different types of resources. Getting to know the Gradle tool. Creating a graphical user interface using different layout types (LinearLayout, RelativeLayout, GridLayout, ConstraitLayout, etc.). Activities and activity lifecycle. Fragments, fragment lifecycle, multi-fragment communication and fragment-activity relationship. Intentions and types of intentions. Advanced concepts of creating a graphical user interface and displaying data to a user (ListView, RecyclerView, TabLayout, ViewPager, NavigationDrawer). Services and asynchronous operations. Message receivers and senders (BroadcastSender, BroadcastReciver). Data persistence. (SharedPreferences, Room). Communication with Restfull web services, advanced design elements. MVVM, MVI, MVC design patterns. Firebase platform, geofencing, applications based on GPS technology. Testing the application and placing it on the Google play store. Overview of useful resources for further training.

Practical classes

Installation and familiarisation with the “Android studio” development environment. Creating the first android project, getting to know the anatomy of an android application and the Gradle tool. Creating a graphical user interface using different types of layouts. Interaction with user interface elements, processing of various types of events. Activities, fragments, intentions. Examples. Displaying larger datasets using ListView, RecyclerView. Description of use cases and implementation of applications that use service components and asynchronous operations. Message receivers and senders. Creating applications with the ability to store and reuse data using the Room library, SharedPreferences class. ViewModel, Data Binding, application development based on the MVVM pattern. Getting to know the Firebase platform, creating applications that use Firebase as a backend service. Development of applications using Geofencing and GPS technology. Testing and using applications.