Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Complete Multi-Modular Architecture for Android Development
Introduction
Introduction (12:11)
Is this the right course for you? (2:32)
How is this course structured? (1:56)
Creating the new Project (9:33)
Adding a Custom Material 3 Theme (6:02)
Project's Source Code
Splash Screen
Design the Splash Screen (6:42)
Implement the Splash Screen (7:51)
Mongo DB Setup
Introducing with Mongo DB (5:45)
Introducing with Realm Sync (4:40)
Mongo DB Atlas - Create a New Project (7:37)
Install Mongo DB Compass (9:47)
Mongo DB Atlas - Enable Google Sign in (7:54)
Navigation Setup
Setup the Navigation Graph (11:44)
Authentication Screen
Design Authentication Screen (12:08)
Implement One-Tap Sign in with Google (12:13)
Create a User on a Mongo DB Atlas (15:39)
JWT Authentication Provider on Mongo DB (5:39)
Dynamically Update the Start Destination (12:02)
Transparent Status and Navigation Bar (5:28)
Home Screen
Create a HomeTopBar (8:16)
Implement the Navigation Drawer (19:00)
Create Diary and Mood model classes (15:12)
Create a DateHeader as a Sticky Header (9:33)
Create a DiaryHolder Component (19:52)
Create a Gallery Component (20:17)
Define a Collection Schema (12:19)
Define Flexible Sync Permission Rules (9:05)
Configure the Realm (11:51)
Generate the Schema with Development Mode (7:41)
Design a HomeContent (7:14)
Read all Diaries inside the App (27:15)
Fix Blank Screen after the Splash Screen (5:16)
Animate DiaryHolder's Gallery (1:15)
Animate TopBar on Scroll (3:56)
Write Screen
Create WriteTopBar (14:43)
Create WriteContent (15:13)
Pass Diary Id as an Argument (9:08)
Fetch Selected Diary Information (11:28)
Parse Diary Info within a WriteTopBar (13:01)
Insert a Diary (14:48)
Modify getSelectedDiary() function (3:17)
Update a Diary (12:45)
Adding a custom Date/Time (19:13)
Fix updatedDateTime lambda (5:54)
Delete a Diary (13:04)
Push Screen when Keyboard is opened (3:35)
Input Fields Focusing (6:09)
Gallery Uploader
Create a GalleryUploader component (19:17)
Sign in with Firebase (16:07)
Generate a Remote Image Path (9:15)
Upload Gallery Image to Firebase (11:07)
Get Download URL's from Firebase Storage (16:06)
Create ImagesToUpload DAO & Database (8:20)
Handle when Image Upload Interupted (9:40)
Implement a Zoomable Image (11:30)
Fix a Black Write Screen after the Orientation Change (2:51)
Delete Images from Firebase when a Diary is Deleted (4:01)
Delete Images from Firebase when Updating a Diary (10:30)
Create ImagesToDelete DAO and Entity (8:41)
Filtering the Diaries - Home Screen
Delete all Diaries (24:43)
Filter Diaries by the Day of the Month (20:03)
Project Modularization
Introducing with the Modularization (4:01)
Module Types (7:43)
Modular Architecture of our Project (2:14)
Define a Version Catalog (9:02)
Create a buildSrc directory (8:58)
Let's create the first Module - UI (12:45)
Create a Utility Module (13:22)
Create a Data Module (19:43)
Feature Module - Authentication (9:47)
Feature Module - Home (12:55)
Feature Module - Write (9:13)
Apply Visibility Modifiers (11:08)
Fix the Filter Query (5:17)
Homework
Homework for practice (2:31)
Course Updates
#1 'ObjectId' is deprecated. Use BSON ObjectId instead (8:58)
#2 Empty List fixed, KAPT and Accompanist migration (11:27)
#3 Kotlin 2.0 and Version Catalog migration (7:54)
Fix a Black Write Screen after the Orientation Change
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock