Basic Kotlin and Android
Basic Kotlin
- Classes, objects
- Control flow
- Interfaces
Kotlin sugar
- Lambda
- Extensions
- Infix, inline functions
- Kotlin DSL
Collections
- List
- Set
- Map
OOP
- Classes
- Interfaces
JSON
- Json
- Xml
- Gson
Java Threads
- Threads
- Concurrency vs parallelism
- Executors
Text
- 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
RecyclerView
- LayoutManager
- RecyclerView Poll
Android SDK and androidX components
ViewPager
- ViewPager
- ViewPager 2
- Transactions
Constraint layout
- Constraints
- ConstraintSet
- Constraint layout2.0
Drawable and Images
- Selectors
- Gradients
- Layer list
Animations
- 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
MVVM
- LiveData
- ViewModel
- Data binding
Dependency injection
- Dagger 2
- Koin
- Dependencies injection vs Service locator
Libraries and tools
Data storage
- SQLite
- Room
- BinaryPref by Yandex
Authentication
- Basic auth
- Oauth 2.0
RxJava
- Basic operators
- Under the hood
Coroutines
- 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
WebSocket
- OkHttp
- Communication with server without requests
- Ping
- How to create stable web socket
Firebase
- Crashlytics
- Analytics
- Remote config
- A/B testing
Navigation
- Navigation patterns
- Single activity