Showcase app with MVI clean architecture with unit testing, screenshot testing and jetpack compose testing with JUNIT5 , MockK, KoTest. Multi module architecture.
Weather app - https://play.google.com/store/apps/de...
Resources:
• GitHub Repository: https://bit.ly/3znarIK
If you enjoy our content and want to support us, consider buying us a drink ☕️😊 – https://buymeacoffee.com/coroutinelab
00:00 Introduction
00:34 What you will learn
01:39 Uncle Bob clean architecture explained
02:44 Setup Android studio project
03:09 Setup Mock API using mockapi.io
04:11 What is URL?
04:39 Creating modules in android studio project
06:10 What is dependency in Android?
06:28 Version catalogue Android
09:18 What is DTO - data transfer object
09:45 Convert Json to Kotlin data class
10:24 Create network module for Retrofit
11:50 Create Either data type
12:22 Either vs Result Kotlin
13:05 Define Custom Errors for android app
13:46 Safe Api call generic handler for API
16:31 Define domain module Models
17:31 Define repository in domain module
17:55 Deine repository implementation in data module
18:06 Define API service
18:33 Create Mappers to map DTO to domain models
21:23 Hilt to bind Respository
21:40 Create Usecase
22:09 Test API without running the app
22:52 Create UI module
24:04 Jetpack compose Row Column and modifier
24:39 Create Reusable UI component
30:00 What is MVI(Model View Intent) contract
33:28 Create Email List View Model
34:21 Create Email List Screen
35:13 Create UI state for email details screen
35:42 Create Email Details ViewModel
36:10 Create EmailDetails Screen
37:05 Setup jetpack compose type safe navigation
38:21 Running the Android App
40:23 Setup App icon
41:00 Fix edge to edge
42:44 Drawer navigation Jetpack compose
45:15 Set up Drop down menu Jetpack compose
45:56 Fix launched effect not surviving configuration changes
47:19 What is Testing ?
48:21 Testing Pyramid
50:05 JUNIT 4 VS JUNIT 5
51:26 What are test doubles?
51:54 What is MockK?
52:29 What is Kotest?
53:28 Setup Dependency for Testing
54:40 Write test case for UseCase with Test coverage
58:58 Write Test case for Repository Implementation with Test coverage
1:00:01 Write test case for error handler
1:00:48 Write test case for network handler
1:01:03 Write test case for mappers
1:04:44 Write test case for viewmodels
1:07:07 What is Screenshot test?
1:10:43 Write Compose UI test
Code link - https://buymeacoffee.com/coroutinelab...