Introduction
Kotlin
For both client and server side we are going to use the power of Kotlin programming language.
Jetpack Compose
For building our App UI, we are going to use modern UI toolkit called Jetpack Compose.
Ktor Framework
Ktor for our back-end server. Ktor is built from the ground up using Kotlin and Coroutines.
Almost 16 hours of Quality Video Content!
⭐⭐⭐⭐⭐
🎓 What you will learn in this course
- Develop an Android Application
- Develop a Backend Server with Ktor
- Create your own REST API
- Design App UI using Jetpack Compose UI toolkit
- Clean Architecture + Use Cases
- Create and Configure a Backend Server
- Learn about Server Engines
- Learn about Server Modules
- Learn about Server Plugins
- Handle Server Requests and Responses
- Display Static Content on the Server
- Templating
- Auto-Reload Server feature
- How to use Postman
- Generate Ktor Project
- Create and Handle Server Endpoints
- Implement Serialization
- Custom Headers
- Static Pages
- Testing Server Endpoints
- Paging 3 Library with Jetpack Compose
- Offline Caching with Remote Mediator
- Work with multiple Paging Sources in Android Studio
- ROOM as a Local Database
- Dependency Injection on both Server and Android project
- Dependency Injection with Koin
- Dependency Injection with Dagger-Hilt
- Implement On Boarding Screens
- Implement Compose Navigation
- Implement Swipe to Refresh
- Search Widget - Custom UI Component with Jetpack Compose
- Rating Widget - Custom UI Component with Jetpack Compose
- Ordered List - Custom UI Component with Jetpack Compose
- Info Box - Custom UI Component with Jetpack Compose
- Testing Custom UI Components
- Testing Android Application (Partially)
- Shimmer Effect
- Beautiful App Design
- Animated Splash Screen
- Palette API
- Dynamic Layout Colors
- Extract Colors from an Image and Apply them into the Layout
- MVVM
- Both Light and Dark Theme Design
- Server Deployment on Heroku
- and more...
🤚 Requirements for taking this course
- You should be already familiar with a Jetpack Compose (Watch my To-Do course with Jetpack Compose first)
- You should be already familiar with a Kotlin programming language
- You should be already familiar with basic Android Architecture Components
Course Content
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Introducing with the Ktor Framework (2:20)
- Download & Install IntelliJ IDEA (2:02)
- Create Ktor Project Manually (18:15)
- Ktor Project Generator (6:40)
- Servers & Configurations (5:35)
- Modules (5:53)
- Plugins (6:43)
- Introducing with Postman (5:32)
- Requests/Responses (16:19)
- Static Content (6:24)
- Templating (6:50)
- Auto-Reload (8:21)
Available in
days
days
after you enroll
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Setup the Project - App (12:47)
- Setup Navigation (11:16)
- Create Hero Entity (6:19)
- Create HeroDao & BorutoDatabase (7:22)
- Create HeroRemoteKey Entity & Dao (7:07)
- Create DatabaseConverter class (7:09)
- Setup Dagger-Hilt (5:38)
- Design Splash Screen (9:39)
- Animate Splash Screen & Apply StatusBar Color (5:22)
- Design Welcome Screen - Part 1 (13:01)
- Design Welcome Screen - Part 2 (11:03)
- Design Welcome Screen - Part 3 (13:07)
- Setup DataStore Preferences (14:20)
- Create Repository & First Use Cases (7:30)
- Handle On Boarding Pages & Navigation (13:05)
- Home Screen - Design Top Bar (7:22)
- Create ApiResponse & BorutoApi (6:27)
- Create NetworkModule object (8:18)
- Introducing with Paging 3 (7:45)
- About Remote Mediator (4:27)
- Implement RemoteMediator and load() function - Part 1 (17:35)
- Implement RemoteMediator and load() function - Part 2 (15:00)
- Create RemoteDataSource & Implementation (12:43)
- Create GetAllHeroes Use Case (7:53)
- Design RatingWidget - Filled Star (21:10)
- Design RatingWidget - Half Filled Star (9:50)
- Design RatingWidget - Empty Star (2:23)
- Design RatingWidget - Calculation (17:39)
- Design HeroItem (25:10)
- Load and Display Data from the Server (11:49)
- Create Animated Shimmer Effect (17:31)
- Display Shimmer Effect (11:54)
- Implement initialize() function - RemoteMediator (18:16)
- Modify Server Test Function (2:57)
- Caching Header Explained (5:18)
- Handle Paging Error (17:51)
- Search Screen - SearchWidget (17:24)
- Search Screen - SearchViewModel (11:45)
- Search Screen - Implement SearchHeroesSource (10:23)
- Search Screen - Implement SearchHeroesUseCase (9:00)
- Search Screen - Display Searched Heroes (13:42)
- Implement Swipe to Refresh (11:12)
- Details Screen - Info Box (12:12)
- Details Screen - Ordered List (6:25)
- Details Screen - LocalDataSource & GetSelectedHeroUseCase (7:50)
- Details Screen - DetailsViewModel (11:20)
- Details Screen - Design BottomSheetContent (21:44)
- Details Screen - Design BackgroundContent (10:38)
- Details Screen - Animate BackgroundContent Image (10:37)
- Details Screen - Animate Sheet Radius (3:46)
- About Palette API (2:45)
- Create PaletteGenerator Object (10:14)
- Implement Palette Colors in Details Screen (20:10)
Available in
days
days
after you enroll
Available in
days
days
after you enroll
Available in
days
days
after you enroll
Available in
days
days
after you enroll
Available in
days
days
after you enroll
- Update #1 - Code Cleanup (10:21)
- Update #2 - Dependency Update, Code Cleanup (6:01)
- Update #3 - Migration to Ktor 2.+ (15:49)
- Update #4 - Migrate to New Splash API (10:15)
- Update #5 - KSP and Accompanist Pager Migrations (11:32)
- Update #6 - Accompanist Swipe Refresh and SystemUIController migration (4:04)
- Update #7 - KTS, Material3, PullToRefresh and more... (2:43)
Join my Discord Channel!
If you buy one of the courses from my website, you will also receive an invite only link to my private Discord Channel, which is available exclusively for my YouTube members! I'm planning to grow my Discord community, so don't be shy, join us! 🚀