Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Thriving in Android Development Using Kotlin

You're reading from   Thriving in Android Development Using Kotlin A project-based guide to using the latest Android features for developing production-grade apps

Arrow left icon
Product type Paperback
Published in Jul 2024
Publisher Packt
ISBN-13 9781837631292
Length 410 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Gema Socorro Rodríguez Gema Socorro Rodríguez
Author Profile Icon Gema Socorro Rodríguez
Gema Socorro Rodríguez
Arrow right icon
View More author details
Toc

Table of Contents (15) Chapters Close

Preface 1. Part 1:Creating WhatsPackt, a Messaging App
2. Chapter 1: Building the UI for Your Messaging App FREE CHAPTER 3. Chapter 2: Setting Up WhatsPackt’s Messaging Abilities 4. Chapter 3: Backing Up Your WhatsPackt Messages 5. Part 2:Creating Packtagram, a Photo Media App
6. Chapter 4: Building the Packtagram UI 7. Chapter 5: Creating a Photo Editor Using CameraX 8. Chapter 6: Adding Video and Editing Functionality to Packtagram 9. Part 3:Creating Packtflix, a Video Media App
10. Chapter 7: Starting a Video Streaming App and Adding Authentication 11. Chapter 8: Adding Media Playback to Packtflix with ExoPlayer 12. Chapter 9: Extending Video Playback in Your Packtflix App 13. Index 14. Other Books You May Enjoy

Building the login screen

To build the login screen, we will start creating a LoginScreen composable with Jetpack Compose. We will have to include the app’s logo, fields to introduce the email and password, and a Login button. We can also include a text to show whether there are any errors when the user tries to log in.

This login screen is going to have four states (Idle, Loading, Success, and Error), so let’s start modeling the overall ViewState:

sealed class LoginState {
    object Idle : LoginState()
    object Loading : LoginState()
    object Success : LoginState()
    data class Error(val message: String?) : LoginState()
}

Now, let’s create the LoginScreen composable:

@Composable
fun LoginScreen() {
    val loginViewModel: LoginViewModel = hiltViewModel()
    val loginState =
        loginViewModel...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image