This course provides a comprehensive exploration of modern Android architecture and effective data management strategies. You will learn about essential components like ViewModel and the Navigation component, along with state management techniques and saving UI states.
Overview
Syllabus
- Course Introduction
- Get started with advanced Android app architecture using MVVM, Room, Retrofit, and Compose. Build production-ready apps with real-world tools and best practices.
- Modern Android Architecture
- This lesson is all about data persistence, there are many ways to storing data permanently, but with Room things have become even easier than ever before!
- Introduction to ViewModel
- Learn how the Android ViewModel keeps app data safe during UI changes, manages background tasks, and prevents memory leaks for robust, crash-resistant mobile apps.
- Building with ViewModel
- Learn how to use ViewModel to separate UI and business logic, preserve app state across configuration changes, and build robust Android apps using MVVM architecture.
- Observables and UI States
- Learn how to use Observables like LiveData to manage app and UI state, ensuring automatic, seamless UI updates and robust state persistence in mobile development.
- Remote State vs Local State
- Learn to distinguish remote (server) state from local state in apps, understanding their characteristics, usage, and best practices for reliability and maintainability.
- State Management Strategies
- Learn to manage application and UI state by classifying data, matching it to survival tiers, and choosing the right tools like ViewModel, SavedStateHandle, or persistent storage.
- Saving And Restoring UI States
- Learn to preserve UI and application state in Android apps using ViewModel and SavedStateHandle, ensuring data survives rotations, process death, and system interruptions.
- Navigation Component Overview
- Explore Android's Navigation Component—a Jetpack framework for streamlined screen transitions, back stack management, type-safe data passing, and deep linking using navigation graphs.
- Building Navigation Graphs
- Learn to build navigation graphs to visually map app screens and type-safe routes in Android, manage back stack, and securely pass data using Jetpack Navigation Component and Safe Args.
- Advanced Navigation Patterns
- Master advanced mobile navigation: create independent tab back stacks, share data across screens, ensure type-safe routing, and build seamless, professional user experiences in Android apps.
- Understanding Authentication
- Understand authentication and authorization, common login flows, session and token management, token storage tradeoffs, expiration, renewal, and revocation for secure user access.
- Implementing Authentication
- Learn to build secure authentication: handle user registration, hash passwords, manage tokens, and protect app resources using robust state management and navigation best practices.
- Asynchronous Programming
- Learn to keep Android apps responsive by using Kotlin Coroutines for safe, efficient asynchronous tasks, lifecycle management, and avoiding classic threading pitfalls.
- Kotlin Coroutines
- Master Kotlin coroutines to efficiently handle background tasks, UI state, parallel execution, progress tracking, and cancellation in robust Android applications.
- RESTful APIs and Networking
- Learn how Android apps use RESTful APIs to communicate with servers, handle JSON data, enforce API contracts, and prevent common networking and data parsing errors.
- Setting Up Retrofit
- Learn to configure Retrofit in Android: set up base URL, OkHttpClient, Moshi converter, API interface, and integrate network calls with ViewModel using coroutines for safe data fetching.
- Parsing JSON Data
- Learn to safely parse JSON data into Kotlin objects using Moshi, handle nested structures, nullable fields, and custom adapters for real-world API integration.
- Repository Pattern
- Learn how the repository pattern separates UI and data logic, enabling maintainable, testable, and offline-capable applications through clean architecture and abstraction.
- Building a Repository
- Learn to build a repository using the Repository Pattern to separate data logic, enable caching, support offline access, and simplify testing in modern applications.
- Database Fundamentals
- Explore how relational databases and Android's Room ORM organize, store, and safely manage app data using tables, keys, transactions, and schema migrations.
- Room Database Setup
- Learn to set up Room database in Android: define entities, DAOs, singleton database, and configure schema for persistent, reliable, and structured local data storage.
- Room Queries and Operations
- Learn to perform Room database CRUD operations, build reactive data flows, and connect DAOs to repositories, ViewModels, and UI for secure and offline-first Android apps.
- RecyclerView Deep Dive
- Dive deep into RecyclerView: master efficient list updates with ListAdapter and DiffUtil, add gestures like swipe-to-delete, and boost UI performance with modern list best practices.
- Introduction to Compose Lists
- Discover Jetpack Compose Lists: use LazyColumn and LazyRow to build efficient, reactive lists with minimal code by adopting a declarative, state-driven UI approach in Android.
- Building Lists in Compose
- Learn to build efficient, scrollable lists in Jetpack Compose using LazyColumn, optimize performance with keys, and simplify list UI compared to RecyclerView.
- Form Validation Strategies
- Discover strategies for effective form validation, focusing on where, when, and how to validate data for a seamless, secure, and user-friendly experience.
- Implementing Form Validation
- Learn to implement real-time, accessible form validation in Android apps, ensuring smooth user feedback, data integrity, and an optimized user experience with best practices.
- Error Handling and Loading States
- Discover how to design resilient UIs by handling errors, managing loading states, providing recovery actions, clear messaging, and basic observability for a reliable user experience.
- Error Handling and Validation with Android Kotlin
- Learn robust error handling and validation in Android Kotlin apps using sealed classes for clear state modeling, user-friendly error messages, and safe async network operations.
- Testing the Data Layer
- Learn to test Android data layers using unit and instrumented tests, fakes, in-memory Room DBs, and proper separation for reliable, maintainable state and business logic.
- Course Conclusion
- [PLACEHOLDER: Brief summary congratulating learners and highlighting what they can now do with the skills gained in this course.]
- Project: Spire
- In this project, you will build a data-driven application with networking, local persistence, and modern architecture
Taught by
Jerry Okafor