Membangun aplikasi Android modern membutuhkan pemahaman mendalam terhadap arsitektur, ekosistem, dan teknologi pendukung terkini seperti Jetpack Compose, Firebase, serta berbagai library populer seperti Retrofit, Glide, dan Hilt. Banyak pengembang sering kali menghadapi tantangan dalam mengelola kompleksitas aplikasi, terutama dalam hal navigasi antar layar, manajemen data, performa, serta pengujian aplikasi sebelum rilis. Pengembang Android yang memahami arsitektur berbasis MVVM dan komponen Jetpack terbukti mampu membangun aplikasi lebih efisien dengan tingkat bug 30% lebih rendah (Stack Overflow, 2023).
Course Android Intermediate ini dirancang untuk memperkuat kemampuan peserta dalam membangun aplikasi Android modern yang efisien, modular, dan siap produksi. Peserta akan mempelajari konsep Activity dan Fragment lifecycle, mengelola navigasi dengan Jetpack Navigation, membangun UI modern dengan Jetpack Compose, serta mengintegrasikan Firebase dan Cloud Firestore untuk penyimpanan data berbasis cloud. Selain itu, peserta juga akan mempelajari Dependency Injection (Hilt, Koin, Dagger), melakukan unit testing dan UI testing, serta menyiapkan aplikasi untuk rilis di Google Play Store.
OBJECTIVES
1. Memahami arsitektur dan ekosistem pengembangan Android modern
2. Mampu menguasai pengelolaan tampilan dan navigasi aplikasi menggunakan Activity, Fragment, dan Jetpack Navigation
3. Mampu membangun UI interaktif menggunakan Jetpack Compose
4. Mampu mengintegrasikan Firebase dan Cloud Firestore untuk pengelolaan data berbasis cloud
5. Mengimplementasikan dependency injection, testing, dan optimasi performa aplikasi.
AUDIENCE
1. Android Developers
2. Mobile Application Engineers
3. Software Engineers
4. Application Architects
PREREQUISITES
Tidak ada training khusus yang dipersyaratkan
CONTENT
1. Overview Modern Android & Ecosystem
1.1 The Android Operating System
1.2 The Development System
2. Building User Screen Flows
2.1 The Activity Lifecycle
2.2 Saving and Restoring the Activity State
2.3 Activity Interaction with Intents
2.4 Intent, Tasks, and Launch Modes
3. Developing the UI with Fragments
3.1 The Fragment Lifecycle
3.2 Static Fragments and Dual-Pane Layouts
3.3 Dynamic Fragments
3.4 Jetpack Navigation /p>
4. Building App Navigation
4.1 Navigation Overview
4.2 Navigation Drawer
4.3 Bottom Navigation
4.4 Tabbed Navigation
5. Building User Interfaces Using Jetpack Compose
5.1 What is Jetpack Compose?
5.2 Handling User Actions
5.3 Adding Compose to Existing Projects
6. Android Architecture Components
6.1 Android Components Background
6.2 ViewModel
6.3 Data Streams
6.4 Room
7. Coroutines and Flow
7.1 Using Coroutines on Android
7.2 Transforming LiveData
7.3 Using Flow on Android
8. Essential Libraries: Retrofit, Moshi, and Glide
8.1 Introducting REST, API, JSON, and XML
8.2 Fetching Data from a Network Endpoint
8.3 Parsing a JSON Response
8.4 Loading Images from a Remote URL
9. Introduction to Firebase
9.1 Overview and History Firebase
9.2 Benefits of Adopting Firebase
9.3 Creating a Firebase Project
9.4 Core Features and Services
10. Cloud Firestore Database
10.1 Introduction to Databases and Cloud Firestore
11.2 Application Foundation Layers
10.3 Setting Up Firestore
10.4 Getting Data from Firestore
10.5 Fetch Data from Sub-Collection
11. Deep Dive into Cloud Firestore
11.1 Designing the Database
11.2 Finding the Optimal Architecture
11.3 Write Data to Cloud Firestore
11.4 Listening to Live Changes
11.5 Update and Delete Data
12. Android Permissions and Google Maps
12.1 Requesting Permission from the User
12.2 Showing a Map of the User’s Location
12.3 Map Clicks and Custom Markers
13. Services, WorkManager, and Notifications
13.1 Starting a Background Task Using WorkManager
13.2 Background Operations Noticeable to the User – Using a Foreground Service
14. Dependency Injection with Dagger, Hilt, and Koin
14.1 The Necessity of Dependency Injection
14.2 Manual DI
14.3 Dagger 2
14.4 Hilt
14.5 Koin
15. Unit Tests and Integration Tests with Junit, Mockito, and Espresso
15.1 Types of Testing
15.2 JUnit
15.3 Android Studio Testing Tips
15.4 Mockito
15.5 Integration Tests
15.6 UI Tests
15.7 TDD
16. Architecture Patterns
16.1 Getting Started with MVVM
16.2 Using Retrofit and Moshi
16.3 Using WorkManager
17. Animations and Transitions with CoordinatorLayout and MotionLayout
17.1 Activity Transitions
17.2 Animations with CoordinatorLayout
17.3 Animations with MotionLayout
18. Persisting Data
18.1 Preferences and DataStore
18.2 Files
18.3 Scoped Storage
19. Launching App on Google Play
19.1 Preparing Apps for Release
19.2 Creating a Developer Account
19.3 Uploading an App to Google Play
19.4 Managing App Releases