- Learn the modern Android platform, including architecture and jetpack or other you should to learn in Android
- Ready to get the certificate from Associate Android Developer Certification
- Create sample codes derived from Google Official Training
- Add some boilerplate code for practicing and examination
- Java to Kotlin
- The annotation such as @Nullable, helps the convert to the appropriated declaration.
- Equality
- Default arguments, named arguments
- Destructuring
- Elvis operator
- string templates
- With Kotlin, we prefer using properties rather than functions for such cases.
- top-level functions
- Scope functions: let, apply, with, run, also
- Ready to get the certificate from Add Kotlin to an existing app
- How to create Java/Kotlin files
- Source organization
- Code conversion and nullability
- lateinit
- safe-call (?.) v.s elvis operator (?:)
- Calling Kotlin codes from Java
- The @JvmStatic annotation tells the Kotlin compiler to generate a static version of the annotated member or method
- The @JvmName annotation is a powerful tool that influences how Kotlin names classes, properties, and methods in the bytecode it generates for the Java Virtual Machine (JVM). We'll discuss another of its uses later in this codelab.
- @JvmStatic @Throws(IOException::class)
- Kotlin-Java interop guide
- No hard keywords, backticks
- Nullability annotations
- Lambda parameters last
- Property prefixes
- is, set, get
- Operator overloading
- Defensive copies
- Function overloads for defaults
- Lint: File > Preferences > Editor > Inspections
- Navigation
- ViewModel
- Asynchronous
- Thread
- Coroutine
- runBlocking
- lifecycleScope.launch
- LiveData & FlowData
- WorkManager
- DataStore
- Kotlin Collection, Map, Set, List etc, and how use the high-level function
- ViewModel, Kotlin Delegate, Get() / Set(), backing property
- MaterialAlertDialogBuilder
- [Coroutines] (https://developer.android.com/courses/pathways/android-basics-kotlin-unit-4-pathway-1)
- Job(Deferred), CoroutineScope, Dispatcher, suspend
- A Deferred (also called a Promise or Future in other languages) guarantees that a value will be returned to this object at a later time
- runBlocking(), which as the name implies, starts a new coroutine and blocks the current thread until completion
- Moshi, Retrofit
- SQL basics
- SQL data types, Aggregate functions
- ROOM/DAO/SQLite db
- android-basics-kotlin: unit-6
- WorkManager, OneTimeWorkRequest, WorkRequests, WorkInfo
- Architecture Component -> Data Layer Libraries -> WorkManager
- Persistent work
- Work is persistent when it remains scheduled through app restarts and system reboots
- For background processing.
- Versus Coroutines, All asynchronous work that doesn't need to be persistent.
- How to transmission the JSON text into Kotlin object easily?
- Copy and paste the JSON text to jsonFormatter online website
- Copy and paste the beautified JSON text to json2KT
- Download the data class
- How to write formatting comment in codes?