Enrollment closed
Native <br>Android

Native Android Course


Duration of paid internship (5 days/week, 8 hours/day):
2.5 months
* The program provides the possibility of additional classes on Saturday and Tuesday, the final schedule will be sent to the applicants, who get enrolled in said program.

Course description

The course is designed for people who want to commit their careers to develop mobile applications. Android is a highly popular operating system used in many smartphones and tablets, as well as other devices. Thousands of new Android applications are being developed as you are reading this. The course covers the basics of Android development - the Kotlin programming language, the basics of object-oriented programming, as well as advanced topics, e.g. authentication, testing, and animation.


Students will be developing 3 projects during the course, based on which the judging committee determines which graduates are selected for further study/internship. The projects cover all the material that is learned during the previous modules and allow to merge the gained knowledge by practicing.


During the educational process, students must complete homework assignments and academic projects, based on which the judging committee grades their practical skills and knowledge, as well as teamwork capabilities.


Serhii Boyko
Serhii Boyko
Volodymyr Usachov
Volodymyr Usachov
Volodymyr Stelmashchuk
Volodymyr Stelmashchuk

Course structure

Basic Kotlin and Android

Basic Kotlin and Android

Basic Kotlin

  • Classes, objects
  • Control flow
  • Interfaces

Kotlin sugar

  • Lambda
  • Extensions
  • Infix, inline functions
  • Kotlin DSL


  • List
  • Set
  • Map


  • Classes
  • Interfaces


  • Json
  • Xml
  • Gson

Java Threads

  • Threads
  • Concurrency vs parallelism
  • Executors


  • TextView
  • EditText
  • TextWatchers


Rest API

  • Retrofit
  • Interсeptors
  • OkHttp
  • Basic of networks

Android Application Knowledge 1

  • Application
  • Android components
  • Manifest
  • Base gradle

Android Application Knowledge 2

  • Intent
  • Receiver
  • Notifications
  • Logging

Android Application Knowledge 3

  • AlertDialog
  • DialogFragment
  • BottomSheetDialog

Basic views

  • ImageView
  • TextView
  • LinearLayout
  • FrameLayout


  • LayoutManager
  • RecyclerView Poll

Android SDK and androidX components


  • ViewPager
  • ViewPager 2
  • Transactions

Constraint layout

  • Constraints
  • ConstraintSet
  • Constraint layout2.0

Drawable and Images

  • Selectors
  • Gradients
  • Layer list


  • Default animations
  • Animations in recycler

Motion layout

  • Advanced animation

Custom views

  • View lifecycle
  • Combine several view into one business unit

Android Application Knowledge 4

  • Biometric
  • Job scheduler
  • Work manager

Design patterns and project architecture

GOF Patterns

  • Singleton
  • Builder
  • Factory
  • Strategy
  • Anti patterns

Clean architecture

  • Data layer
  • Domain layer
  • UI layer

Deep clean architecture

  • Feature separating
  • Clean architecture
  • Patterns


  • LiveData
  • ViewModel
  • Data binding

Dependency injection

  • Dagger 2
  • Koin
  • Dependencies injection vs Service locator

Libraries and tools

Data storage

  • SQLite
  • Room
  • BinaryPref by Yandex


  • Basic auth
  • Oauth 2.0


  • Basic operators
  • Under the hood


  • Suspend function
  • Job
  • Scope

Coroutines Flows

  • Builders
  • Operators
  • Errors

Unit tests

  • Common testing knowledge
  • JUnit 5
  • Kotlin test
  • Mock

CI and Linters

  • Github actions
  • Detekt for static code analysis

Memory leak, garbage collector

  • Leak canary
  • Android profiler


  • OkHttp
  • Communication with server without requests
  • Ping
  • How to create stable web socket


  • Crashlytics
  • Analytics
  • Remote config
  • A/B testing


  • Navigation patterns
  • Single activity

What do
students get

Native <br>Android
  • Basic programming knowledge for the Android platform
  • The key trends in the development of mobile applications
  • Object-oriented programming skills
  • Understanding of the app development cycle and its architecture
  • Ability to create mobile applications
  • Teamwork skills
Enrollment closed
Fill in the form