About This Title

Pages: 444
Published: June 2021
ISBN: 9781680508154
In Print

Skill Level Meter

Kotlin and Android Development featuring Jetpack

Build Better, Safer Android Apps

by Michael Fazio

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.

eBook Formats:

  • PDF for desktop/tablets

  • epub for Apple Books, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $29.95 (USD)

Add to Cart we accept visa, mastercard, amex, discover, paypal


Paperback Formats:

Please support indie bookstores!
Find indie bookstores in the U.S. Find indie bookstores around the world.


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 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!

What You Need

You’ll need the Android SDK, a text editor, and either a real Android device or emulator for testing. While not strictly required, it’s assumed you’re using Android Studio, which comes with the Android SDK and simplifies creating an emulator. Also, a few examples require JDK 1.8 or later, though all of these pieces can be completed in other ways when using JDK 1.6.

Resources

Releases:

  • P1.0 2021/06/13
  • B7.0 2021/05/25
  • B6.0 2021/03/21
  • B5.0 2021/03/01

Contents & Extracts

Preface

  • Penny Drop
    • Initialize the Penny Drop App
      • How to Play Penny Drop
      • Create the App
      • What Else Do We Need?
      • Summary and Next Steps
    • Build Views with Fragments
      • Build a Fragment (Pick Players)
      • Add Data Binding to the App
      • Build Another Fragment (Game)
      • Summary and Next Steps
    • Bind Data with ViewModels
      • Create a ViewModel (Pick Players)
      • Bind ViewModel to a Fragment (Pick Players)
      • Add AI Spinner to Player List Items
      • Customize the Player List Items
      • Create Another ViewModel (Game)
      • Bind ViewModel to a Fragment (Game)
      • Summary and Next Steps
    • Update LiveData with Conditional Game Logic
      • Create GameHandler
      • Start a Game
      • More GameViewModel Functions: roll() and pass()
      • Update the UI
      • Create Turn Summary Text
      • Handle AI Turns with Coroutines and First-Class Functions
      • Summary and Next Steps
    • Persist Game Data with Room
      • Add Room to the App
      • Add a RoomDatabase Class
      • Create a DAO Class
      • Add Entity Classes
      • Add Data During Database Creation
      • Add Converters to the Database
      • Create a Repository Class excerpt
      • Access the Database from a ViewModel
      • Update the UI Data Binding
      • Summary and Next Steps
    • Build a List with RecyclerView
      • Add the RecyclerView
      • Build the List Item Layout
      • Create a Custom ListAdapter excerpt
      • Connect Adapter to RecyclerView
      • Load Data into RecyclerView from Database
      • Summary and Next Steps
    • Customize an App with Settings and Themes
      • Add a New SettingsFragment
      • Use Saved Preferences
      • Add Themes
      • Change Themes
      • Add Night Mode Support
      • Add an About the App Section
      • Summary and Next Steps
  • Android Baseball League
    • Initialize the Android Baseball League App
      • Welcome to the Official ABL App
      • Create the App
      • Configure the Activity
      • Add the First Fragment
      • Summary and Next Steps
    • Navigate via Navigation Drawer
      • Add the Navigation Drawer
      • Add Fragments (Standings and Single Team)
      • Pass Data with Safe Args
      • Navigate Directly via a Deep Link
      • Summary and Next Steps
    • Load and Save Data with Coroutines and Room
      • Create a Database
      • Work with Retrofit
      • Load Data from External APIs
      • Add a New Fragment (Scoreboard)
      • Summary and Next Steps
    • Display Data with Paging
      • Add Two New Fragments (Leaders and Single Player)
      • Add a New Fragment (Players)
      • Handle Paging Data in the App
      • Display Paging Data in a RecyclerView List
      • Summary and Next Steps
    • Personalize the Android Baseball League App
      • Build a Settings Screen via Code
      • Extract Colors with Palette
      • Add and Group Additional Preferences
      • Reliably Complete Background Work with WorkManager
      • Summary and Next Steps
    • Send Info to and from the Android Baseball League App
      • Alert Users with Notifications
      • Send Cloud-Based Alerts with Push Notifications
      • Share Links with Android Sharesheet
      • Summary and Next Steps
  • Test Your App
    • Unit Test Your App with JUnit
      • Add Unit Tests
      • Test a ViewModel Class
      • Test a Data Access Object (DAO)
      • Summary and Next Steps
    • Test Your App’s UI with Espresso
      • Add UI Tests
      • Add More UI Tests
      • Summary and Next Steps
  • Appendixes
    • Install Android Studio
      • Download Android Studio
      • Install Android Studio
      • Set Up an Android Virtual Device (AVD)
    • Troubleshooting Your App
      • Debug Your App
      • Display Messages with the Toast Class
      • Log Messages to Logcat
      • Wrapping Up
    • Gradle Dependencies
      • Classpath Dependencies
      • Implementation Dependencies
      • KAPT Dependencies
      • Test Dependencies

Author

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.

eBook Formats:

  • PDF for desktop/tablets

  • epub for Apple Books, e-readers

  • mobi for Kindle readers

Get all eBook formats here for $29.95 (USD)

Add to Cart we accept visa, mastercard, amex, discover, paypal


Paperback Formats:

Please support indie bookstores!
Find indie bookstores in the U.S. Find indie bookstores around the world.

Related Titles:

Skill Level Meter

About This Title

Pages: 444
Published: June 2021
ISBN: 9781680508154
Edition: 1
In Print