آموزش برنامه اندروید مدرن را با REST API و سرور Ktor بسازید

Build Modern Android App with REST API and Ktor Server

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: با Kotlin یک برنامه اندرویدی توسعه دهید. واکشی داده ها از REST API مستقر در سرور Backend شما که با Ktor توسعه یافته است. توسعه یک برنامه اندرویدی توسعه یک سرور Backend با Ktor ایجاد رابط کاربری REST API Design برنامه خود با استفاده از Jetpack Compose UI Toolkit Clean Architecture + Use Cases ایجاد و پیکربندی سرور Backend درباره موتورهای سرور اطلاعاتی در مورد ماژول های سرور بیاموزید درباره پلاگین های سرور اطلاعاتی در مورد درخواست های سرور مدیریت کنید و پاسخ ها نمایش محتوای ایستا در قالب سرور قابلیت بارگذاری مجدد خودکار سرور نحوه استفاده از Postman Generate Project Ktor ایجاد و مدیریت نقاط پایانی سرور پیاده سازی سریال سازی سفارشی هدرهای استاتیک آزمایش سرور نقاط پایانی صفحه 3 کتابخانه با Jetpack نوشتن ذخیره سازی آفلاین با واسطه از راه دور کار با چندین منبع صفحه بندی در Android Studio ROOM به عنوان تزریق وابستگی پایگاه داده محلی در هر دو سرور و پروژه اندروید تزریق وابستگی با تزریق وابستگی کوین با پیاده‌سازی Dagger-Hilt در صفحه‌های سواری پیاده‌سازی نوشتن مسیریابی پیاده‌سازی تند کشیدن برای بازخوانی ابزارک جستجو - کامپوننت رابط کاربری سفارشی با ویجت رتبه‌بندی Jetpack Compose - سفارشی UI C کامپوننت با Jetpack Compose لیست سفارشی - کامپوننت UI سفارشی با Jetpack Compose Info Box - کامپوننت UI سفارشی با Jetpack Compose تست کامپوننت های رابط کاربری سفارشی برنامه اندروید (تا حدی) جلوه Shimmer طراحی زیبا برنامه طراحی متحرک Splash Screen Palette API Dynamic Color Layout an Colors و آنها را در طرح بندی MVVM Retrofit ارسال کنید درخواست های HTTP کویل سریال سازی KotlinX بارگیری کتابخانه نشانگرهای پیجر افقی سیستم کنترلر رابط کاربری طراحی تم روشن و تاریک استقرار سرور در Heroku و موارد دیگر... پیش نیازها: شما باید قبلاً با Jetpack آشنا باشید نوشتن (ابتدا دوره کاری من را با Jetpack Compose تماشا کنید) باید قبلاً با یک زبان برنامه نویسی Kotlin آشنا باشید باید قبلاً با اجزای اصلی معماری اندروید آشنا باشید.

سلام و به دوره من خوش آمدید!

این دوره ویژه خواهد بود. چرا؟ خوب، زیرا من به شما یاد خواهم داد که چگونه نه تنها یک برنامه اندرویدی دیگر، بلکه یک سرور باطن، REST API خود را نیز بسازید!

هدف اصلی آن سرور ارائه داده ها به برنامه Android ما خواهد بود. شما یاد خواهید گرفت که چگونه با موفقیت یک ارتباط با کیفیت بین مشتری، یا در این مورد برنامه Android ما، و یک سرور پشتیبان برقرار کنید.

برای backend ما از چارچوب ktor استفاده خواهیم کرد که اساساً بر روی Kotlin و Coroutines ساخته شده است! شما همه چیز را در مورد آن چارچوب، نحوه ایجاد نقاط پایانی خود، نحوه کار با درخواست های مشتری، دریافت پارامترهای پرس و جو، پردازش همان درخواست در باطن خود، و در نهایت ارسال یک پاسخ کاملا آماده به مشتریان خود، یا در این مورد، یاد خواهید گرفت. برنامه Android که ما نیز قصد توسعه آن را داریم.


