CommonsWare’s Books

From 2008 through 2021, CommonsWare published a series of books on Android application development. All are available now under the Creative Commons BY-SA 4.0 License. All are available for download as PDF, EPUB, or MOBI/Kindle editions, and some are available to read right from your Web browser. Combined, they total over 7,500 pages of material on a wide range of subjects.

Newcomers to Android should start with either:

New to Kotlin? Consider reading Elements of Kotlin to learn the basics of Android’s primary programming language.

Second Generation

These books are for second-generation Android app development techniques, focusing on Kotlin and the Android Jetpack:

Elements of Android Jetpack
Elements of Android Jetpack

If you are new to Android app development — or are new to some newer techniques — this book will walk you through the core steps for building an app!

FINAL Version (928 pages)

Learn More
Exploring Android
Exploring Android

If you "learn by doing", this book contains step-by-step instructions for building an Android app, including using the Jetpack components!

FINAL Version (614 pages)

Learn More
Elements of Android Room
Elements of Android Room

Room is Google's object wrapper around SQLite databases, for a better API with reactive options. As part of the Jetpack, Room is part of Google's recommended stack for Android app development. This book will show you how to use Room, from basics to advanced techniques.

FINAL Version (264 pages)

Learn More
Elements of Kotlin
Elements of Kotlin

Kotlin is the programming language of choice for modern Android app development — this book will help you get up to speed!

FINAL Version (412 pages)

Learn More
Elements of Kotlin Coroutines
Elements of Kotlin Coroutines

Coroutines is an important part of the Kotlin ecosystem, offering a native form of reactive programming. In this book, we explore coroutines, from simple suspending functions through flows and channels, to see how you can apply them in your app development.

Version 0.3 (244 pages)

Learn More
Elements of Android R
Elements of Android R

2020 debuts Android 11 (a.k.a., Android R)! This book explores what is changing in Android 11 that affects developers and their apps, such as the changes in storage, new permission restrictions, data access auditing, and more!

FINAL Version (140 pages)

Learn More
Elements of Android Q
Elements of Android Q

2019 has given us a new Android version, Android 10 (code-named "Q")! This book explores what is changing in Android Q that affects developers and their apps, such as the lockdown of external storage.

FINAL Version (96 pages)

Learn More


First Generation

These books profiled the first-generation Android app development techniques, using Java and the Android Support Library. They are here for background material on specialized topics, but newcomers to Android should focus on the second-generation books listed earlier on this page.

The Busy Coder's Guide to Android Development
The Busy Coder's Guide to Android Development

The first and most comprehensive book on first-generation Android app development, covering both the basics and a wide range of advanced topics!

FINAL Version (4298 pages)

Learn More
Android's Architecture Components
Android's Architecture Components

This book covers Google's Architecture Components family of libraries, from Room and ViewModel to LiveData and how they integrate with classic Android app development!

FINAL Version (412 pages)

Learn More
Android and GraphQL
Android and GraphQL

GraphQL is an alternative to REST for Web services — learn how to integrate your Android app with a GraphQL endpoint!

FINAL Version (262 pages)

Learn More