Що нового?

Придбаний [Startandroid] Kotlin (Дмитро Виноградов)

Інформація про покупку
Тип покупки: Складчина
Ціна: 993 ГРН
Учасників: 0 з 41
Організатор: Відсутній
Статус: Набір учасників
Внесок: 25.2 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор

Чому Котлін

Моє знайомство з Котлін почалося на Google IO 17. Вже тоді стало зрозуміло, що має сенс, як мінімум, звернути на цю мову увагу. А ще краще-вивчити його. Я витратив пару тижнів на офіційні доки і приклади, щоб засвоїти основи. А потім періодично почитував статті з medium, щоб розібратися в більш складних речах. Через півроку я без особливих проблем влився в новий проект на Котліні. І ось уже два роки я пишу тільки на ньому.

Гугл офіційно визнав Котлін, використовує його для прикладів в документації, створює курси і codelabs по ньому, вбудовує його підтримку в свої бібліотеки і фреймворки. Статті на medium.com вже практично все з прикладами на Котлін. Ну і в вакансіях він зустрічається все частіше

Загалом, як мені здається, питання " чи вивчати Котлін?"вже немає сенсу обговорювати.

про що курс
Відразу скажу, що курс не для повних новачків. На офіційному сайті Котлін є хороша документація та інструменти, щоб вивчити і попрактикувати основи. Крім цього є купа навчальної літератури для початківців. Тому я вирішив розглядати тільки теми, розуміння яких може виявитися складним. Це такі теми, як Coroutines, DSL, Inline functions, Operator overloading, Delegated properties та інші непрості штуки.

Відповідно, для кращого розуміння курсу краще вже мати хоча б невеликий досвід роботи з Котлін. Так буде легше зрозуміти матеріал.

Першою темою курсу будуть корутины. Я планую розглянути наступні питання:
  • чому suspend функції не блокують потік
  • як створити suspend функцію
  • що таке Continuation, Job, Scope, корутина, диспетчер
  • що відбувається всередині білдерів
  • чим білдери відрізняються один від одного
  • як зсередини працює зв'язок між батьківською та дочірньою корутиною
  • як відбувається обробка помилок
  • як використовувати корутіни в Android
У міру написання курсу буду оновлювати цей список.

Урок 1. Корутины. Введення.
У цьому уроці почнемо розбиратися, що таке корутіна і suspend функція.

Урок 2. Корутины. Continuation
У цьому уроці розберемо, що таке Continuation і як suspend функція призупиняє код, не блокуючи потік.

Урок 3. Корутины. Suspend функції
У цьому уроці детально розберемо як створити suspend функції. Також розглянемо, чи можна блокувати потік, як корутіна може загубитися і навіщо потрібно слово suspend.

Урок 4. Корутины. Continuation, повернення значень.
У цьому уроці розглянемо більш детально, як Continuation обробляє відповідь від suspend функцій. А також, як корутіна може повернути будь-яке значення, як результат своєї роботи.

Урок 5. Корутины. Suspend функції зсередини.
У цьому уроці розбираємо, як працює suspend функція зсередини. Як вона може повернути значення відразу або після асинхронної роботи.

Урок 6. Корутины. Job.
У цьому уроці починаємо розбиратися, що з себе представляє корутіна. З яких об'єктів вона складається і що відбувається під час її виконання.

Урок 7. Корутины. Scope.
У цьому уроці розглянемо, що таке Scope і як створити його найпростіший варіант.

Урок 8. Корутины. Скасування.
У цьому уроці запускаємо і скасовуємо корутіни. Перевіряємо, як корутіни впливають на основний потік.

Урок 9. Корутины. Білдери launch і async.
У цьому уроці розглянемо білдери launch і async. Як поводяться вкладені корутіни. Як дочекатися закінчення роботи корутіни, і як отримати результат цієї роботи. Як створити відкладену корутину і запустити її пізніше. Як розпаралелювати завдання за допомогою корутин.

Урок 10. Корутины. Context.
У цьому уроці розбираємося з Context. Які його елементи використовуються за замовчуванням. Як створювати свій елемент. Як відбувається передача елементів в контекст створюваної корутіни.

Урок 11. Корутины. Dispatcher.
У цьому уроці розглянемо основні види диспетчерів. Також поговоримо про те, що відбувається під капотом корутін при використанні диспетчера.

Урок 12. Корутины. Зв'язок між батьківською та дочірньою корутиною.
У цьому уроці розбираємося, як створюється дочірня корутіна. Розглянемо, як формується її контекст, і як працює її зв'язок з батьківською корутіною.

Урок 13. Корутины. Обробка винятків.
У цьому уроці розглянемо як можна обробити винятки, що виникають в корутіне. Розберемо, що відбувається під капотом і як працює CoroutineExceptionHandler.

Урок 14. Корутины. Обробка винятків. Вкладені корутины.
У цьому уроці продовжуємо обговорювати обробку винятків на прикладі вкладених корутин.

Урок 15. Корутины. Обробка винятків. Async, suspend.
У цьому уроці розбираємося до чого призводять винятки в async корутіне і в suspend функціях.

Урок 16. Корутины. Скасування-це помилка.
У цьому уроці обговорюємо як працює скасування корутін під капотом.

Урок 17. Корутины. coroutineScope, supervisorScope, withContext, runBlocking.
У цьому уроці обговорюємо функції coroutineScope, supervisorScope, withContext, runBlocking.

Урок 18. Корутины. Канал.
У цьому уроці розбираємося як працюють канали. Що під капотом, закриття і скасування каналу, буфер, produce, consume, broadcast.

Урок 19. Корутины. Flow.
У цьому уроці розбираємося що таке Flow, як він працює під капотом і чим відрізняється від каналів.

Урок 20. Корутины. Flow. Білдери і прості оператори.
У цьому уроці розглянемо способи створення Flow, прості оператори і створення своїх операторів.

Урок 21. Корутины. Flow. Оператори channelFlow, flowOn, buffer, produceIn.
У цьому уроці розглядаємо оператори channelFlow, flowOn, buffer, produceIn.

Урок 22. Корутины. Flow. Помилка, скасування, повтор.
У цьому уроці розглядаємо оператори catch, retry, retryWhen і можливість скасування Flow.

Урок 23. Корутины. Практика. Scope, LiveData.
У цьому уроці розглядаємо Білдер liveData і оператори для отримання scope: viewModelScope, lifecycleScope, MainScope.

Урок 24. Корутины. Практика. Retrofit.
У цьому уроці розглядаємо інтеграцію корутін в Retrofit.

Урок 25. Корутины. Практика. Room
У цьому уроці розглядаємо інтеграцію корутін в Room.

Урок 26. Корутины. Практика. Приклади використання.
У цьому уроці використовуємо корутіни в нескладних прикладах з репозиторієм і UseCase

Урок 27. Корутины. Практика. Паралельна робота.
У цьому уроці ми називаємо suspend функції паралельно, а не послідовно.

Урок 28. Корутины. Flow. SharedFlow і StateFlow.
У цьому уроці детально розбираємо що таке SharedFlow і StateFlow.
https://privatelink.de/?https://startandroid.ru/ru/courses/kotlin.html
 
Угорі