اکنون، برنامه Android ما از جدیدترین APIها و کتابخانه ها استفاده می کند. برای طراحی طرح‌بندی برنامه‌مان از یک جعبه ابزار مدرن UI به نام jetpack compose استفاده می‌کنیم. برای برقراری ارتباط با باطن خود، از کتابخانه retrofit و صفحه‌بندی 3 به همراه واسطه راه دور استفاده می‌کنیم، بنابراین می‌توانیم به طور خودکار آن داده‌ها را از سرور در پایگاه داده اتاق محلی خود ذخیره و کش کنیم. به این ترتیب می‌توانیم داده‌ها را در برنامه خود بارگیری کنیم، حتی اگر اتصال اینترنت نداشته باشیم.


و این تمام نیست، من همچنین به شما یاد خواهم داد که چگونه سرور Backend و همچنین برنامه Android خود را آزمایش کنید. ما قصد داریم تمام نقاط پایانی سرورمان، مهم‌ترین بخش‌های برنامه اندروید خود و چند مؤلفه رابط کاربری سفارشی را که با استفاده از Jetpack Compose بسازیم، آزمایش کنیم! من قصد دارم به شما یاد بدهم که چگونه یک مؤلفه رابط کاربری سفارشی به نام Rating Widget ایجاد کنید، با استفاده از Jetpack Compose، شگفت انگیز به نظر می رسد!


در مرحله بعد، نحوه پیاده‌سازی تند کشیدن برای به‌روزرسانی عملکرد در برنامه، نحوه پیاده‌سازی API پالت را خواهید آموخت تا بتوانید بسته به تصویری که در صفحه بارگذاری می‌کنیم، رنگ‌های پویا را در طرح‌بندی خود نمایش دهید. و بسیاری چیزهای مختلف دیگر در پایان، کارهای زیادی برای انجام دادن وجود دارد، پس آماده باشید، زیرا این یک سفر کاملاً طولانی خواهد بود!


پس منتظر چه چیزی برای توسعه دهندگان هستید. بیایید شروع کنیم!


سرفصل ها و درس ها

معرفی Introduction

  • معرفی Introduction

  • معرفی Introduction

  • مخازن و منابع پروژه Project Repositories and Resources

معرفی Introduction

  • مخازن و منابع پروژه Project Repositories and Resources

معرفی با فریم ورک Ktor Introducing with Ktor Framework

  • معرفی با چارچوب Ktor Introducing with the Ktor Framework

  • معرفی با چارچوب Ktor Introducing with the Ktor Framework

  • IntelliJ IDEA را دانلود و نصب کنید Download & Install IntelliJ IDEA

  • IntelliJ IDEA را دانلود و نصب کنید Download & Install IntelliJ IDEA

  • پروژه Ktor را به صورت دستی ایجاد کنید Create Ktor Project Manually

  • پروژه Ktor را به صورت دستی ایجاد کنید Create Ktor Project Manually

  • ژنراتور پروژه Ktor Ktor Project Generator

  • سرورها و تنظیمات Servers & Configurations

  • سرورها و تنظیمات Servers & Configurations

  • ماژول ها Modules

  • ماژول ها Modules

  • پلاگین ها Plugins

  • پلاگین ها Plugins

  • معرفی با پستچی Introducing with Postman

  • درخواست ها/پاسخ ها Requests/Responses

  • درخواست ها/پاسخ ها Requests/Responses

  • محتوای استاتیک Static Contente

  • محتوای استاتیک Static Contente

  • الگوسازی Templating

  • الگوسازی Templating

  • بارگذاری مجدد خودکار Auto-Reload

  • بارگذاری مجدد خودکار Auto-Reload

معرفی با فریم ورک Ktor Introducing with Ktor Framework

  • ژنراتور پروژه Ktor Ktor Project Generator

  • معرفی با پستچی Introducing with Postman

