Kotlin and Android Development featuring Jetpack (Pragmatic Bookshelf)

PragmaticBookshelf
Start building native Android apps the modern way in Kotlin with Jetpack's expansive set of tools, libraries, and best practices. Learn how to create efficient, resilient views with Fragments and share data between the views with ViewModels. Use Room to persist valuable data quickly, and avoid NullPointerExceptions and Java's verbose expressions with Kotlin. You can even handle asynchronous web service calls elegantly with Kotlin coroutines. Achieve all of this and much more while building two full-featured apps, following detailed, step-by-step instructions.

Michael Fazio @mfazio23

edited by Michael Swaine @michaelswaine

With Kotlin and Jetpack, Android development is now smoother and more enjoyable than ever before. Dive right in by developing two complete Android apps.

With the first app, Penny Drop, you create a full game complete with random die rolls, customizable rules, and AI opponents. Build lightweight Fragment views with data binding, quickly and safely update data with ViewModel classes, and handle all app navigation in a single location. Use Kotlin with Android-specific Kotlin extensions to efficiently write null-safe code without all the normal boilerplate required for pre-Jetpack + Kotlin apps. Persist and retrieve data as full objects with the Room library, then display that data with ViewModels and list records in a RecyclerView.

Next, you create the official app for the Android Baseball League. It’s a fake league but a real app, where you use what you learn in with Penny Drop and build up from there. Navigate all over the app via a Navigation Drawer, including specific locations via Android App Links. Handle asynchronous and web service calls with Kotlin Coroutines, display that data smoothly with the Paging library, and send notifications to a user’s phone from your app.

Come build Android apps the modern way with Kotlin and Jetpack!


Michael Fazio is a software developer and tech speaker who fell in love with Android starting with the original Galaxy S phone. He’s been the Android lead for multiple billion-dollar companies and has seen the Android development process evolve from far too many Activities and a nigh unusable emulator to the actually enjoyable dev experience of Kotlin + Jetpack.


Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

Latest Threads About This Book Top

dachristenson
@mfazio23 My version of the app was building (version as of p. 284), but as of the end of p. 294, it fails to build with this error: e:...
New
dachristenson
I’ve got to the end of Ch. 11, and the app runs, with all tabs displaying what they should – at first. After switching around between St...
New
dachristenson
@mfazio23 I had the project running as of p. 249, but by the end of Ch. 10 (p. 258), something new has made the program crash when it tr...
New
dachristenson
@mfazio23 I have copied / typed in all the code to the end of Ch. 9, but I cannot get the project to build. It keeps failing with the e...
New
dachristenson
Hi @mfazio23 I’ve reached the top of p. 177, and I can run Penny Drop both on my real Samsung tablet and on the in-IDE emulator, but I c...
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New
dachristenson
I just bought this book to learn about Android development, and I’m already running into a major issue in Ch. 1, p. 20: “Update activity...
New
mcpierce
@mfazio23 I’ve applied the changes from Chapter 5 of the book and everything builds correctly and runs. But, when I try to start a game,...
New
mcpierce
On page 38, it calls for ediging the PickPlayersFragement class and add the following to the onCreateView() method: val binding = Fragme...
New
mcpierce
I’ve downloaded the sources for the book (dated 2021) after having bought it on Amazon. However, the downloaded sources don’t run in Andr...
New

Most Active This Week Top

Most Active This Month Top

Most Active This Year Top

Most Active Last Three Years Top

nicoatridge
Hi, I have just acquired Michael Fazio’s “Kotlin and Android Development” to learn about game programming for Android. I have a game in p...
New
jskubick
I found an issue in Chapter 7 regarding android:backgroundTint vs app:backgroundTint. How to replicate: load chapter-7 from zipfile i...
New
a.zampa
@mfazio23 I’m following the indications of the book and arriver ad chapter 10, but the app cannot be compiled due to an error in the Bas...
New
jskubick
I think I might have found a problem involving SwitchCompat, thumbTint, and trackTint. As entered, the SwitchCompat changes color to hol...
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New
dachristenson
I just bought this book to learn about Android development, and I’m already running into a major issue in Ch. 1, p. 20: “Update activity...
New
New
dachristenson
I’ve got to the end of Ch. 11, and the app runs, with all tabs displaying what they should – at first. After switching around between St...
New
dachristenson
@mfazio23 I had the project running as of p. 249, but by the end of Ch. 10 (p. 258), something new has made the program crash when it tr...
New
NaplesDave
@mfazio23 I am following along and I have gotten up to adding the data binding items. The project has built alright until I added the da...
New
mcpierce
@mfazio23 I’ve applied the changes from Chapter 5 of the book and everything builds correctly and runs. But, when I try to start a game,...
New
dachristenson
Hi @mfazio23 I’ve reached the top of p. 177, and I can run Penny Drop both on my real Samsung tablet and on the in-IDE emulator, but I c...
New
dachristenson
@mfazio23 My version of the app was building (version as of p. 284), but as of the end of p. 294, it fails to build with this error: e:...
New
mcpierce
I’ve downloaded the sources for the book (dated 2021) after having bought it on Amazon. However, the downloaded sources don’t run in Andr...
New
NaplesDave
@mfazio23 Question; On page 36 you introduce us to the idea of Data Binding. And later on you mention to us that it allows us to stop us...
New

Most Active Over Three Years Top

New
New
jonmac
The allprojects block listed on page 245 produces the following error when syncing gradle: “org.gradle.api.GradleScriptException: A prob...
New
jskubick
I’m running Android Studio “Arctic Fox” 2020.3.1 Patch 2, and I’m embarrassed to admit that I only made it to page 8 before running into ...
New
jskubick
I’m under the impression that when the reader gets to page 136 (“View Data with the Database Inspector”), the code SHOULD be able to buil...
New
jskubick
This isn’t errata per se, but I discovered something unexpected while working through Chapter 5. I’m not sure whether I just misunderstoo...
New
keno.basedow
Hello Michael, i have problems with this line on page 78 in version B4.0: android:entries=“@{AI.basicAI}” it shows the error message: ...
New
keno.basedow
Hi Michael, line android:text=’@{vm.currentPlayer.playerName ?? @string/na}’ produces error …\PennyDrop\app\build\generated\source\ka...
New
keno.basedow
Hello Michael, i think in version B4.0 on page 89 this line is not correct: this.players.value = playersForNewGame GameViewModel.playe...
New
Kent
JCenter is depreciated, using this repository is incompatible with Gradle 8.0. Could you please update and add the ‘abl-api-client’ depe...
New
keno.basedow
Hello Michael, after finishing the Converter function i cannot start the App because function NewPlayer.toPlayer is missing the new attr...
New
vickyvalverdeg
There is an error when following steps to use the nav_version variable in project’s build.gradle of Penny_Drop. Following the official d...
New
sundraw
The book says: ‘Click the “Start a new Android Studio project” link’. But there is now such a link. There is a ‘Create New Project’ one.
New
New
jskubick
Google strikes again… In ArcticFox 2020.3.1 patch 2 (Gradle 8.0), it looks like they changed Gradle’s syntax yet again in a way guarantee...
New

Book Info

Publisher: Pragmatic Bookshelf

Are you this book's author? To be notified of all posts made about it, sign up an account then click here, then select 'watching' from the bell icon in the top right corner.

Get money off!

The Pragmatic Bookshelf

35% off any eBook

Simply use coupon code "devtalk.com" at checkout. See full details here.