Android Development with Kotlin

  1. Concurrency and Background Tasks
    1. Android Threading Model
      1. The Main Thread (UI Thread)
        1. UI Thread Constraints
          1. ANR (Application Not Responding)
          2. Background Threads
            1. Worker Threads
              1. Thread Safety
            2. Traditional Threading Approaches
              1. Thread and Runnable
                1. Handler and Looper
                  1. AsyncTask (Deprecated)
                    1. Executor Framework
                    2. Kotlin Coroutines on Android
                      1. Coroutines Fundamentals
                        1. Suspending Functions
                          1. Coroutine Builders
                          2. Coroutine Scopes
                            1. CoroutineScope Interface
                              1. viewModelScope
                                1. lifecycleScope
                                  1. GlobalScope (Avoiding)
                                    1. Custom Scopes
                                    2. Dispatchers
                                      1. Main Dispatcher
                                        1. IO Dispatcher
                                          1. Default Dispatcher
                                            1. Unconfined Dispatcher
                                            2. Launching Coroutines
                                              1. launch Builder
                                                1. async Builder
                                                  1. runBlocking
                                                    1. withContext
                                                    2. Structured Concurrency
                                                      1. Parent-Child Relationships
                                                        1. Cancellation
                                                          1. Exception Handling
                                                          2. Flow
                                                            1. Cold Streams
                                                              1. Flow Builders
                                                                1. Flow Operators
                                                                  1. Collecting Flows
                                                                    1. StateFlow and SharedFlow
                                                                  2. WorkManager
                                                                    1. Introduction to WorkManager
                                                                      1. Use Cases
                                                                        1. Guaranteed Execution
                                                                        2. Types of Work
                                                                          1. One-Time Work
                                                                            1. Periodic Work
                                                                            2. Defining Workers
                                                                              1. Worker Class
                                                                                1. CoroutineWorker
                                                                                  1. ListenableWorker
                                                                                  2. Work Requests
                                                                                    1. OneTimeWorkRequest
                                                                                      1. PeriodicWorkRequest
                                                                                      2. Constraints
                                                                                        1. Network Connectivity
                                                                                          1. Charging State
                                                                                            1. Battery Level
                                                                                              1. Device Idle
                                                                                                1. Storage Space
                                                                                                2. Work Chaining
                                                                                                  1. Sequential Work
                                                                                                    1. Parallel Work
                                                                                                      1. Work Continuations
                                                                                                      2. Input and Output Data
                                                                                                        1. Passing Data to Workers
                                                                                                          1. Returning Results
                                                                                                          2. Work States and Observing Work
                                                                                                            1. Work States
                                                                                                              1. Observing Work Progress
                                                                                                              2. Advanced WorkManager Features
                                                                                                                1. Unique Work
                                                                                                                  1. Work Policies
                                                                                                                    1. Expedited Work
                                                                                                                  2. Background Processing Best Practices
                                                                                                                    1. Choosing the Right Approach
                                                                                                                      1. Battery Optimization
                                                                                                                        1. Doze Mode and App Standby
                                                                                                                          1. Background Execution Limits