How to Build Android Apps with Kotlin A Practical Guide to Developing, Testing, and Publishing Your First Android Apps
Looking to kick-start your app development journey with Android 13, but don't know where to start? How to Build Android Apps with Kotlin is a comprehensive guide that will help jump-start your Android development practice. This book starts with the fundamentals of app development, enabling you...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, England :
Packt Publishing Ltd
[2023]
|
Edición: | Second edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009742721306719 |
Tabla de Contenidos:
- Cover
- Title Page
- Copyright
- Dedication
- Contributors
- Table of Contents
- Preface
- Part 1: Android Foundation
- Chapter 1: Creating Your First App
- Technical requirements
- Creating an Android project with Android Studio
- Exercise 1.01 - creating an Android Studio project for your app
- Setting up a virtual device and running your app
- Exercise 1.02 - setting up a virtual device and running your app on it
- The Android manifest
- Exercise 1.03 - configuring the Android manifest internet permission
- Using Gradle to build, configure, and manage app dependencies
- The project-level build.gradle file
- The app-level build.gradle file
- Exercise 1.04 - exploring how Material Design is used to theme an app
- Android application structure
- Exercise 1.05 - adding interactive UI elements to display a bespoke greeting to the user
- Accessing Views in layout files
- Further input validation
- Activity 1.01 - producing an app to create RGB colors
- Summary
- Chapter 2: Building User Screen Flows
- Technical requirements
- The Activity lifecycle
- Exercise 2.01 - logging the Activity Callbacks
- Saving and restoring the Activity state
- Exercise 2.02 - saving and restoring the state in layouts
- Exercise 2.03 - saving and restoring the state with Callbacks
- Activity interaction with Intents
- Exercise 2.04 - an introduction to Intents
- Exercise 2.05 - retrieving a result from an Activity
- Intents, Tasks, and Launch Modes
- Exercise 2.06 - setting the Launch Mode of an Activity
- Activity 2.01 - creating a login form
- Summary
- Chapter 3: Developing the UI with Fragments
- Technical requirements
- The fragment lifecycle
- onAttach
- onCreate
- onCreateView
- onViewCreated
- onActivityCreated
- onStart
- onResume
- onPause
- onStop
- onDestroyView
- onDestroy
- onDetach.
- Exercise 3.01 - adding a basic fragment and the fragment lifecycle
- Exercise 3.02 - adding fragments statically to an activity
- Static fragments and dual-pane layouts
- Exercise 3.03 - dual-pane layouts with static fragments
- Dynamic fragments
- Exercise 3.04 - adding fragments dynamically to an activity
- Jetpack Navigation
- Exercise 3.05 - adding a Jetpack navigation graph
- Activity 3.01 - creating a quiz on the planets
- Summary
- Chapter 4: Building App Navigation
- Technical requirements
- Navigation overview
- Navigation drawer
- Exercise 4.01 - creating an App with a navigation drawer
- Bottom navigation
- Exercise 4.02 - adding bottom navigation to your app
- Tabbed navigation
- Exercise 4.03 - using tabs for app navigation
- Activity 4.01 - building primary and secondary app navigation
- Summary
- Part 2: Displaying Network Calls
- Chapter 5: Essential Libraries: Retrofit, Moshi, and Glide
- Technical requirements
- Introducing REST, API, JSON, and XML
- Fetching data from a network endpoint
- Exercise 5.01 - reading data from an API
- Parsing a JSON response
- Exercise 5.02 - extracting the image URL from the API response
- Loading images from a remote URL
- Exercise 5.03 - loading the image from the obtained URL
- Activity 5.01 - displaying the current weather
- Summary
- Chapter 6: Adding and Interacting with RecyclerView
- Technical requirements
- Adding RecyclerView to our layout
- Exercise 6.01 - adding an empty RecyclerView to your main activity
- Populating RecyclerView
- Exercise 6.02 - populating your RecyclerView
- Responding to clicks in RecyclerView
- Exercise 6.03 - responding to clicks
- Supporting different Item types
- Exercise 6.04 - adding titles to RecyclerView
- Swiping to remove Items
- Exercise 6.05 - adding swipe to delete functionality
- Adding items interactively.
- Exercise 6.06 - implementing an Add A Cat button
- Activity 6.01 - managing a list of Items
- Summary
- Chapter 7: Android Permissions and Google Maps
- Technical requirements
- Requesting permission from the user
- Exercise 7.01 - requesting the location permission
- Showing a map of the user's location
- Exercise 7.02 - obtaining the user's current location
- Map clicks and custom markers
- Exercise 7.03 - adding a custom marker where the map was clicked
- Activity 7.01 - creating an app to find the location of a parked car
- Summary
- Chapter 8: Services, WorkManager, and Notifications
- Technical requirements
- Starting a background task using WorkManager
- Exercise 8.01 - executing background work with the WorkManager class
- Background operations noticeable to the user - using a Foreground Service
- Exercise 8.02 - tracking your SCA's work with a Foreground Service
- Activity 8.01 - reminder to drink water
- Summary
- Chapter 9: Building User Interfaces Using Jetpack Compose
- Technical requirements
- What is Jetpack Compose?
- Exercise 9.01 - first Compose screen
- Handling user actions
- Exercise 9.02 - handling user inputs
- Theming in Compose
- Exercise 9.03 - applying themes
- Adding Compose to existing projects
- Activity 9.01 - first Compose app
- Summary
- Part 3: Testing and Code Structure
- Chapter 10: Unit Tests and Integration Tests with JUnit, Mockito, and Espresso
- Technical requirements
- Types of testing
- JUnit
- Android Studio testing tips
- Mockito
- Exercise 10.01 - testing the sum of numbers
- Integration tests
- Robolectric
- Espresso
- Exercise 10.02 - double integration
- UI tests
- Testing in Jetpack Compose
- Exercise 10.03 - random waiting times
- TDD
- Exercise 10.04 - using TDD to calculate the sum of numbers
- Activity 10.01 - developing with TDD
- Summary.
- Chapter 11: Android Architecture Components
- Technical requirements
- Android components background
- ViewModel
- Exercise 11.01 - shared ViewModel
- Data streams
- LiveData
- Additional data streams
- Room
- Entities
- DAO
- Setting up the database
- Third-party frameworks
- Exercise 11.03 - making a little room
- Activity 11.01 - a shopping notes app
- Summary
- Chapter 12: Persisting Data
- Technical requirements
- Preferences and DataStore
- SharedPreferences
- Exercise 12.01 - wrapping SharedPreferences
- DataStore
- Exercise 12.02 - Preference DataStore
- Files
- Internal storage
- External storage
- FileProvider
- The Storage Access Framework (SAF)
- Asset files
- Exercise 12.03 - copying files
- Scoped storage
- Camera and media storage
- Exercise 12.04 - taking photos
- Activity 12.01 - dog downloader
- Summary
- Chapter 13: Dependency Injection with Dagger, Hilt, and Koin
- Technical requirements
- The necessity of dependency injection
- Manual DI
- Exercise 13.01 - manual injection
- Dagger 2
- Consumers
- Providers
- Connectors
- Qualifiers
- Scopes
- Subcomponents
- Exercise 13.02 - Dagger injection
- Hilt
- Exercise 13.03 - Hilt injection
- Koin
- Exercise 13.04 - Koin injection
- Activity 13.01 - injected repositories
- Summary
- Part 4: Polishing and Publishing an App
- Chapter 14: Coroutines and Flow
- Technical requirements
- Using Coroutines on Android
- Creating coroutines
- Adding coroutines to your project
- Exercise 14.01 - using coroutines in an Android app
- Transforming LiveData
- Exercise 14.02 - LiveData transformations
- Using Flow on Android
- Collecting Flows on Android
- Creating Flows with Flow Builders
- Using operators with Flows
- Exercise 14.03 - using Flow in an Android application
- Activity 14.01 - creating a TV Guide app
- Summary.
- Chapter 15: Architecture Patterns
- Technical requirements
- Getting started with MVVM
- Binding data on Android with data binding
- Exercise 15.01- using data binding in an Android project
- Using Retrofit and Moshi
- Implementing the Repository pattern
- Exercise 15.02 - using Repository with Room in an Android project
- Using WorkManager
- Exercise 15.03 - adding WorkManager to an Android Project
- Activity 15.01 - revisiting the TV Guide app
- Summary
- Chapter 16: Animations and Transitions with CoordinatorLayout and MotionLayout
- Technical requirements
- Activity transitions
- Adding activity transitions through XML
- Adding activity transitions through code
- Starting an activity with an activity transition
- Exercise 16.01 - creating activity transitions in an app
- Adding a shared element transition
- Starting an activity with the shared element transition
- Exercise 16.02 - creating the shared element transition
- Animations with CoordinatorLayout
- Animations with MotionLayout
- Adding MotionLayout
- Creating animations with MotionLayout
- Exercise 16.03 - adding animations with MotionLayout
- The Motion Editor
- Debugging MotionLayout
- Modifying the MotionLayout path
- Exercise 16.04 - modifying the animation path with keyframes
- Activity 16.01 - Password Generator
- Summary
- Chapter 17: Launching Your App on Google Play
- Preparing your apps for release
- Versioning apps
- Creating a keystore
- Exercise 17.01 - creating a keystore in Android Studio
- Storing the keystore and passwords
- Signing your apps for release
- Exercise 17.02 - creating a signed APK
- Android app bundle
- Exercise 17.03 - creating a signed app bundle
- App signing by Google Play
- Creating a developer account
- Uploading an app to Google Play
- Creating a store listing
- Preparing the release.
- Rolling out a release.