آموزش Android TDD Masterclass - Coroutines، Jetpack

Android TDD Masterclass - Coroutines, Jetpack

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: توسعه برنامه اندروید (Kotlin) با معماری پاک، توسعه تست محور، HILT، اسپرسو و تست واحد توسعه یک برنامه پیشرفته اندروید 11: Kotlin، Coroutines، DI with Hilt، Jetpack Navigation Component، Kotlin Flow، MVVM توسعه یک برنامه کاربردی صرفاً با توسعه تست محور خارج از داخل. ما بر تولید یک برنامه تولید واقعی با منطق تجاری و الگوهای UX متداول تمرکز می‌کنیم. مهندس اندرویدی ارشد/معمار شوید و در حرفه خود پیشرفت کنید چگونه همه تمرین‌ها را با هم ترکیب کنید به جای اینکه مجبور باشید چندین مقاله و دوره را دنبال کنید و هفته‌ها را صرف ترکیب بهترین‌ها کنید. با هم تمرین کنید مستقیماً به آخرین و بهترین توسعه اندروید بروید پیش نیازها: دانش کد نویسی پایه دانش پایه Kotlin یا دانش خوب یک زبان دیگر OO

کلاس کارشناسی ارشد TDD توسط پتروس افتیمیو.

با ساختن یک برنامه تولید واقعی، وضعیت پیشرفت اندروید را بیاموزید.

آیا ده‌ها انجمن، مقاله و خرید دوره‌های آموزشی را دنبال می‌کنید تا مهارت‌های توسعه و حرفه خود را به سطح بعدی منتقل کنید؟

من هم هستم، اما اغلب پس از تکمیل آنها متوجه می شوم که هنوز مقدار زیادی کار باقی مانده است تا همه قطعات را به هم متصل کنم و آنها را روی یک برنامه واقعی کار کنم. دریافتم که حتی اگر یک دوره دانش جامعی در مورد برنامه‌های آموزشی ارائه می‌دهد، به این معنی نیست که می‌دانم چگونه آنها را با Retrofit، Live data یا Hilt ادغام کنم. و از آنجایی که دوره دیگری در زمینه توسعه تست محور پس از تکمیل آن گسترده بود، نمی‌دانستم چگونه با استفاده از آخرین پشته فناوری Android با TDD برنامه بنویسم.

پس از خرید دوره‌ها، خواندن انجمن‌های مقالات و چند ماه تمرین عملی، بالاخره یاد گرفتم که چگونه بهترین روش‌های توسعه Android 11 را در یک برنامه Android ترکیب کنم.

من این دوره را ایجاد کردم تا فرآیند را برای شما آسانتر کنم! شما می خواهید یاد بگیرید که چگونه

را ترکیب کنید
  • کاتلین

  • کوروتین ها

  • داده‌های زنده

  • کوتلین فلو

  • بهسازی

  • Hilt

  • Jetpack Navigation

  • MVVM

و یک برنامه اندروید واقعی را صرفاً در توسعه آزمایشی خارج از داخل

تکمیل کنید

شما می خواهید یاد بگیرید که چگونه بدون استفاده از Thread.sleep () تست های اسپرسو بدون پوسته پوسته را در یک سناریوی واقعی با تاخیر و تماس های HTTP بنویسید. از این گذشته، بدون تست‌های موثر اسپرسو UI، TDD را انجام نمی‌دهیم!

چرا من؟

با وجود اینکه من در Udemy تازه کار هستم، در این صنعت تازه کار نیستم. من حدود 8 سال است که به عنوان یک مهندس اندروید از موقعیت های پایین تا رهبری در استارتاپ های بلندپروازانه شرکت های بزرگ چند ملیتی کار می کنم. اگرچه مهندس خوب بودن به طور خودکار به این معنی نیست که شما یک مربی خوب نیز هستید.

