Exploring Android

Many books — such as Elements of Android Jetpack, — present programming topics, showing you how to use different APIs, tools, and so on.

This book is different.

This book has you build an app from the beginning. Whereas traditional programming guides are focused on breadth and depth, this book is focused on “hands-on”, guiding you through the steps to build the app. It provides a bit of details on the underlying concepts, but it relies on other resources — such as Elements of Android Jetpack — for the full explanation of those details. Instead, this book provides step-by-step instructions for building the app.

If you are the sort of person who “learns by doing”, then this book is for you! The book’s tutorials show you how to develop an Android app using Kotlin and the Android Jetpack set of libraries and tools.

This book is published in PDF, EPUB, and MOBI/Kindle formats, for use in your favorite digital book reader. Or, read directly in your Web browser. Note that the HTML edition will be taken down at the end of 2025, as this book will be rather old at that point. However, the downloadable forms (PDF, etc.) will still be available.

Read Here Get at Barnes & Noble Get at Kobo


The Table of Contents

Each bullet shown below represents a chapter. Use the search field in the nav bar to search all of the CommonsWare books to see what they hold!

  • What We Are Building
  • Installing the Tools
  • Creating a Starter Project
  • Modifying the Manifest
  • Changing Our Icon
  • Adding a Library
  • Constructing a Layout
  • Integrating Fragments
  • Wiring In Navigation
  • Setting Up the App Bar
  • Setting Up an Activity
  • Defining a Model
  • Setting Up a Repository
  • Inverting Our Dependencies
  • Incorporating a ViewModel
  • Populating Our RecyclerView
  • Tracking the Completion Status
  • Displaying an Item
  • Editing an Item
  • Saving an Item
  • Adding and Deleting Items
  • Interlude: So, What’s Wrong?
  • Refactoring Our Code
  • Getting a Room (And Some Coroutines)
  • Completing the Reactive Architecture
  • Testing a Motor
  • Testing the Repository
  • Testing a UI
  • Tracking Our Load Status
  • Filtering Our Items
  • Generating a Report
  • Sharing the Report
  • Collecting a Preference
  • Contacting a Web Service
  • Showing a Dialog
  • Scheduling Work