Clean Architecture

Clean Architecture
Clean Architecture
English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 11h 17m | 8.05 GB

Clean Architecture, MVI, Kotlin, Dagger, Network layer, Cache layer, Unit testing, Instrumentation testing, Firestore…

Why do so many people from the various software fields (web, android, iOS, desktop, games) say Clean Architecture is one of the best ways to structure code? This course will introduce you to Clean Architecture and show you why testing far easier on android. Both Instrumentation tests and unit tests.

  • MVI architectural pattern
  • Kotlin
  • Coroutines
  • Flows and channels
  • Network layer (Firestore)
  • Caching layer (Room Persistence) & planning a caching strategy
  • Firestore testing (Firebase Emulators)
  • Unit tests (Junit5)
  • Instrumentation testing (Espresso and androidx.test)
  • Gradle Scripting (automate test running)
  • Test reports
  • Dagger2
  • Navigation Components
Table of Contents

Course Demo
How this Course is Structured
Source Code
Gradle Dependency Management
Layers of Clean Architecture
Package Structure
Building out the Domain Layer
State Management
Data Layer (Cache)
Data Layer (Network)
NoteDaoService & NoteFirestoreService Abstractions
Planning Use-cases
InsertNewNote Use-case
Cache and Network Error Handling
Test Fakes and Test Dependencies
InsertNewNote Unit Tests
SearchNotes Use-case
SearchNotes Unit Tests
Fake Data Sets
GetNumNotes Use-case
GetNumNotes Unit Tests
DeleteNote Use-case
DeleteNote Unit tests
DeleteMultipleNotes Use-case
DeleteMultipleNotes Unit Tests
RestoreDeletedNote Use case
RestoreDeletedNote Unit Tests
UpdateNote Use-case
UpdateNote Unit Tests
SyncNotes Use-case
SyncNotes Unit Tests
SyncDeletedNotes Use-case
SyncDeletesNotes Unit Tests
Room Database Setup
NoteDaoService Implementation
Firestore Setup
Crashlytics and Analytics
Dagger Setup (Part 1)
Dagger for Instrumentation Tests
Firestore Local Testing
Base Test Class
Fake Data for Instrumentation Tests
Firestore Tests
Bug Fix #1
Room DAO Tests
Gradle Scripting Introduction
Gradle Scripts to Automate Tests
The Last Piece of Clean Architecture
Base Classes and Factories
NoteListViewModel
NoteList Toolbar States and RecyclerView Item Selection
NoteListFragment
MainActivity
NoteDetailViewModel and Fragment
SplashFragment and Data Sync
Bug Fixes 2