بیایید سرور Backend خود را بسازیم Let's Build our Backend Server

  • راه اندازی پروژه - سرور Setup the Project - Server

  • پلاگین ها را نصب کنید Install Plugins

  • پلاگین ها را نصب کنید Install Plugins

  • کلاس های مدل ایجاد کنید Create Model Classes

  • کلاس های مدل ایجاد کنید Create Model Classes

  • HeroRepository را ایجاد کنید Create HeroRepository

  • Root Endpoint را ایجاد کنید Create Root Endpoint

  • Root Endpoint را ایجاد کنید Create Root Endpoint

  • ایجاد نقطه پایانی AllHeroes - قسمت 1 Create AllHeroes Endpoint - Part 1

  • ایجاد نقطه پایانی AllHeroes - قسمت 2 Create AllHeroes Endpoint - Part 2

  • ایجاد نقطه پایانی AllHeroes - قسمت 2 Create AllHeroes Endpoint - Part 2

  • SearchHeroes Endpoint را ایجاد کنید Create SearchHeroes Endpoint

  • SearchHeroes Endpoint را ایجاد کنید Create SearchHeroes Endpoint

  • صفحات وضعیت Status Pages

  • صفحات وضعیت Status Pages

بیایید سرور Backend خود را بسازیم Let's Build our Backend Server

  • راه اندازی پروژه - سرور Setup the Project - Server

  • HeroRepository را ایجاد کنید Create HeroRepository

  • ایجاد نقطه پایانی AllHeroes - قسمت 1 Create AllHeroes Endpoint - Part 1

بیایید سرور Backend خود را آزمایش کنیم Let's Test our Backend Server

  • تست نقطه پایانی ROOT Testing ROOT Endpoint

  • Testing All Heroes Endpoint - قسمت 1 Testing All Heroes Endpoint - Part 1

  • Testing All Heroes Endpoint - قسمت 1 Testing All Heroes Endpoint - Part 1

  • Testing All Heroes Endpoint - قسمت 2 Testing All Heroes Endpoint - Part 2

  • Testing All Heroes Endpoint - قسمت 2 Testing All Heroes Endpoint - Part 2

  • تست نقطه پایانی قهرمانان جستجو Testing Search Heroes Endpoint

بیایید سرور Backend خود را آزمایش کنیم Let's Test our Backend Server

  • تست نقطه پایانی ROOT Testing ROOT Endpoint

  • تست نقطه پایانی قهرمانان جستجو Testing Search Heroes Endpoint

