Basic Android Development with Kotlin
Basic Android Development with Kotlin is a beginner course in building Android apps, from Kotlin fundamentals and object-oriented programming to designing screens with Jetpack Compose and Material 3, storing data with Room, calling web APIs with Retrofit and using Firebase. It suits students, teachers and IT staff who are new to Android, and you leave able to build your own app ready for Google Play.
- Duration18 hours · 3 days
- FormatOnsite / live online
- Next roundOn request
- CertificateIncluded
Course overview
Kotlin is the language Google recommends for Android apps, and Jetpack Compose is the way Android now recommends building screens, in place of the older XML layouts. Beginners who learn from older examples are often confused by the two approaches, so this course starts with the Kotlin you need and then builds apps with Compose from the very first screen, giving a foundation that matches real work today.
This 2026 edition uses Kotlin 2.4 and the current Android Studio. Learners install the tools, write Kotlin with variables, conditions, loops, functions and OOP, build screens with Jetpack Compose and Material 3, manage state, show lists with LazyColumn, navigate between screens, store data with Room and DataStore, load API data with Retrofit and use Firebase through the Chores, Recipe Finder and Breathe sample apps. (3 days, 6 hours per day, 18 hours in total, Beginner level.)
What you’ll gain
- Install and use Android Studio, the emulator and a real phone for app development
- Write Kotlin from variables, null safety, conditions, loops and functions through to object-oriented programming
- Design screens with Jetpack Compose and Material 3 and manage state
- Show lists with LazyColumn and navigate between screens while passing data
- Separate data from the UI with ViewModel and use basic coroutines
- Store data on the device with Room and DataStore and load JSON with Retrofit
- Build sign-in and cloud storage with Firebase
- Prepare an app and understand the steps to publish on Google Play
Who this course is for
- School and university students who want to start writing Android apps
- Teachers, lecturers and trainers who want to teach or use app development in their work
- IT staff, system administrators and programmers from other languages who want to start Android with Kotlin
- Anyone who wants to build their own Android app
Prerequisites
- No previous Android or Kotlin experience is needed
- Comfortable using a computer, installing software and searching the web
- Some programming experience in any language or basic database knowledge will help you learn faster
- A Google account for Firebase and an Android phone for testing (recommended)
Curriculum
Course Details
This course is the 2026 edition of Basic Android Development with Kotlin, rewritten for Kotlin 2.4, Jetpack Compose and the current Android Studio. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures alternating with labs and workshops throughout. Beginner level. It suits people who are new to Android and is the foundation for Advanced Android Development with Kotlin. Learners write Kotlin, build screens with Compose, store data with Room and DataStore, load API data and use Firebase through the Chores, Recipe Finder and Breathe sample apps, and take home a lab guide and source code.
Day 1 Tools and the Kotlin Language
Section 1: Lab: Setting Up the Development Tools
- An overview of modern Android development: Kotlin, Jetpack Compose and Android Studio
- Install Android Studio on Windows or macOS with its bundled JDK
- Set up the Android SDK and create an emulator
- Enable developer mode and USB debugging on an Android phone
- Practise Kotlin in Kotlin Playground and scratch files in Android Studio
Section 2: Lab: Kotlin Language Basics
- Hello World, comments and the main function
- val and var variables and type inference
- String, Int, Double, Float, Boolean and Char types
- String templates and type conversion
- Null safety: nullable types and the ?. and ?: operators
Section 3: Lab: Operators, Conditions and Loops
- Arithmetic, increment, decrement and remainder operators
- Comparison and logical operators
- if and when as expressions that return values
- for with ranges, while and do-while
- Lab: a shop conversation app with readln()
Section 4: Lab: Functions, Lambdas and Collections
- Functions with parameters, default values and named arguments
- Return types and variable scope
- Lambdas and functions that take functions as parameters
- List, Set and Map with filter, map and sortedBy
- Lab: summarise totals from a product list
Section 5: Lab: Object-Oriented Programming in Kotlin
- Classes, objects, properties, and primary and secondary constructors
- Access control, getters and setters
- Inheritance, open and override
- data class, enum class, object and companion object
- Extension functions, nested classes and inner classes
Day 2 Building Screens with Jetpack Compose
Section 6: Lab: Your First Compose App in Android Studio
- Create a project from the Compose Empty Activity template
- Tour the project: the Manifest, Gradle Kotlin DSL, the version catalog and strings.xml
- Activity, setContent and basic lifecycle
- Check results with Compose Preview and run on the emulator or a real phone
- Lab: the What's my name app
Section 7: Lab: Composables, Layouts and Material 3
- Composable functions and layouts with Column, Row and Box
- Modifiers for size, padding, background and clicks
- Text, Image, Icon and Button
- Material 3 theming: colour, typography and dark theme
- Scaffold, TopAppBar and Snackbar
Section 8: Lab: Managing State in Compose
- How state and recomposition work together
- remember, mutableStateOf and rememberSaveable
- TextField, Checkbox, Switch and RadioButton
- State hoisting so composables can be reused
- Lab: a planet weight calculator app
Section 9: Lab: Showing Lists with LazyColumn
- LazyColumn and LazyRow in place of ListView and RecyclerView
- Design custom list rows with Card
- Give items keys and add click events
- Show images from the internet with Coil
- Lab: the Animals Bio app list screen
Section 10: Lab: Navigating Between Screens with Navigation 3
- The back stack and defining screens as routes
- Show screens with NavDisplay and add or remove them from the back stack
- Pass data to the next screen and return a result
- The back button in the TopAppBar and the system back button
- Lab: the Animals Bio app detail screen
Day 3 Data, APIs, Firebase and a Finished App
Section 11: Lab: ViewModel and Coroutine Basics
- Why separate data from the UI, and what happens on rotation
- ViewModel and holding UI state in StateFlow
- Coroutine basics: suspend, launch and viewModelScope
- Read state in Compose with collectAsStateWithLifecycle
- Lab: move the calculator logic into a ViewModel
Section 12: Workshop: The Chores App with Room and DataStore
- DataStore for settings in place of SharedPreferences
- Room: entities, DAOs and the database on SQLite
- Add, load, edit and delete chores through a ViewModel
- An Add button in the TopAppBar and a custom dialog for saving chores
- Show chores in a LazyColumn that updates as soon as data changes
Section 13: Workshop: The Recipe Finder App with Retrofit
- HTTP requests, JSON and the app's internet permission
- Set up Retrofit and convert JSON with kotlinx.serialization
- Call GET APIs that return arrays and objects with suspend functions
- Show loading, success and error states on screen
- Show recipes with images and a detail screen
Section 14: Lab: Firebase for Android Apps
- Create a Firebase project and connect it to the app
- Sign up and sign in with email and password through Firebase Authentication
- Save and read data in Cloud Firestore
- Listen for data changes in real time
- Set basic Security Rules so users see only their own data
Section 15: Workshop: The Breathe App and Preparing for Google Play
- Draw shapes on screen with Canvas in Compose
- Create animations with the Compose animation APIs
- Save usage stats with DataStore and finish the app
- Set the icon, app name and version, then build a signed Android App Bundle
- An overview of publishing through the Google Play Console
Schedule & training options
For individuals — public rounds
No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770
For organisations — in-house / private
- Tailor the content to your team’s tools and projects
- Your dates, at your office or live online
- Quotation with tax ID for procurement
Instructors
Frequently asked questions
What is the difference between var and val in Kotlin?
val declares a variable that is assigned once and cannot change, similar to final in Java, while var declares one whose value can change later. Good practice is to use val by default and var only when you need it, which keeps code predictable and reduces bugs. In both cases Kotlin can infer the type, as in val count = 10, or you can state it, as in var age: Int = 20.
What is Jetpack Compose, and how does it differ from the older XML layouts?
Jetpack Compose is the declarative UI toolkit Android now recommends. Screens are written entirely in Kotlin as functions marked with the Composable annotation and arranged with Column, Row and Box, and when state changes Compose redraws the affected parts for you. With XML layouts you write screens in separate files and update views from code, so Compose means less code, instant feedback in Compose Preview, and this course uses it from the very first screen.
How do you store data with Room on Android?
Room is a library that wraps SQLite to make it easier and safer to use. It has three parts: entities are classes that represent tables, DAOs are interfaces that declare insert, query, update and delete operations, and the database class ties them together. Room checks SQL at compile time and works well with coroutines and ViewModel. This course uses Room to build the Chores app with full CRUD.
What software is used on the course?
Windows or macOS both work. The main tool is the current Android Studio, which bundles a JDK and is used to build apps and run them on the emulator or a real phone. Kotlin practice uses Kotlin Playground on the web or scratch files in Android Studio, so there is no need to install IntelliJ IDEA or a separate JDK. Installation is covered at the start of the course, and the Firebase sections use the learner's own Google account.
Who is the Basic Android Development with Kotlin course for, and what should I know beforehand?
It suits students, teachers, IT staff and system administrators, and anyone who wants to start writing Android apps in Kotlin. You do not need any Android or Kotlin experience, as the course starts from the basics, but you should be comfortable using a computer and installing software. Experience with another language or basic databases helps you learn faster, and Advanced Android Development with Kotlin is the next step afterwards.
What will I be able to do after the Basic Android Development with Kotlin course?
You will be able to write Kotlin with variables, conditions, loops, functions and classes, design screens with Jetpack Compose and Material 3, manage state, show lists with LazyColumn, navigate between screens, separate logic with ViewModel, store data with Room and DataStore, load JSON with Retrofit, use Firebase and build an app ready for Google Play, practising on the Chores, Recipe Finder and Breathe apps. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.
Related articles
Articles are published in Thai.