در 5 سال گذشته من همچنین اشتیاق خود را به آموزش و پرورش کشف کرده ام و به عنوان مربی نرم افزار در چندین کالج و شرکت از جمله کالج نیویورک، اتحادیه هلنیک آمریکا کار کرده ام و موقعیت فعلی من اکنون مربی موبایل در یک شرکت چند ملیتی به نام است. Backbase، جایی که من در حال آموزش هستم

  • مهندسین RnD داخلی

  • مهندسین خدمات حرفه ای داخلی

  • یکپارچه سازهای شخص ثالث خارجی

در طول عمرم هزاران توسعه‌دهنده را در کلاس‌های درس، کنفرانس‌های وب و دوره‌های ویدیویی آموزش داده‌ام.

چرا مهم است؟

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

من اغلب می گویم که 3 مرحله در پیشرفت یک مهندس وجود دارد

  • در مرحله اول او یک برنامه نویس است. او یاد می گیرد که چگونه کارها را انجام دهد، به عنوان مثال. چگونه می توان دکمه ها را در یک برنامه اندروید اضافه کرد و با کلیک روی آن مدیریت کرد. اما از اهمیت انجام کارها به خوبی آگاه نیست. او نمی تواند متوجه شود که یک سیستم کاملاً ساختاریافته مطمئناً در دراز مدت نتیجه معکوس خواهد داشت و در حالی که در ابتدا به نظر می رسید همه چیز خوب پیش می رود، "ناگهان" دیگر کار با این سیستم غیرممکن است. افزودن ویژگی‌های جدید سخت است و اشکالات اغلب به کد تولید سر می‌زنند

  • در مرحله دوم با درک اشتباهات گذشته، حرفه ای شروع به تمرین و یادگیری الگوهای مهندسی خوب می کند. او شروع به کاوش در مواردی مانند :

    می کند
    • اصول SOLID

    • الگوهای طراحی

    • معماری تمیز

    • جداسازی نگرانی ها

    • کوپلینگ کم، پیوستگی بالا

    • تست واحد

    و اگر به اندازه کافی مشتاق و فداکار باشد، می‌تواند به سطح بالاتری برسد و قادر است سیستم‌هایی را توسعه دهد که نه تنها در کوتاه‌مدت بلکه در بلندمدت نیز موفق باشند

  • مرحله آخر تسلط است. این مرحله یک فرآیند مداوم است و هرگز به پایان نمی رسد. پس از اینکه مهندس درک خوبی از اقدامات فوق داشت، متوجه می شود که فضای بزرگی برای پیشرفت وجود دارد. او یاد می گیرد که چگونه آنها را به کار گیرد و مهمتر از همه زمانی که آنها مورد نیاز نیستند و رویکردهای ساده تر در سطح متوسطه برای پروژه/موقعیت خاص مفیدتر هستند. به عبارت دیگر، تلاشی دائمی برای یادگیری این است که چگونه هرگز

    را انجام ندهید
    • زیر مهندس

    • یا بیش از حد مهندس.

    او همچنین با روش‌های پیشرفته‌تری مانند توسعه تست محور در تماس است که برای درک و تسلط بر آن تلاش زیادی می‌طلبد.

در این دوره تمام تلاشم را می کنم تا شما را در این مسیر پیش ببرم. من آنچه را که در سفرم آموخته ام به شما ارائه خواهم کرد و همچنین بسیار آماده هستم تا از شما بیاموزم. من همیشه در انجمن ها برای پشتیبانی و بحث درباره موضوعاتی که ممکن است دیدگاه متفاوتی داشته باشید در دسترس هستم و از این طریق می توانیم در مسیر بی پایان خود در تسلط بر نرم افزار به یکدیگر کمک کنیم.




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

معرفی Introduction

  • معرفی دوره Course Introduction

  • توضیح دوره Course Explanation