بیایید برنامه خود را بسازیم! Let's Build our App!

  • راه اندازی پروژه - برنامه Setup the Project - App

  • راه اندازی ناوبری Setup Navigation

  • شخصیت قهرمان ایجاد کنید Create Hero Entity

  • پایگاه داده HeroDao و Boruto را ایجاد کنید Create HeroDao & BorutoDatabase

  • پایگاه داده HeroDao و Boruto را ایجاد کنید Create HeroDao & BorutoDatabase

  • موجودیت و دائو HeroRemoteKey را ایجاد کنید Create HeroRemoteKey Entity & Dao

  • کلاس DatabaseConverter ایجاد کنید Create DatabaseConverter class

  • Dagger-Hilt را راه اندازی کنید Setup Dagger-Hilt

  • طراحی صفحه نمایش اسپلش Design Splash Screen

  • طراحی صفحه نمایش اسپلش Design Splash Screen

  • انیمیشن Splash Screen و اعمال رنگ Status Bar Animate Splash Screen & Apply StatusBar Color

  • طراحی صفحه خوش آمد گویی - قسمت 1 Design Welcome Screen - Part 1

  • طراحی صفحه خوش آمد گویی - قسمت 1 Design Welcome Screen - Part 1

  • طراحی صفحه خوش آمد گویی - قسمت 2 Design Welcome Screen - Part 2

  • طراحی صفحه خوش آمد گویی - قسمت 3 Design Welcome Screen - Part 3

  • طراحی صفحه خوش آمد گویی - قسمت 3 Design Welcome Screen - Part 3

  • تنظیمات DataStore را تنظیم کنید Setup DataStore Preferences

  • تنظیمات DataStore را تنظیم کنید Setup DataStore Preferences

  • ایجاد مخزن و اولین موارد استفاده Create Repository & First Use Cases

  • صفحه های سوار شدن و پیمایش را کنترل کنید Handle On Boarding Pages & Navigation

  • صفحه های سوار شدن و پیمایش را کنترل کنید Handle On Boarding Pages & Navigation

  • صفحه اصلی - طراحی نوار بالا Home Screen - Design Top Bar

  • صفحه اصلی - طراحی نوار بالا Home Screen - Design Top Bar

  • ApiResponse و BorutoApi را ایجاد کنید Create ApiResponse & BorutoApi

  • ApiResponse و BorutoApi را ایجاد کنید Create ApiResponse & BorutoApi

  • شی NetworkModule را ایجاد کنید Create NetworkModule object

  • شی NetworkModule را ایجاد کنید Create NetworkModule object

  • معرفی با Paging 3 Introducing with Paging 3

  • درباره میانجی از راه دور About Remote Mediator

  • درباره میانجی از راه دور About Remote Mediator

  • اجرای RemoteMediator و تابع load() - قسمت 1 Implement RemoteMediator and load() function - Part 1

  • اجرای RemoteMediator و تابع load() - قسمت 2 Implement RemoteMediator and load() function - Part 2

  • ایجاد RemoteDataSource و پیاده سازی Create RemoteDataSource & Implementation

  • ایجاد RemoteDataSource و پیاده سازی Create RemoteDataSource & Implementation

  • GetAllHeroes Use Case را ایجاد کنید Create GetAllHeroes Use Case

  • طراحی ویجت رتبه بندی - ستاره پر شده Design RatingWidget - Filled Star

  • طراحی ویجت رتبه بندی - ستاره پر شده Design RatingWidget - Filled Star

  • ویجت رتبه بندی طراحی - ستاره نیمه پر Design RatingWidget - Half Filled Star

  • طراحی ویجت رتبه بندی - ستاره خالی Design RatingWidget - Empty Star

  • طراحی ویجت رتبه بندی - ستاره خالی Design RatingWidget - Empty Star

  • طراحی امتیاز ویجت - محاسبه Design RatingWidget - Calculation

  • HeroItem را طراحی کنید Design HeroItem

  • بارگیری و نمایش داده ها از سرور Load and Display Data from the Server

  • ایجاد افکت Shimmer متحرک Create Animated Shimmer Effect

  • نمایش افکت Shimmer Display Shimmer Effect

  • تابع Initialize() - RemoteMediator را پیاده سازی کنید Implement initialize() function - RemoteMediator

  • تغییر عملکرد تست سرور Modify Server Test Function

  • Caching Header توضیح داده شده است Caching Header Explained

  • Caching Header توضیح داده شده است Caching Header Explained

  • خطای صفحه بندی را کنترل کنید Handle Paging Error

  • خطای صفحه بندی را کنترل کنید Handle Paging Error

  • صفحه جستجو - SearchWidget Search Screen - SearchWidget

  • صفحه جستجو - SearchWidget Search Screen - SearchWidget

  • صفحه جستجو - SearchViewModel Search Screen - SearchViewModel

  • صفحه جستجو - SearchViewModel Search Screen - SearchViewModel

  • صفحه جستجو - SearchHeroesSource را پیاده سازی کنید Search Screen - Implement SearchHeroesSource

  • صفحه جستجو - SearchHeroesUseCase را پیاده سازی کنید Search Screen - Implement SearchHeroesUseCase

  • صفحه جستجو - نمایش قهرمانان جستجو شده Search Screen - Display Searched Heroes

  • صفحه جستجو - نمایش قهرمانان جستجو شده Search Screen - Display Searched Heroes

  • Swipe را برای Refresh پیاده سازی کنید Implement Swipe to Refresh

  • Swipe را برای Refresh پیاده سازی کنید Implement Swipe to Refresh

  • صفحه جزئیات - جعبه اطلاعات Details Screen - Info Box

  • صفحه جزئیات - جعبه اطلاعات Details Screen - Info Box

  • صفحه جزئیات - لیست سفارش داده شده Details Screen - Ordered List

  • صفحه جزئیات - لیست سفارش داده شده Details Screen - Ordered List

  • صفحه جزئیات - LocalDataSource و GetSelectedHeroUseCase Details Screen - LocalDataSource & GetSelectedHeroUseCase

  • صفحه جزئیات - DetailsViewModel Details Screen - DetailsViewModel

  • صفحه جزئیات - DetailsViewModel Details Screen - DetailsViewModel

  • صفحه جزئیات - طراحی محتوای صفحه پایین Details Screen - Design BottomSheetContent

  • صفحه جزئیات - طراحی محتوای صفحه پایین Details Screen - Design BottomSheetContent

  • صفحه جزئیات - طراحی محتوای پس زمینه Details Screen - Design BackgroundContent

  • صفحه جزئیات - متحرک کردن تصویر محتوای پس زمینه Details Screen - Animate BackgroundContent Image

  • صفحه جزئیات - متحرک سازی شعاع ورق Details Screen - Animate Sheet Radius

  • درباره Palette API About Palette API

  • درباره Palette API About Palette API

  • شئ PaletteGenerator را ایجاد کنید Create PaletteGenerator Object

  • رنگ های پالت را در صفحه جزئیات پیاده سازی کنید Implement Palette Colors in Details Screen

