Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Mastering Kotlin for Android 14
  • Table Of Contents Toc
  • Feedback & Rating feedback
Mastering Kotlin for Android 14

Mastering Kotlin for Android 14

By : Wangereka
5 (9)
close
close
Mastering Kotlin for Android 14

Mastering Kotlin for Android 14

5 (9)
By: Wangereka

Overview of this book

Written with the best practices, this book will help you master Kotlin and use its powerful language features, libraries, tools, and APIs to elevate your Android apps. As you progress, you'll use Jetpack Compose and Material Design 3 to build UIs for your app, explore how to architect and improve your app architecture, and use Jetpack Libraries like Room and DataStore to persist your data locally. Using a step-by-step approach, this book will teach you how to debug issues in your app, detect leaks, inspect network calls fired by your app, and inspect your Room database. You'll also add tests to your apps to detect and address code smells. Toward the end, you’ll learn how to publish apps to the Google Play Store and see how to automate the process of deploying consecutive releases using GitHub actions, as well as learn how to distribute test builds to Firebase App Distribution. Additionally, the book covers tips on how to increase user engagement. By the end of this Kotlin book, you’ll be able to develop market-ready apps, add tests to their codebase, address issues, and get them in front of the right audience.
Table of Contents (22 chapters)
close
close
1
Part 1: Building Your App
6
Part 2: Using Advanced Features
12
Part 3: Code Analysis and Tests
16
Part 4: Publishing Your App

Using Kotlin coroutines for network calls

In this section, we will refactor our repository to use coroutines. We will use StateFlow to emit data from ViewModel to the view layer. We will also use the Dispatchers.IO dispatcher to perform our network requests on a background thread.

Let us start by creating a NetworkResult sealed class, which will represent the different states of our network request:

sealed class NetworkResult<out T> {
    data class Success<out T>(val data: T) : NetworkResult<T>()
    data class Error(val error: String) : NetworkResult<Nothing>()
}

The NetworkResult class is a sealed class that has two subclasses. We have the Success data class that will be used to represent a successful network request. It has a data property that will be used to hold the data returned from the network request. We also have the Error class, which will be used to represent a failed network request. It has an error...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech

Create a Note

Modal Close icon
You need to login to use this feature.
notes
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Delete Note

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Edit Note

Modal Close icon
Write a note (max 255 characters)
Cancel
Update Note

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY