Book Image

Kickstart Modern Android Development with Jetpack and Kotlin

By : Catalin Ghita
5 (1)
Book Image

Kickstart Modern Android Development with Jetpack and Kotlin

5 (1)
By: Catalin Ghita

Overview of this book

With Jetpack libraries, you can build and design high-quality, robust Android apps that have an improved architecture and work consistently across different versions and devices. This book will help you understand how Jetpack allows developers to follow best practices and architectural patterns when building Android apps while also eliminating boilerplate code. Developers working with Android and Kotlin will be able to put their knowledge to work with this condensed practical guide to building apps with the most popular Jetpack libraries, including Jetpack Compose, ViewModel, Hilt, Room, Paging, Lifecycle, and Navigation. You'll get to grips with relevant libraries and architectural patterns, including popular libraries in the Android ecosystem such as Retrofit, Coroutines, and Flow while building modern applications with real-world data. By the end of this Android app development book, you'll have learned how to leverage Jetpack libraries and your knowledge of architectural concepts for building, designing, and testing robust Android applications for various use cases.
Table of Contents (17 chapters)
1
Part 1: Exploring the Core Jetpack Suite and Other Libraries
7
Part 2: A Guide to Clean Application Architecture with Jetpack Libraries
13
Part 3: Diving into Other Jetpack Libraries

Summary

In this chapter, we learned what a ViewModel class is, we explored the concepts that define it, and we learned how to instantiate one. We tackled why a ViewModel is useful as a single source of truth for the UI's state: to avoid illegal and undesired states.

For that to make sense, we explored how a UI is defined by its state and how to define such a state in Compose. We then understood what state hoisting is and how to separate widgets between stateless and stateful composables.

Finally, we put all these new concepts into practice by defining state in our Restaurants app, hoisting it, and then lifting it even higher into the newly created ViewModel.

Finally, we learned how system-initiated process death occurs and how to allow the app to recover by restoring the previous state with the help of SavedStateHandle.

In the next chapter, we will add real data to our Restaurants app by connecting it to our database using Retrofit.