بیایید برنامه خود را بسازیم! Let's Build our App!

  • راه اندازی پروژه - برنامه Setup the Project - App

  • راه اندازی ناوبری Setup Navigation

  • شخصیت قهرمان ایجاد کنید Create Hero Entity

  • موجودیت و دائو HeroRemoteKey را ایجاد کنید Create HeroRemoteKey Entity & Dao

  • کلاس DatabaseConverter ایجاد کنید Create DatabaseConverter class

  • Dagger-Hilt را راه اندازی کنید Setup Dagger-Hilt

  • انیمیشن Splash Screen و اعمال رنگ Status Bar Animate Splash Screen & Apply StatusBar Color

  • طراحی صفحه خوش آمد گویی - قسمت 2 Design Welcome Screen - Part 2

  • ایجاد مخزن و اولین موارد استفاده Create Repository & First Use Cases

  • معرفی با Paging 3 Introducing with Paging 3

  • اجرای RemoteMediator و تابع load() - قسمت 1 Implement RemoteMediator and load() function - Part 1

  • اجرای RemoteMediator و تابع load() - قسمت 2 Implement RemoteMediator and load() function - Part 2

  • GetAllHeroes Use Case را ایجاد کنید Create GetAllHeroes Use Case

  • ویجت رتبه بندی طراحی - ستاره نیمه پر Design RatingWidget - Half Filled Star

  • طراحی امتیاز ویجت - محاسبه Design RatingWidget - Calculation

  • HeroItem را طراحی کنید Design HeroItem

  • بارگیری و نمایش داده ها از سرور Load and Display Data from the Server

  • ایجاد افکت Shimmer متحرک Create Animated Shimmer Effect

  • نمایش افکت Shimmer Display Shimmer Effect

  • تابع Initialize() - RemoteMediator را پیاده سازی کنید Implement initialize() function - RemoteMediator

  • تغییر عملکرد تست سرور Modify Server Test Function

  • صفحه جستجو - SearchHeroesSource را پیاده سازی کنید Search Screen - Implement SearchHeroesSource

  • صفحه جستجو - SearchHeroesUseCase را پیاده سازی کنید Search Screen - Implement SearchHeroesUseCase

  • صفحه جزئیات - LocalDataSource و GetSelectedHeroUseCase Details Screen - LocalDataSource & GetSelectedHeroUseCase

  • صفحه جزئیات - طراحی محتوای پس زمینه Details Screen - Design BackgroundContent

  • صفحه جزئیات - متحرک کردن تصویر محتوای پس زمینه Details Screen - Animate BackgroundContent Image

  • صفحه جزئیات - متحرک سازی شعاع ورق Details Screen - Animate Sheet Radius

  • شئ PaletteGenerator را ایجاد کنید Create PaletteGenerator Object

  • رنگ های پالت را در صفحه جزئیات پیاده سازی کنید Implement Palette Colors in Details Screen