توسعه آزمایش محور توضیح داده شده است Test Driven Development Explained

  • بخش معرفی Section Intro

  • TDD چیست؟ What is TDD

  • مزایای TDD Advantages of TDD

  • پلتفرم مستقل Platform Independent

  • چرخه حیات TDD TDD Lifecycle

  • تست چیست What is a Test

  • نوشتن اولین آزمون واحد ما Writing Our First Unit Test

  • راه حل: آزمون واحد دوم Solution: Second Unit Test

  • به دوره امتیاز دهید Rate the Course

  • پیش شرط های آزمون Test Preconditions

  • انواع تست های خودکار Types Of Automated Tests

  • هرم تست گوگل Google Testing Pyramid

  • انواع TDD Types of TDD

  • کلاسیک ها در مقابل TDD بیرونی Classicists VS Outside-In TDD

  • و برنده است.. And The Winner Is..

  • خارج از داخل TDD چرخه حیات Outside-in TDD Lifecycle

  • اولین سیستم ما با استفاده از TDD - الزامات Our first system using TDD - Requirements

  • عدم موفقیت در آزمون پذیرش Failing Acceptance Test

  • اولین چرخه TDD تکمیل شد First TDD Cycle Completed

  • دومین آزمون قبولی ناموفق Second Failing Acceptance Test

  • چرخه TDD داخلی خودرو Car Inner TDD cycle

  • چرخه TDD داخلی موتور Engine Inner TDD cycle

  • سبز: آزمون پذیرش Green: Acceptance Test

  • آزمون TDD TDD Quiz

  • بسته شدن بخش Section Closing

Coroutines ساخته شده ساده Coroutines Made Simple

  • بخش معرفی Section Intro

  • کوروتین ها چه مشکلاتی را حل می کنند؟ What Problems Do Coroutines Solve?

  • تعلیق و از سرگیری Suspend & Resume

  • بررسی نحوه عملکرد کوروتین ها Examining How Coroutines Work

  • ایمنی اصلی با کوروتین ها Main Safety With Coroutines

  • همزمانی ساختاریافته Structured Concurrency

  • مثال عملی Coroutines Coroutines Practical Example

  • تست کوروتین ها Testing Coroutines

  • کاتلین فلو Kotlin Flow

  • مزایای Kotlin Flow Advantages of Kotlin Flow

  • کاتلین جریان در عمل Kotlin Flow in Practise

  • واحد تست جریان کاتلین Unit Testing Kotlin Flow

  • بستن The Implementation Closing The Implementation

  • مسابقه کوروتین Coroutines Quiz

توسعه یک برنامه اندروید با TDD Developing an Android app with TDD

  • بخش مقدمه Section Introduction

  • چابک کار Working Agile

  • الزامات برنامه Application Requirements

  • راه اندازی Backend ما Setting up our Backend

  • راه اندازی برنامه اندروید ما Setting up our Android Application

  • قبولی اولین آزمون قبولی First Acceptance Test Passing

  • لیست های پخش در آزمون پذیرش مردود می شوند Playlists failing acceptance test

  • حداقل معماری قابل دوام Minimum Viable Architecture

  • با رابط کاربری شروع کنید Starting with the UI

  • اجرای قطعه فهرست پخش Playlist Fragment Implementation

  • اتمام لایه View Finishing up the View Layer

  • قرمز: تست واحد ViewModel Red: ViewModel Unit Test

  • سبز: اولین تست واحد VM Green: First VM Unit test

  • سبز: VM Emitting Playlists Green: VM Emitting Playlists

  • فاز بازسازی Refactoring Phase

  • موارد خطای تست Testing Error Cases

  • پیاده سازی لایه مخزن Implementing The Repository Layer

  • لایه مخزن (ادامه) Repository Layer (Cont)

  • بسته بندی مخزن Wrapping up the Repository

  • ورزش: خدمات Exercise: Service

  • سبز: تست سرویس اول Green: First Service Test

  • سبز: تست سرویس دوم Green: Second Service Test

  • سبز: آزمون سرویس سوم Green: Third Service Test

  • جمع بندی ویژگی لیست های پخش Wrapping up the Playlists Feature

