Kotlin and Android Development featuring Jetpack
Build Better, Safer Android Apps
by: Michael Fazio
Published | 2021-06-15 |
---|---|
Internal code | mfjetpack |
Print status | In Print |
Pages | 444 |
User level | Intermediate |
Keywords | Google, android, mobile, mobile apps, Kotlin, Java |
Related titles | Programming Kotlin |
ISBN | 9781680508154 |
Other ISBN |
Channel epub: 9781680508680 Channel PDF: 9781680508697 Kindle: 9781680508666 Safari: 9781680508673 Kindle: 9781680508666 |
BISACs | COM051460 COMPUTERS / Programming / Mobile DevicesCOM051280 COMPUTERS / Programming Languages / JavaCOM051280 COMPUTERS / Programming Languages / Java |
Highlight
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.
Description
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!
Contents and Extracts
- 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
- Initialize the Penny Drop App
- 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
- Initialize the Android Baseball League App
- 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
- Unit Test Your App with JUnit
- 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
- Install Android Studio