Mô tả

Hello there and welcome to my course!

This course will be special. Why? Well because I'm going to teach you how to build not just another android application, but also a backend server, your own REST API!

The main purpose of that server will be to provide the data to our Android Application. You will learn how to successfully establish a quality communication between client, or in this case our Android App, and a backend server.

For the backend we will use ktor framework which is built primarily on Kotlin  and Coroutines! You will learn everything about that framework, how to create your own endpoints, how to work with client requests, receive query parameters, process that same request on your backend, and finally send a fully prepared response to your clients, or in this case an Android App which we are going to develop as well.


Now, our Android Application will use the newest API's and libraries. For designing our Application layout we will use a modern UI toolkit called jetpack compose. For communicating with our backend we will use a retrofit, and paging 3 library along with remote mediator, so we can automatically store and cache that data from the server into our Local ROOM database. That way we will be able to load the data into our Application, even if we don't have an internet connection.


And that's not all, I will also teach you how to test your Backend Server as well as  your Android App. We are going to test all our server endpoints, the most important parts of our Android application and few custom UI components which we are going to build using Jetpack Compose! I'm going to teach you how to create a custom UI component called Rating Widget, using Jetpack Compose, it will look amazing!


Next you will learn how to implement a swipe to refresh functionality in your app, how to implement a palette API so you can display dynamic colors into your layout depending on the image we load into our Screen. And many other different things Bottom Line, there is a lot of work to do, so get ready, because this will be quite of a journey!


So what are you waiting for developers. Let's get started!

Bạn sẽ học được gì

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

Retrofit

Send HTTP Requests

KotlinX Serialization

Coil Image Loading Library

Horizontal Pager

Pager Indicators

System UI Controller

Both Light and Dark Theme Design

Server Deployment on Heroku

AND MORE...

Yêu cầu

  • 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

Nội dung khoá học

10 sections

Introduction

2 lectures
Introduction
02:38
Project Repositories and Resources
01:53

Introducing with Ktor Framework

12 lectures
Introducing with the Ktor Framework
02:20
Download & Install IntelliJ IDEA
02:02
Create Ktor Project Manually
18:16
Ktor Project Generator
06:40
Servers & Configurations
05:35
Modules
05:53
Plugins
06:43
Introducing with Postman
05:32
Requests/Responses
16:19
Static Contente
06:24
Templating
06:50
Auto-Reload
08:21

Let's Build our Backend Server

9 lectures
Setup the Project - Server
07:45
Install Plugins
07:13
Create Model Classes
06:12
Create HeroRepository
04:54
Create Root Endpoint
03:23
Create AllHeroes Endpoint - Part 1
11:19
Create AllHeroes Endpoint - Part 2
19:46
Create SearchHeroes Endpoint
09:02
Status Pages
07:26

Let's Test our Backend Server

4 lectures
Testing ROOT Endpoint
06:10
Testing All Heroes Endpoint - Part 1
19:24
Testing All Heroes Endpoint - Part 2
04:14
Testing Search Heroes Endpoint
08:30

Let's Build our App!

53 lectures
Setup the Project - App
12:47
Setup Navigation
11:16
Create Hero Entity
06:19
Create HeroDao & BorutoDatabase
07:22
Create HeroRemoteKey Entity & Dao
07:07
Create DatabaseConverter class
07:09
Setup Dagger-Hilt
05:38
Design Splash Screen
09:39
Animate Splash Screen & Apply StatusBar Color
05:22
Design Welcome Screen - Part 1
13:01
Design Welcome Screen - Part 2
11:03
Design Welcome Screen - Part 3
13:08
Setup DataStore Preferences
14:20
Create Repository & First Use Cases
07:30
Handle On Boarding Pages & Navigation
13:05
Home Screen - Design Top Bar
07:22
Create ApiResponse & BorutoApi
06:28
Create NetworkModule object
08:18
Introducing with Paging 3
07:45
About Remote Mediator
04:28
Implement RemoteMediator and load() function - Part 1
17:35
Implement RemoteMediator and load() function - Part 2
15:00
Create RemoteDataSource & Implementation
12:44
Create GetAllHeroes Use Case
07:53
Design RatingWidget - Filled Star
21:10
Design RatingWidget - Half Filled Star
09:50
Design RatingWidget - Empty Star
02: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
02:58
Caching Header Explained
05:18
Handle Paging Error
17:51
Search Screen - SearchWidget
17:24
Search Screen - SearchViewModel
11:46
Search Screen - Implement SearchHeroesSource
10:23
Search Screen - Implement SearchHeroesUseCase
09:00
Search Screen - Display Searched Heroes
13:42
Implement Swipe to Refresh
11:12
Details Screen - Info Box
12:12
Details Screen - Ordered List
06:25
Details Screen - LocalDataSource & GetSelectedHeroUseCase
07: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
03:47
About Palette API
02:45
Create PaletteGenerator Object
10:15
Implement Palette Colors in Details Screen
20:10

Let's Test our App

8 lectures
Let's start Testing!
03:24
Create FakeBorutoApi
08:11
Testing SearchHeroSource
17:18
Create FakeBorutoApi2
04:53
Testing HeroRemoteMediator
16:42
About UI Testing
05:31
Testing Search Widget
18:08
Testing Rating Widget
10:39

Backend - Alternative Approach

1 lectures
Alternative Approach Showcase
24:32

Server Deployment & Heroku

2 lectures
About Heroku
04:32
Deploy Server on Heroku
15:11

Final Word

1 lectures
Final Word
02:13

Course Updates

6 lectures
Update #1 - Code Cleanup
10:21
Update #2 - Dependency Update, Code Cleanup
06:02
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
04:04

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.