Доступно

[startandroid.ru] Kotlin [Дмитрий Виноградов]

Тема в разделе "Курсы по программированию", создана пользователем startsk, 13 дек 2020.

Цена: 2700р.-85%
Взнос: 404р.
95%

Основной список: 17 участников

Статус обсуждения:
Комментирование ограничено.
  1. 13 дек 2020
    #1
    startsk
    startsk СкладчикСкладчик
    [startandroid.ru] Kotlin [Дмитрий Виноградов]
    kott.png

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

     

    Вложения:

    • kotlin_kurs.png
      kotlin_kurs.png
      Размер файла:
      64,2 КБ
      Просмотров:
      137
    Последнее редактирование модератором: 9 янв 2021
    1 человеку нравится это.
  2. Последние события

    1. skladchik.com
      Складчина доступна.
      9 янв 2021
    2. skladchik.com
      Взнос составляет 202р.
      9 янв 2021
    3. skladchik.com
      Складчина активна.
      9 янв 2021
    4. Javaist
      Javaist не участвует.
      8 янв 2021

    Последние важные события

    1. skladchik.com
      Складчина доступна.
      9 янв 2021
    2. skladchik.com
      Взнос составляет 202р.
      9 янв 2021
    3. skladchik.com
      Складчина активна.
      9 янв 2021
    4. skladchik.com
      Сбор взносов начинается 08.01.2021.
      6 янв 2021
  3. Обсуждение
  4. 8 янв 2021
    #2
    SysTech
    SysTech СкладчикСкладчик
    А курс в видео формате или в виде текста?
     
Статус обсуждения:
Комментирование ограничено.