O'Reilly logo
live online training icon Live Online training

Introduction to Android Application Development with Kotlin

Learn how to make Android apps using the newest Architecture Components

Lukasz Madrzak

Over 85% of the world’s smartphone devices are powered by Android. It is an overwhelming market share that cannot be disputed. Android is the perfect platform for any programmer wishing to create apps that can have an enormously high impact and reach.

This session will introduce you to the vast world of Android app development. We will show you the best practices and libraries professionals use. At the end of this course, you will end up with a simple working app that you will be able to build upon yourself. The aim of this course is to give you tools so you can build any app you like.

If you already have some experience in Android Development this course may also benefit you. We will show you patterns and frameworks that will make your app development process a pleasure. This session will be using Kotlin programming language.

What you'll learn-and how you can apply it

We believe that the only effective way to learn is by doing. So we’re making this session as interactive as possible. You’ll come out of this course with a fully working, well designed, easy to maintain the app that you will be able to expand on by yourself.

You’ll learn:

  • How to use Android Studio
  • How to debug Android apps
  • How to Setup & Run Android Virtual Device
  • How to create views in Android
  • How to interact with views
  • How to navigate between views
  • How to persist data in a database using Room
  • How to fetch data from the database
  • How to implement MVVM architecture correctly
  • How to use LiveData and what is it

This training course is for you because...

  • Programmers that have some experience in Java, Kotlin or other object-oriented language and wish to learn how to make Android apps.
  • Or, if you had some exposure to Android development in the past but want to see how to use the new Android Architecture components.


  • Basic ability to program in an object-oriented language e.g. Kotlin or Java.

Materials, downloads, or Supplemental Content needed in advance:

  • Download, Install & Configure Android Studio 3.3 from here https://developer.android.com/studio/ (Important: New version of Android Studio was released only a few days ago, so if you already have Android Studio installed, make sure you update it to the latest version - 3.3)
  • To make sure Android Studio is setup correctly, Create and Run a new Project without errors

About your instructor

  • Lukasz Madrzak holds an Honours BSc degree in Computer Science from University College Cork in Ireland. He has been working with Android since 2011 when he first started making his own apps. Łukasz was a Senior Android Developer in an IoT company that created a high-performance Android app for thousands of customers until recently.

    Łukasz has then started his own company where he plans, designs and develops technology for businesses based in Ireland.


The timeframes are only estimates and may vary according to how the class is progressing

Day 1

Section 1 - Introduction to Android Studio: Lesson 1 - New Project (30mins)

  • In this part, we will get familiar with Android Studio and it’s layout. We will create a new project and we will be introduced to the structure of every Android app i.e. Manifest, Activities, Fragments, and Resources. We will create and configure our first Android Virtual Device which we will then use to run a Hello World app.

Lab 1 (15mins)

  • Create a new Project Using Android Studio
  • Create and Configure an Android Virtual Device
  • Run your app on the Virtual Device
  • Break (5mins)

Section 2 - Introduction to Fragments: Lesson 2 - My First Screen (30mins)

  • In the second part, we will get familiar with Fragments, their lifecycle and the Layout Editor. We will create our own custom screen and make it display on the virtual device.

Lab 2 (15mins)

  • Create a new Fragment
  • Customize the view by adding and EditText, TextView and a Button
  • Break (10mins)

Lesson 3 - Make our button do the work: We will wire up our fragment to the layout and then make the button do something (30mins)

  • Lab 3 (15mins)
  • Connect the layout to the fragment
  • When the user presses the button, our app should take their input from EditText and display it in the TextView.
  • Break (5mins)

Lesson 4 - FragmentManager and Navigation: In this part, we will learn how to navigate between fragments. In order to do this, we will have to get familiar with FragmentManager and we will create another fragment (40mins)

  • Lab 4 (35mins)
  • Create your second fragment
  • Add support for fragment change in the activity
  • Add buttons to allow the user to switch fragments

Day 2

Section 3 - MVVM Architecture: Lesson 5 What is MVVM and why is it important(15mins)

  • You will learn what does MVVM stand for, why is it important to follow an architecture pattern when creating apps and how does it apply to our app

Lesson 6 - Creating a ViewModel: Here we’ll learn how to create a ViewModel and how to correctly instantiate it (15mins)

Lab 5 (15mins)

  • Create a ViewModel and instantiate it correctly in your fragment
  • Break (5mins)

Section 4 - Model: Lesson 7 - Create a database using Room (40mins) In this lesson, you will learn about the Room, what is it and how to use it. You will also find out about DAOs and Entities. This part is important if you wish to compete with Airbnb or Uber.

Lab 6 (30mins)

  • Create a Room database and instantiate it
  • Create an Entity
  • Create a DAO
  • Break (10 mins)

Lesson 8 - Store user input in the database: We will take user input from the views created earlier and we will store it in our database. (15mins)

Lab 7 (25mins)

  • Store user input in the database using the DAO
  • Break 5 mins

Section 5 - Lists: Lesson 9 - Display data stored in the database (15mins)

  • We will learn about lists in Android. What is a RecyclerView and why it should be used instead of a ListView? We will then create a RecyclerView to display items stored in the database by our app user. At this stage, you will have a fully functioning app that allows the user to store and preview data. The backbone of most apps out there.

Lab 8 (45 mins)

  • Create a RecyclerView
  • Populate it with data from the database

Section 6 - What’s next: Lesson 10 - What else must I learn & QA (15mins)

  • At this stage, you will have a complete but a basic app. You will find out how can you improve it and what other libraries are worth looking into. You will also be given a chance to ask questions should you have any.