Complete Multi-Modular Architecture for Android Development

Complete Multi-Modular Architecture for Android Development

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 77 lectures (12h 59m) | 7.39 GB

Build a Multi-Module, Industry ready Android app with Kotlin, Authentication and a Mongo DB’s Device Sync as a Database.

In this course I’m going to teach you how to build an Android Application by implementing the Multi-Modular Architecture. You will learn everything about properly configuring the project in order to make a maintainable structure that can grow easily!

Modularization is an unavoidable Architecture when working on a big, industry level code bases that pretend to expand furthermore. Almost every employer our there, will appreciate your experience with working on a multi-modular projects. But that can be tough when you are a beginner, since it’s hard to find a quality source of information on this topic. However, with that knowledge, it means that you will definitely stand out from the crowd when applying for a job. You will feel confident!

This course is a beginner friendly. Which means that you don’t need to have any experience with this kind of an architecture, to be able to follow along. And the proof of that is the actual structure of this same course. First, we are going to build an android application without the multi-module architecture, so that you can get introduced with the project itself. And only after we fully complete the app, then we are going to refactor the project, and split it up into multiple different modules.

That way you will learn not just how to create and maintain a multi-module project, but also how to refactor an existing project to follow that same architecture and structure!

We are going to build a beautiful Diary application by using the newest API’s and technologies for Android Development. Like the ROOM library for a local database, Jetpack Compose for building the UI of our application, New Splash API, Material 3, Kotlin Coroutines, Dagger-Hilt dependency injection library, One-Tap Sign in with Google, Firebase Authentication, Firebase Storage, Mongo Authentication, Mongo Realm Database, but also a Mongo Realm/Device Sync service as well.

With Device Sync we will be able to easily synchronize the data between a client-side database(Android) and a powerful, fully managed back-end in Atlas. With out-of-the-box networking code and conflict resolution. Device Sync is especially helpful for apps that must continue to function when are offline, or apps that offer real-time collaboration.

When offline, changes in the database will be saved locally, until you receive back an internet connection, when the changes will be automatically pushed on the back-end without any action from your side. Which is amazing!

With a Mongo Device Sync, you will be able to build Industry-ready apps quite easily,with minimal effort!

Bottom line, this course is going to teach you a lot of stuff.

What you’ll learn

  • Multi-Modular Architecture for Android Development
  • Mongo DB
  • Mongo Authentication
  • Mongo DB Realm
  • Mongo DB Realm/Device Sync
  • Mongo Atlas
  • Realm Kotlin SDK
  • Synchronize the data between a client and the server
  • Jetpack Compose
  • Material 3
  • Dagger-Hilt
  • ROOM Database
  • Firebase Authentication
  • Firebase Storage
  • Google Authentication
  • One-Tap Sign in with Google
  • Splash API
  • JWT Authentication
  • Animation
  • Custom UI Components
  • Diary Application
  • Flexible Sync
  • Permissions
  • Version Catalog
  • And more…
Table of Contents

Introduction
Introduction
Application Project Preview
Is this the right course for you
How is this course structured
Creating the new Project
Adding a Custom Material 3 Theme

Splash Screen
Design the Splash Screen
Implement the Splash Screen

Mongo DB Setup
Introducing with Mongo DB
Introducing with Realm Sync
Mongo DB Atlas Create a New Project
Install Mongo DB Compass
Mongo DB Atlas Enable Google Sign in

Navigation Setup
Setup the Navigation Graph

Authentication Screen
Design Authentication Screen
Implement OneTap Sign in with Google
Create a User on a Mongo DB Atlas
JWT Authentication Provider with Mongo DB
Dynamically Update the Start Destination
Transparent Status and Navigation Bar

Home Screen
Create a HomeTopBar
Implement the Navigation Drawer
Create Diary and Mood model classes
Create a DateHeader as a Sticky Header
Create a DiaryHolder Component
Create a Gallery Component
Define a Collection Schema
Define Flexible Sync Permission Rules
Configure the Realm
Generate the Schema with Development Mode
Design a HomeContent
Read all Diaries inside the App
Fix Blank Screen after the Splash Screen
Animate DiaryHolders Gallery
Animate TopBar on Scroll

Write Screen
Create WriteTopBar
Create WriteContent
Pass Diary Id as an Argument
Fetch Selected Diary Information
Parse Diary Info within a WriteTopBar
Insert a Diary
Modify getSelectedDiary function
Update a Diary
Adding a custom DateTime
Fix updatedDateTime lambda
Delete a Diary
Push Screen when Keyboard is opened
Input Fields Focusing

Gallery Uploader
Create a GalleryUploader component
Sign in with Firebase
Generate a Remote Image Path
Upload Gallery images to Firebase Storage
Get Download URLs from Firebase Storage
Create ImagesToUpload DAO Database
Handle when Image Upload Failed
Implement a Zoomable Image
Fix a Black Write Screen after the Orientation Change
Delete Images from Firebase when a Diary is Deleted
Delete Images from Firebase when Updating a Diary
Create ImagesToDelete DAO and Entity

Filtering the Diaries Home Screen
Delete all Diaries
Filter Diaries by the Day of the Month

Project Modularization
Introducing with the Modularization
Module Types
Modular Architecture of our Project
Define a Version Catalog
Create a buildSrc Directory
Lets create the first Module UI
Create a Utility Module
Create a Data Module
Feature Module Authentication
Feature Module Home
Feature Module Write
Apply Visibility Modifiers
Fix the Filter Query

Homework
Homework for practice

Homepage