What this book covers
Chapter 1, Creating a Modern UI with Jetpack Compose, covers the new declarative way of building a UI on Android with the Jetpack Compose toolkit, while also starting to build an application from scratch with this new framework.
Chapter 2, Handling UI State with Jetpack ViewModel, explores the concept and usage of the ViewModel architecture component, as well as the concept of UI state in Compose apps and how the ViewModel can handle and cache such state.
Chapter 3, Displaying Data from REST APIs with Retrofit, covers what Retrofit is and how it can be used as a networking client for Android inside the project developed throughout the book.
Chapter 4, Handling Async Operations with Coroutines, covers the core concepts behind Kotlin coroutines. The chapter explores what a coroutine is, what suspend functions are, and other important components of coroutines.
Chapter 5, Adding Navigation in Compose with Jetpack Navigation, covers the basics of navigation between Compose-based screens with the help of the Jetpack Navigation library, while also exploring how to support deep links to your Compose UI.
Chapter 6, Adding Offline Capabilities with Jetpack Room, introduces Room as a solution for storing structured data and explores data persistence on Android as an architectural decision in building robust apps.
Chapter 7, Introducing Presentation Patterns in Android, explores architectural presentation patterns and why they are needed while also analyzing MVC, MVP, and MVVM.
Chapter 8, Getting Started with Clean Architecture in Android, explores how clean architecture translates into Android and how you can separate business logic by implementing Use Cases in the project developed throughout the book.
Chapter 9, Implementing Dependency Injection with Jetpack Hilt, explores what dependency injection is, why it's needed, and the advantages that it brings. This chapter also explores the basics of Dagger and introduces Jetpack Hilt.
Chapter 10, Test Your App with UI and Unit Tests, explores why tests are important and splits them into two main categories: UI and unit tests. In this chapter, you will learn how to test the Compose UI and application logic by creating unit tests.
Chapter 11, Creating Infinite Lists with Jetpack Paging and Kotlin Flow, explores the concept of pagination and explains how to integrate pagination on Android with the help of Jetpack Paging, while also using Kotlin Flow.
Chapter 12, Exploring the Jetpack Lifecycle Components, explores the inner workings of components that are part of Jetpack Lifecycle such as ViewModel and LiveData. In this chapter, you will also learn how to create your own lifecycle-aware component.