What this book covers
Chapter 1, Get Started with Kotlin Android Development, introduces Kotlin as a programming language. It covers features that are useful for Android development and its importance for Android developers. Additionally, it covers how to migrate from Java to Kotlin and some useful tips for developers coming from Java backgrounds.
Chapter 2, Creating Your First Android App, covers how to create Android apps. It familiarizes you with Android Studio, the Integrated Development Environment (IDE) that you will use to develop Android apps. It also covers some tips, shortcuts, and useful Android Studio features and explores the process of creating a project in Android Studio.
Chapter 3, Jetpack Compose Layout Basics, looks at Jetpack Compose, a declarative way of creating user interfaces for apps. It covers the basics of Jetpack Compose and its layouts.
Chapter 4, Design With Material Design 3, introduces Material 3 and the features that it offers. It also covers how to use Material 3 in Android apps and some of its components.
Chapter 5, Architect Your App, explores the different architectures available for Android projects. It dives deep into the MVVM architecture and its different layers and how to use some of the Jetpack libraries within it. Additionally, it shows you how to use advanced architecture features, such as dependency injection, the Kotlin Gradle DSL, and a version catalog to define dependencies.
Chapter 6, Network Calls with Kotlin Coroutines, discusses how to perform network calls with a networking library, Retrofit. It shows how to consume Application Programming Interfaces (APIs) using this library. Moreover, it covers how to take advantage of Kotlin coroutines to perform asynchronous network requests.
Chapter 7, Navigating within Your App, explains how to use the Jetpack Compose Navigation library to navigate to different Jetpack Compose screens. It covers the tips and best practices for using this library. Moreover, it covers how to pass arguments as we navigate to screens. Lastly, it covers how to handle navigation on large screens and foldables.
Chapter 8, Persisting Data Locally and Doing Background Work, covers how to save data to a local database, Room, which is part of the Jetpack libraries. It shows how to save items and read from the Room database. Additionally, it covers how to do long-running operations using WorkManager and some of the best practices.
Chapter 9, Runtime Permissions, delves into runtime permissions and how to request runtime permissions.
Chapter 10, Debugging Your App, discusses debugging tips and tricks, how to detect leaks using LeakCanary, how to inspect network requests/responses fired by apps using Chucker, and how to inspect the Room database, network requests, and background tasks using App Inspection.
Chapter 11, Enhancing Code Quality, explores the Kotlin style and the best practices for writing Kotlin code. It also demonstrates how to use plugins such as Ktlint and Detekt to format, lint, and detect code smells early.
Chapter 12, Testing Your App, examines how to add tests for the different layers in the MVVM architecture. It covers the importance of adding tests and how to add unit tests, integration tests, and instrumentation tests.
Chapter 13, Publishing Your App, delves into how to publish a new app to Google Play Store. It walks through how to create a signed app bundle and topics such as answering questions about the content of our app, creating releases, setting up how users will access the app, either via controlled testing tracks or publicly, and much more. Additionally, it covers some of the Google Play Store policies and how to always stay compliant to avoid apps being removed or accounts being banned.
Chapter 14, Continuous Integration and Continuous Deployment, focuses on how to use GitHub Actions to automate some manual tasks, such as deploying new builds to Google Play Store. It also covers how to run tests on CI/CD pipelines and push builds to Google Play Store using GitHub Actions.
Chapter 15, Improving Your App, covers the techniques of improving apps by adding analytics, Firebase Crashlytics, and using cloud messaging to increase user engagement in apps. It covers how to send notifications to apps from the Firebase console. Additionally, it covers tips and tricks for securing apps to ensure that a user’s data is not compromised.