Android Development with Kotlin

  1. Data Storage and Persistence
    1. Storage Options Overview
      1. Internal vs. External Storage
        1. Storage Categories
          1. Storage Permissions
          2. SharedPreferences
            1. Key-Value Data Storage
              1. Creating and Accessing SharedPreferences
                1. Storing and Retrieving Data
                  1. Primitive Data Types
                    1. String Sets
                    2. Preference Change Listeners
                      1. Best Practices
                      2. File Storage
                        1. Internal File Storage
                          1. App-specific Storage
                            1. File Creation and Access
                              1. File Operations
                              2. External File Storage
                                1. Shared Storage
                                  1. Scoped Storage
                                    1. Storage Access Framework
                                    2. Cache Storage
                                      1. Internal Cache
                                        1. External Cache
                                        2. File Permissions and Security
                                        3. Databases with Room
                                          1. Introduction to Room
                                            1. Benefits over SQLiteOpenHelper
                                              1. Room Architecture Components
                                              2. Setting Up Room
                                                1. Dependencies
                                                  1. Database Configuration
                                                  2. Defining Entities
                                                    1. @Entity Annotation
                                                      1. Primary Keys
                                                        1. Column Info
                                                          1. Indices
                                                            1. Foreign Keys
                                                              1. Embedded Objects
                                                              2. Data Access Objects (DAOs)
                                                                1. @Dao Annotation
                                                                  1. Query Methods
                                                                    1. @Query
                                                                      1. @Insert
                                                                        1. @Update
                                                                          1. @Delete
                                                                          2. Return Types
                                                                            1. LiveData
                                                                              1. Flow
                                                                                1. Suspend Functions
                                                                              2. The Room Database Class
                                                                                1. @Database Annotation
                                                                                  1. Database Initialization
                                                                                    1. Singleton Pattern
                                                                                      1. Database Builder
                                                                                      2. Type Converters
                                                                                        1. Handling Custom Data Types
                                                                                          1. @TypeConverter Annotation
                                                                                          2. Database Relations
                                                                                            1. One-to-One
                                                                                              1. One-to-Many
                                                                                                1. Many-to-Many
                                                                                                  1. Nested Relations
                                                                                                  2. Database Migrations
                                                                                                    1. Versioning Strategies
                                                                                                      1. Migration Implementation
                                                                                                        1. Destructive Migrations
                                                                                                        2. Testing Room Databases
                                                                                                          1. In-memory Databases
                                                                                                            1. Database Testing
                                                                                                          2. Jetpack DataStore
                                                                                                            1. Introduction to DataStore
                                                                                                              1. Advantages over SharedPreferences
                                                                                                              2. Preferences DataStore
                                                                                                                1. Setup and Configuration
                                                                                                                  1. Storing and Retrieving Data
                                                                                                                    1. Migration from SharedPreferences
                                                                                                                    2. Proto DataStore
                                                                                                                      1. Protocol Buffers
                                                                                                                        1. Defining Schemas
                                                                                                                          1. Type Safety
                                                                                                                            1. Serialization and Deserialization
                                                                                                                            2. DataStore Best Practices