بیایید برنامه خود را آزمایش کنیم Let's Test our App

  • بیایید تست را شروع کنیم! Let's start Testing!

  • FakeBorutoApi را ایجاد کنید Create FakeBorutoApi

  • تست SearchHeroSource Testing SearchHeroSource

  • FakeBorutoApi2 را ایجاد کنید Create FakeBorutoApi2

  • FakeBorutoApi2 را ایجاد کنید Create FakeBorutoApi2

  • تست HeroRemoteMediator Testing HeroRemoteMediator

  • درباره تست رابط کاربری About UI Testing

  • درباره تست رابط کاربری About UI Testing

  • تست ویجت جستجو Testing Search Widget

  • ویجت رتبه بندی تست Testing Rating Widget

بیایید برنامه خود را آزمایش کنیم Let's Test our App

  • بیایید تست را شروع کنیم! Let's start Testing!

  • FakeBorutoApi را ایجاد کنید Create FakeBorutoApi

  • تست SearchHeroSource Testing SearchHeroSource

  • تست HeroRemoteMediator Testing HeroRemoteMediator

  • تست ویجت جستجو Testing Search Widget

  • ویجت رتبه بندی تست Testing Rating Widget

Backend - رویکرد جایگزین Backend - Alternative Approach

  • ویترین رویکرد جایگزین Alternative Approach Showcase

  • ویترین رویکرد جایگزین Alternative Approach Showcase

Backend - رویکرد جایگزین Backend - Alternative Approach

استقرار سرور و هروکو Server Deployment & Heroku

  • درباره Heroku About Heroku

  • درباره Heroku About Heroku

  • سرور را در هروکو مستقر کنید Deploy Server on Heroku

  • سرور را در هروکو مستقر کنید Deploy Server on Heroku

استقرار سرور و هروکو Server Deployment & Heroku

کلمه پایانی Final Word

  • کلمه پایانی Final Word

  • کلمه پایانی Final Word

کلمه پایانی Final Word

به روز رسانی دوره Course Updates

  • به روز رسانی شماره 1 - پاکسازی کد Update #1 - Code Cleanup

  • به روز رسانی شماره 1 - پاکسازی کد Update #1 - Code Cleanup

  • به روز رسانی شماره 2 - به روز رسانی وابستگی، پاکسازی کد Update #2 - Dependency Update, Code Cleanup

  • به روز رسانی شماره 3 - مهاجرت به Ktor 2.+ Update #3 - Migration to Ktor 2.+

  • به روز رسانی شماره 3 - مهاجرت به Ktor 2.+ Update #3 - Migration to Ktor 2.+

  • به روز رسانی شماره 4 - مهاجرت به New Splash API Update #4 - Migrate to New Splash API

  • به روز رسانی شماره 4 - مهاجرت به New Splash API Update #4 - Migrate to New Splash API

به روز رسانی دوره Course Updates

  • به روز رسانی شماره 2 - به روز رسانی وابستگی، پاکسازی کد Update #2 - Dependency Update, Code Cleanup

نمایش نظرات

آموزش برنامه اندروید مدرن را با REST API و سرور Ktor بسازید
جزییات دوره
16 hours
96
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,298
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Stefan Jovanovic Stefan Jovanovic

برنامه نویس/طراح اندروید