Refactoring با تزریق وابستگی Refactoring with Dependency Injection

  • بخش معرفی Section Intro

  • تزریق وابستگی توضیح داده شده است Dependency Injection Explained

  • مزایای استفاده از DI Pros of using DI

  • مقدمه ای بر Google HILT Introduction to Google HILT

  • ارزیابی وضعیت ما Evaluating our situation

  • HILT را دانلود کنید Download HILT

  • یکپارچه سازی HILT Integrating HILT

  • اتمام یکپارچه سازی HILT Finishing HILT Integration

  • تست اپلیکیشن Testing the Application

  • آزمون تزریق وابستگی Dependency Injection Quiz

  • بسته شدن بخش Section Closing

اضافه کردن منطق کسب و کار Adding Business Logic

  • بخش معرفی Section Intro

  • تغییر نیازمندی ها Requirements Change

  • عدم موفقیت در آزمون پذیرش Failing Acceptance Test

  • سبز: آزمون پذیرش Green: Acceptance Test

  • پنهان شدن لودر، تست پذیرش ناموفق Loader Hiding, Failing Acceptance Test

  • ویژگی لودر تکمیل شده Completed Loader Feature

  • تصویر راک، آزمون پذیرش ناموفق Rock Image, Failing Acceptance Test

  • طراحی پیشرو Upfront Design

  • قرمز: تست مخزن ناموفق Red: Failing Repository Test

  • سبز: مخزن با استفاده از تست Mapper Green: Repository Using Mapper Test

  • سبز: مجموعه کامل مخزن Green: Whole Repository Suite

  • سبز: اولین تست نقشه برداری Green: First Mapper Test

  • سبز: چرخه TDD Mapper لیست پخش Green: Playlist Mapper TDD cycle

  • سبز: آزمون قبولی! Green: Acceptance Test!

  • امتیاز: حذف خواب نخ از تست اسپرسو Bonus: Removing Thread Sleep From Espresso Tests

ناوبری جت پک Jetpack Navigation

  • بخش معرفی Section Intro

  • مقدمه ای بر Jetpack Navigation Introduction to Jetpack Navigation

  • مزایای ناوبری Jetpack Pros Of Jetpack Navigation

  • طراحی پیشرو Upfront Design

  • عدم موفقیت در آزمون پذیرش Failing Acceptance Test

  • افزودن NavHost Adding The NavHost

  • ایجاد نمودار ناوبری Creating The Navigation Graph

  • اعمال ناوبری Applying the Navigation

افزودن صفحه دوم Adding Second Screen

  • بخش معرفی Section Intro

  • طراحی پیشرو Upfront Design

  • تمرین: شکست در آزمون پذیرش Exercise: Failing Acceptance Test

  • تمرین: View Layer Exercise: View Layer

  • راه حل: View Layer Solution: View Layer

  • راه حل: نمایش لایه تکمیل شد Solution: View Layer Completed

  • تمرین: ViewModel TDD Cycle Exercise: ViewModel TDD Cycle

  • راه حل: تفویض داده سبز Solution: Data Delegation Green

  • تمرین: مورد خطای تست Exercise: Test Error Case

  • راه حل: ViewModel Completed Solution: ViewModel Completed

  • تمرین: سرویس جزئیات لیست پخش Exercise: Playlist Details Service

  • سبز: Service_First_Test Green:Service_First_Test

  • سبز: Service_Second_Test Green:Service_Second_Test

  • سبز: Completed_Service_Implementation Green: Completed_Service_Implementation

  • سبز:Acceptance_Test Green:Acceptance_Test

  • بهبودهای نهایی Final Improvements

  • سبز: تست پذیرش لودر نمایشگر Green:Display Loader Acceptance Test

  • سبز: بهبود لودر Green: Loader Improvement

  • سبز: نمایش پیام خطا Green: Showing Error Message

  • گرین: MVP! Green: MVP!

بسته شدن Closing

  • تبریک می گویم! Congratulations!

  • در تماس باشیم Let's stay in touch

  • یک معمار موبایل شوید Become a Mobile Architect

  • برای ماندن در تماس To Stay in Touch

نمایش نظرات

آموزش Android TDD Masterclass - Coroutines، Jetpack
جزییات دوره
9 hours
120
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
5,650
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Petros Efthymiou Petros Efthymiou

صنعتگر، نویسنده و مدرس نرم افزار