How to build android apps with Kotlin a hands-on guide to developing, testing, and publishing your first apps with android
This book will equip you to create high-quality, visually appealing Android 11 apps from scratch with Kotlin. You'll discover a wide range of real-world development challenges faced by developers and explore various techniques to overcome them.
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham ; Mumbai :
Packt Publishing
2021.
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631717406719 |
Tabla de Contenidos:
- Cover
- FM
- Copyright
- Table of Contents
- Preface
- Chapter 1: Creating Your First App
- Introduction
- 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
- Project-Level build.gradle file
- App-Level build.gradle
- 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
- Introduction
- 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
- Introduction
- 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
- Introduction
- 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
- Chapter 5: Essential Libraries: Retrofit, Moshi, and Glide
- Introduction
- 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: RecyclerView
- Introduction
- Adding RecyclerView to Our Layout
- Exercise 6.01: Adding an Empty RecyclerView to Your Main Activity
- Populating the 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
- Introduction
- Requesting Permissions 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
- Introduction
- 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: Unit Tests and Integration Tests with JUnit, Mockito, and Espresso
- Introduction
- JUnit
- Android Studio Testing Tips
- Mockito
- mockito-kotlin
- Exercise 9.01: Testing the Sum of Numbers
- Integration Tests
- Robolectric
- Espresso
- Exercise 9.02: Double Integration
- UI Tests
- Exercise 9.03: Random Waiting Times
- Test-Driven Development
- Exercise 9.04: Using TDD to Calculate the Sum of Numbers
- Activity 9.01: Developing with TDD
- Summary
- Chapter 10: Android Architecture Components
- Introduction
- ViewModel and LiveData
- ViewModel
- LiveData
- Exercise 10.01: Creating a Layout with Configuration Changes
- Exercise 10.02: Adding a ViewModel
- Exercise 10.03: Sharing our ViewModel between the Fragments
- Exercise 10.04: Adding LiveData
- Room
- Entities
- DAO
- Setting Up the Database
- Third-Party Frameworks
- Exercise 10.05: Making a Little Room
- Customizing Life Cycles
- Exercise 10.06: Reinventing the Wheel
- Activity 10.01: Shopping Notes App
- Summary
- Chapter 11: Persisting Data
- Introduction
- Repository
- Exercise 11.01: Creating a Repository
- Exercise 11.02: Adding Error Handling
- Preferences
- SharedPreferences.
- Exercise 11.03: Wrapping SharedPreferences
- PreferenceFragment
- Exercise 11.04: Customized Settings
- Files
- Internal Storage
- External Storage
- FileProvider
- Storage Access Framework (SAF)
- Asset Files
- Exercise 11.05: Copying Files
- Scoped Storage
- Camera and Media Storage
- Exercise 11.06: Taking Photos
- Activity 11.01: Dog Downloader
- Summary
- Chapter 12: Dependency Injection with Dagger and Koin
- Introduction
- Manual DI
- Exercise 12.01: Manual Injection
- Dagger
- Consumers
- Providers
- Connectors
- Qualifiers
- Scopes
- Subcomponents
- Exercise 12.02: Dagger Injection
- Dagger Android
- Exercise 12.03: Changing Injectors
- Koin
- Exercise 12.04: Koin Injection
- Activity 12.01: Injected Repositories
- Activity 12.02: Koin-Injected Repositories
- Summary
- Chapter 13: RxJava and Coroutines
- Introduction
- RxJava
- Observables, Observers, and Operators
- Schedulers
- Adding RxJava to Your Project
- Using RxJava in an Android Project
- Exercise 13.01: Using RxJava in an Android Project
- Modifying Data with RxJava Operators
- Exercise 13.02: Using RxJava Operators
- Coroutines
- Creating Coroutines
- Adding Coroutines to Your Project
- Exercise 13.03: Using Coroutines in an Android App
- Transforming LiveData
- Exercise 13.04: LiveData Transformations
- Coroutines Channels and Flows
- RxJava versus Coroutines
- Activity 13.01: Creating a TV Guide App
- Summary
- Chapter 14: Architecture Patterns
- Introduction
- MVVM
- Data Binding
- Exercise 14.01: Using Data Binding in an Android Project
- Retrofit and Moshi
- The Repository Pattern
- Exercise 14.02: Using Repository with Room in an Android Project
- WorkManager
- Exercise 14.03: Adding WorkManager to an Android Project
- Activity 14.01: Revisiting the TV Guide App
- Summary.
- Chapter 15: Animations and Transitions with CoordinatorLayout and MotionLayout
- Introduction
- Activity Transitions
- Adding Activity Transitions through XML
- Adding Activity Transitions through Code
- Starting an Activity with an Activity Transition
- Exercise 15.01: Creating Activity Transitions in an App
- Adding a Shared Element Transition
- Starting an Activity with the Shared Element Transition
- Exercise 15.02: Creating the Shared Element Transition
- Animations with CoordinatorLayout
- Animations with MotionLayout
- Adding MotionLayout
- Creating Animations with MotionLayout
- Exercise 15.03: Adding Animations with MotionLayout
- The Motion Editor
- Debugging MotionLayout
- Modifying the MotionLayout Path
- Exercise 15.04: Modifying the Animation Path with Keyframes
- Activity 15.01: Password Generator
- Summary
- Chapter 16: Launching Your App on Google Play
- Introduction
- Preparing Your Apps for Release
- Versioning Apps
- Creating a Keystore
- Exercise 16.01: Creating a Keystore in Android Studio
- Storing the Keystore and Passwords
- Signing Your Apps for Release
- Exercise 16.02: Creating a Signed APK
- Android App Bundle
- Exercise 16.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
- App Details
- Graphic Assets
- Preparing the Release
- APK/App Bundle
- Rolling Out a Release
- Managing App Releases
- Release Tracks
- Feedback Channel and Opt-in Link
- Internal Testing
- Closed Testing
- Open Testing
- Staged Rollouts
- Managed Publishing
- Activity 16.01: Publishing an App
- Summary
- Index.