Course Overview
Take your Android development skills to the next level and become an expert in app architecture. Whether building small apps or large, multimodule projects, mastering Android app architecture is key to creating scalable, maintainable, high-performing applications.
Being an expert in app architecture will also prepare you for a Mobile Tech Lead role, as you will be able to make key architectural decisions, and guide projects toward success. You will also learn crucial system design principles and patterns that will help you excel in mobile system design interviews.
Stefan started developing Android apps - almost from Android's birth - in 2011, and since then had to architect, design, and develop many challenging Android, iOS, and Multiplatform apps. In this course, he wants to share his comprehensive experience with you.
Apps are unique - different apps have different requirements and may require different architectural decisions. This course is designed to provide a solid foundation of architectural principles, explain and compare popular app architectures, and guide in selecting the right architecture based on the given requirements. Despite the course being especially targeted at Android, most concepts also apply to iOS.
About 8 hours of on-demand video content will cover what you need to know to master modern Android app architecture:
Writing Clean Code: Apply best practices and system design principles such as DRY and SOLID to create maintainable, scalable codebases.
Choosing the Right Pattern (MVC, MVP, MVVM): Learn the key differences between Model-View-Controller (MVC), Model-View-Presenter (MVP), and Model-View-ViewModel (MVVM) and choose the right pattern based on app size, complexity, and team needs
Implementing Clean Architecture: Minimize app lifetime maintenance costs and maximize developer productivity
Implementing Layered Architecture: Learn how to separate concerns into data, domain, and UI layers for better maintainability based on Google's recommended app architecture
Using Android Architecture Components: Build scalable apps using Jetpack libraries from the UI to the data layer such as the Lifecycle API, the ViewModel API, LiveData & Flow, Coroutines, SharedPreferences & DataStore, the Room database, the WorkManager API or the Paging library
Implementing Efficient Navigation: Seamlessly handle navigation in complex apps with Android’s navigation component
Applying Dependency Injection (DI): Use popular DI frameworks like Dagger and Hilt, or service locator frameworks such as Kodein and Koin to write cleaner, more testable code with better dependency management
Mastering Modularization: Organize your complex codebase into modules, whether they are based on layers, features, or both for better scalability, respecting the principles of component cohesion and component coupling
FAQ
FAQ area empty
Course curriculum
-
Clean Code
Xem trước -
Clean Code: Overview
Xem trước -
Clean Code: Goals
Xem trước -
KISS
Xem trước -
YAGNI
Xem trước -
DRY
Xem trước -
SOLID
Xem trước -
System Design Principles: Quiz
-
SOLID: Single Responsibility Principle
Xem trước -
SOLID: Open/Closed Principle
Xem trước -
SOLID: Liskov Substitution Principle
Xem trước -
SOLID: Interface Segregation Principle
Xem trước -
SOLID: Dependency Inversion Principle
Xem trước -
SOLID: Quiz
-
Clean Code: Demo Code
-
DRY: Demo
Xem trước -
Single Responsibility Principle: Demo
Xem trước -
Open/Closed Principle: Demo
Xem trước -
Liskov Substitution Principle: Demo
Xem trước -
Interface Segregation Principle: Demo
Xem trước -
Dependency Inversion Principle: Demo
Xem trước
-
Architectural Patterns
Xem trước -
Architectural Patterns: Overview
Xem trước -
MVC: Model-View-Controller
Xem trước -
MVC: Quiz
-
MVC: Demo Code
-
MVC: Demo
Xem trước -
MVP: Model-View-Presenter
Xem trước -
MVP: Quiz
-
MVP: Demo Code
-
MVP: Demo
Xem trước -
MVVM: Model-View-ViewModel
Xem trước -
MVVM: Quiz
-
MVVM: Demo Code
-
MVVM: Demo
Xem trước -
Comparison: MVC vs. MVP vs. MVVP
Xem trước -
Architectural Patterns: Quiz
-
Layered Architecture
Xem trước -
Layered Architecture: Overview
Xem trước -
Architectural Principles & Best Practices
Xem trước -
Architectural Principles: Quiz
-
Recommended App Architecture
Xem trước -
Recommended App Architecture: Quiz
-
Layered Architecture: UI Layer
Xem trước -
Unidirectional Data Flow
Xem trước -
UI State Production Pipeline
Xem trước -
Exposing UI State
Xem trước -
Consuming UI State
Xem trước -
UI Layer: Quiz
-
Layered Architecture: Data Layer
Xem trước -
Repositories: Advanced Topics
Xem trước -
Build Offline First
Xem trước -
Data Layer: Quiz
-
Layered Architecture: Domain Layer
Xem trước -
Domain Layer: Quiz
-
Layered Architecture vs. Clean Architecture
Xem trước -
Layered Architecture vs. Clean Architecture: Quiz
-
Layered Architecture: Demo Code
-
Demo: Intro
Xem trước -
Demo: Layered Architecture Outline
Xem trước -
Demo: Layered Architecture Structure
Xem trước -
Demo: UI & Domain Layer
Xem trước -
Demo: Data Layer
Xem trước -
Demo: Sum Up
Xem trước
-
Android Architecture Components
Xem trước -
Android Architecture Components: Overview
Xem trước -
View Binding
Xem trước -
Data Binding
Xem trước -
Data Binding: Advanced Topics
Xem trước -
Quiz: View Binding & Data Binding
-
Lifecycle-Aware Components: Lifecycle API
Xem trước -
Quiz: Lifecycle API
-
Lifecycle API: Demo Code
-
Demo: Lifecycle API
Xem trước -
UI Layer Libraries: ViewModel
Xem trước -
ViewModel: SavedStateHandle
Xem trước -
Saving UI State
Xem trước -
Quiz: Saving UI State
-
ViewModel: Best Practices
Xem trước -
Quiz: ViewModel
-
Demo: ViewModel
Xem trước -
UI Layer Libraries: LiveData
Xem trước -
LiveData vs. Kotlin Flows
Xem trước -
Quiz: LiveData
-
UI Layer Libraries: Coroutines
Xem trước -
Quiz: Coroutines
-
Demo: Coroutines
Xem trước -
Data Layer Libraries: SharedPreferences & Jetpack DataStore
Xem trước -
Data Layer Libraries: Room
Xem trước -
Quiz: Preferences & Room
-
Data Layer Libraries: WorkManager
Xem trước -
WorkManager: Advanced Topics
Xem trước -
Quiz: WorkManager
-
Demo: WorkManager
Xem trước -
Multi-Layer Libraries: Paging Library
Xem trước -
Quiz: Paging Library
-
Paging Library: Demo Code
-
Demo: Paging Library
Xem trước
-
App Navigation
Xem trước -
App Navigation: Overview
Xem trước -
Principles of Navigation
Xem trước -
Quiz: Principles of Navigation
-
Navigation Component
Xem trước -
Navigation Controller
Xem trước -
Quiz: Navigation Component & Navigation Controller
-
Destination Types
Xem trước -
Back Stack
Xem trước -
Quiz: Back Stack & Destination Types
-
Navigation Graph: Overview
Xem trước -
Navigation Graph: Nested Graphs
Xem trước -
Navigation Graph: Deep Links
Xem trước -
Update on Jetpack Compose typesafe navigation!
-
Navigation Graph: Type-Safe Navigation
Xem trước -
Quiz: Navigation Graph
-
Navigation Component: Integrations
Xem trước -
Quiz: Navigation Component Integrations
-
Navigation: Demo Code
-
Demo: Navigation Component
Xem trước
-
Dependency Injection
Xem trước -
Dependency Injection: Overview
Xem trước -
Dependency Injection: Intro
Xem trước -
Service Locator
Xem trước -
Quiz: Dependency Injection & Service Locator
-
Comparison of Frameworks
Xem trước -
Comparison of Frameworks: Dagger
Xem trước -
Comparison of Frameworks: Hilt
Xem trước -
Comparison of Frameworks: Koin
Xem trước -
Comparison of Frameworks: Kodein
Xem trước -
Comparison of Frameworks: Sum Up
Xem trước -
Quiz: Frameworks
-
Dependency Injection: Demo Code
-
Demo: Hilt & Kodein
Xem trước
-
Modularization
Xem trước -
Modularization: Overview
Xem trước -
Principles of Component Cohesion
Xem trước -
Principles of Component Coupling
Xem trước -
Quiz: Component Cohesion & Coupling
-
Multimodule Projects
Xem trước -
Types of Modules
Xem trước -
Quiz: Multimodule Projects
-
Modularization Strategies
Xem trước -
Quiz: Modularization Strategies
-
Architecture by Layer: Demo Code
-
Modularization Demo: App Module
Xem trước -
Modularization Demo: Architecture by Layer
Xem trước -
Architecture by Feature: Demo Code
-
Modularization Demo: Architecture by Feature
Xem trước
Requirment
-
Some prior experience in mobile app development (preferably Android) is expected.
Outcomes
-
Becoming a Mobile Tech Lead: Master architectural skills
-
Know how to architect apps of any size
-
Writing clean code: Best practices and system design principles
-
Comparing and choosing between MVC, MVP, and MVVM
-
Implementing Clean Architecture & Layered Architecture in Android apps
-
Building scalable apps with Android Architecture Components, Navigation & Dependency Injection
-
Mastering modularization in multimodule Android projects
Instructor
Nguyễn Đình Cường
1.2
-
1 Student
-
330 Courses
-
1253 reviews
Xin chào các bạn, tôi là Nguyễn Đình Cường, một lập trình viên và giảng viên đam mê công nghệ với hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Tôi tốt nghiệp từ Bưu Chính Viễn Thông và đã từng làm việc cho một số công ty công nghệ hàng đầu như FPT Software và VinGroup. Với chuyên môn chính là phát triển ứng dụng web, tôi đã làm việc với nhiều công nghệ như HTML, CSS, JavaScript, React cho front-end và Node.js, Express, MongoDB cho back-end. Không chỉ dừng lại ở việc viết mã, tôi còn yêu thích tìm hiểu sâu về thiết kế hệ thống và kiến trúc phần mềm. Tôi tin rằng quá trình học lập trình không chỉ đơn thuần là lý thuyết, mà còn là sự trải nghiệm thực tế và giải quyết vấn đề. Trong các khóa học của mình, tôi cố gắng cung cấp cho học viên những bài giảng thú vị và dễ hiểu, cùng với các bài tập thực hành giúp củng cố kiến thức. Tôi hy vọng rằng qua các khóa học của mình, bạn sẽ không chỉ học được cách viết mã, mà còn phát triển tư duy lập trình và kỹ năng giải quyết vấn đề. Hãy cùng nhau khám phá thế giới lập trình và biến ý tưởng của bạn thành hiện thực! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại liên hệ với tôi. Tôi rất vui được hỗ trợ bạn trong hành trình học tập của mình!
View Details