Android Development with Kotlin

  1. Your First Android Application
    1. Anatomy of an Android Project
      1. Gradle Build System
        1. build.gradle Files
          1. Project-level Configuration
            1. Module-level Dependencies
            2. settings.gradle
              1. Project Structure Definition
              2. Dependencies Management
                1. Adding and Updating Dependencies
                  1. Version Catalogs
                2. Project Structure and Directories
                  1. manifests Directory
                    1. AndroidManifest.xml Location
                    2. java/kotlin Directory
                      1. Source Code Organization
                        1. Package Structure
                        2. res Directory (Resources)
                          1. drawable
                            1. layout
                              1. values
                                1. mipmap
                                  1. xml
                                  2. assets Directory
                                    1. Storing Raw Files
                                  3. Generated Files and Directories
                                    1. build Directory
                                      1. R.java/R.kt File
                                    2. The AndroidManifest.xml File
                                      1. Application Element
                                        1. Application-level Attributes
                                        2. App Components Declaration
                                          1. Activities
                                            1. Services
                                              1. Broadcast Receivers
                                                1. Content Providers
                                                2. Permissions
                                                  1. Declaring Required Permissions
                                                    1. Permission Categories
                                                    2. Intent Filters
                                                      1. Action, Category, Data
                                                      2. Application Metadata
                                                        1. Custom Metadata Tags
                                                      3. Understanding App Resources
                                                        1. String Resources
                                                          1. strings.xml
                                                            1. Localization and Internationalization
                                                              1. String Arrays
                                                                1. Plurals
                                                                2. Drawable Resources
                                                                  1. Image Formats and Usage
                                                                    1. Vector Drawables
                                                                      1. Shape Drawables
                                                                        1. State List Drawables
                                                                        2. Layout Resources
                                                                          1. XML Layout Files
                                                                            1. Layout Directories
                                                                            2. Style and Theme Resources
                                                                              1. Defining Styles
                                                                                1. Style Inheritance
                                                                                  1. Applying Themes
                                                                                  2. Color Resources
                                                                                    1. colors.xml
                                                                                      1. Color State Lists
                                                                                      2. Dimension Resources
                                                                                        1. dimens.xml
                                                                                          1. Different Units (dp, sp, px)
                                                                                          2. Providing Alternative Resources
                                                                                            1. Resource Qualifiers
                                                                                              1. Screen Size
                                                                                                1. Screen Density
                                                                                                  1. Orientation
                                                                                                    1. Language
                                                                                                      1. API Level
                                                                                                  2. Building and Running the App
                                                                                                    1. The Build Process
                                                                                                      1. Compilation
                                                                                                        1. Resource Processing
                                                                                                          1. DEXing (Dalvik Executable)
                                                                                                            1. APK/AAB Creation
                                                                                                            2. Build Variants
                                                                                                              1. Debug vs. Release
                                                                                                                1. Build Types
                                                                                                                  1. Product Flavors
                                                                                                                  2. Deploying to Emulator or Device
                                                                                                                    1. Selecting Deployment Target
                                                                                                                      1. Installation Process
                                                                                                                      2. Using Logcat for Debugging
                                                                                                                        1. Log Levels
                                                                                                                          1. Filtering and Searching Logs
                                                                                                                            1. Logging Best Practices
                                                                                                                              1. Custom Log Tags