Сбор взносов

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

Тема в разделе "Курсы по программированию", создана пользователем Астория, 30 дек 2021.

Тема найдена по тегам:
Цена:
2700р.
Взнос:
164р.

Список участников складчины:

1. Астория
Тип: Стандартная складчина
  1. 30 дек 2021
    #1
    Астория
    Астория Организатор
    [Startandroid] Kotlin (Дмитрий Виноградов)
    [​IMG]

    Почему Котлин

    Мое знакомство с Котлин началось на 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.

     
    30 дек 2021