Seiring meningkatnya kompleksitas aplikasi Android modern, pengembangan aplikasi tidak lagi cukup hanya berfokus pada implementasi fitur. Aplikasi berskala menengah hingga besar menuntut arsitektur yang terstruktur, scalable, mudah diuji, dan maintainable agar mampu berkembang secara berkelanjutan serta meminimalkan risiko teknis di masa depan. Pemahaman yang kuat terhadap struktur aplikasi, lifecycle komponen Android, serta pemisahan tanggung jawab antar layer menjadi fondasi penting dalam merancang aplikasi Android yang robust dan siap dikembangkan jangka panjang (Guo, 2022).
Course Android Development Advanced membahas secara komprehensif evolusi arsitektur aplikasi Android, dimulai dari pendekatan awal seperti Model-View-Controller (MVC) hingga arsitektur modern dan reaktif seperti MVP, MVVM, VIPER, dan MVI. Melalui studi kasus aplikasi WeWatch / Movies App, peserta mempelajari implementasi nyata tiap arsitektur, termasuk pemisahan peran antar komponen, pengelolaan alur data, serta interaksi antara UI dan business logic. Pendekatan ini sejalan dengan praktik pengembangan Android modern yang menekankan separation of concerns untuk meningkatkan kualitas desain dan kemudahan pemeliharaan kode (Forrester et al., 2023).
Selain fokus pada arsitektur, course ini menekankan aspek lanjutan seperti unit testing, dependency injection, reactive programming dengan RxJava, serta pemanfaatan Android Architecture Components seperti ViewModel, LiveData, dan Repository. Peserta tidak hanya memahami cara membangun aplikasi, tetapi juga alasan pemilihan arsitektur tertentu beserta implikasinya terhadap testability dan skalabilitas. Penerapan MVVM, Repository Pattern, dan dependency injection terbukti meningkatkan modularitas aplikasi serta mendukung pengembangan Android yang lebih efisien dan terstandarisasi di lingkungan profesional (Forrester et al., 2023) (Späth, 2022).
OBJECTIVES
1. Memahami Arsitektur Aplikasi yang Baik
2. Meningkatkan Kualitas Kode dan Kemudahan Pemeliharaan
3. Menguasai Pengujian Unit dan Debugging
4. Mengoptimalkan Pengelolaan Dependensi dengan Dependency Injection
5. Menerapkan Pemrograman Reaktif dengan RxJava
6. Memanfaatkan Android Architecture Components
7. Mengembangkan Aplikasi dengan Pendekatan Berbasis Studi Kasus
AUDIENCE
1. Android Developer
2. Mobile Software Engineer
3. Engineering Manager
4. Freelance Developer
5. Test Automation Engineer
PREREQUISITES
1. Business Process Model and Notation (BPMN)
CONTENT
Section I: Building a Foundation
1. Introduction
1.1. What is this book?
1.2. Why is app architecture important?
1.3. Introducing the sample project
1.4. WeWatch sample app walkthrough
1.5. Where to go from here?
2. Model View Controller
2.1.The Model-View-Controller pattern
2.2.Applying MVC to Android
2.3.WeWatch MVC code
3. Testing MVC
3.1. Android Testing
3.2. Focusing on unit tests
3.3. Unit testing the Movie class
3.4. Unit testing an Android Activity
3.5. Why MVC makes unit testing hard
4. Android Architecture Components
4.1. Using the Android Architecture Components
4.1. Advanced Android App Architectures
5. Dependency Injection
5.1. What is a dependency?
5.2. Why dependencies can be problematic
5.3. Injecting dependencies
5.4. Dependency injection frameworks
6. RxJava
6.1. What is the Observer pattern?
6.2. Getting to know RxJava
6.3. Observing events
6.4. Frequently Not Asked RxJava Questions
Section II: Fundamental UI Architectures
7. Model View Presenter Theory
7.1. The Model-View-Presenter pattern
7.2. MVP advantages and concerns
8. Model View Presenter Sample
8.1. Applying MVP to the Movies app
8.2. The Main screen
8.3. The Add Movie screen
8.4. The Search Movie screen
9. Testing MVP
9.1. Getting to know Mockito
9.2. Testing the MainPresenter
9.3. Testing the AddMoviePresenter
9.4. Testing the SearchPresenter
10. Model-View-ViewModel Theory
10.1. The Model-View-ViewModel pattern
10.2. MVVM by example
10.3. MVVM advantages and concerns
11. MVVM Sample with data binding
11.1. What is data binding?
11.2. Implementing data binding
12. MVVM Sample with Android
12.1. Architecture Components
12.2. Current architecture layers
12.3. Creating a movie repository
12.4. Creating ViewModels
12.5. Using LiveData with ViewModels
12.6. MVVM architecture
13. MVVM Testing
13.1. Creating unit tests
Section III: VIPER and MVI
14. VIPER Theory
14.1. What is VIPER?
14.2. VIPER Advantages and Concerns
14.3. Questions you didn’t think to ask
15. VIPER Sample
15.1. Implementing the Main Module
15.2. Implementing the AddMovie module
15.3. Implementing SearchMovie
16. Testing VIPER
16.1. Testing your Main presenter
16.2. Testing the AddMovie presenter
16.3. Testing SearchMovie Presenter
17. MVI Theory
17.1. What is MVI?
17.2. MVI Advantages and Concerns
17.3. Frequently Not Asked MVI Questions
18. MVI Sample
18.1. Going Reactive
18.2. Creating Interactors and State
18.3. Creating the Presenters
18.4. Creating the Views
18.5. Final thoughts
19. MVI Debugging
19.1. Introducing Timber
19.2. Testing the MVI architecture
Course Features
- Lecture 0
- Quiz 0
- Duration 32 hours
- Skill level All levels
- Language Indonesia
- Students 0
- Certificate No
- Assessments Yes




