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.

The book will be updated periodically, typically after Google ships a new production release of Android Studio.

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 on the Warescription site, complete with full-text searching.

Subscribe for $20 »

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
  • Setting Up the App Bar
  • Setting Up an Activity
  • Integrating Fragments
  • Defining a Model
  • Setting Up a Repository
  • Populating Our RecyclerView
  • Tracking the Completion Status
  • Preparing for Navigation
  • Displaying an Item
  • Editing an Item
  • Saving an Item
  • Adding and Deleting Items
  • Interlude: So, What’s Wrong?
  • Inverting Our Dependencies
  • Refactoring Our Code
  • Incorporating a ViewModel
  • Making Our Repository Live
  • Using a Unidirectional Data Flow
  • Extending the Architecture
  • Switching to Coroutines
  • Testing Our Repository
  • Testing a Motor
  • Testing a UI
  • Getting a Room
  • Integrating Room Into the Repository
  • Tracking Our Load Status
  • Filtering Our Items
  • Generating a Report
  • Sharing the Report
  • Collecting a Preference
  • Contacting a Web Service
profile for CommonsWare at Stack Overflow, Q&A for professional and enthusiast programmers

What's New

  • Updated for Android Studio 3.5.1
  • Switched to Flow for getting data from Room


Spread the Word!