Андроид-приложение, 35-я неделя

Обновлено 25 октября 2023 года.

«Выстрелил и забыл» (fire and forget)

Идея корутин полагается на принцип «выстрелил и забыл» (fire and forget). То есть разработчик запускает код, но не заботится о том, когда будет получен результат.

Обработка исключений

Функции «эсинк» (async) и «лонч» (launch) используются по-разному для работы с исключениями. Лонч сразу показывает исключение, а эсинк его замалчивает.

Понятия, связанные с корутинами (Coroutine Concepts)

В лабораторной работе были даны новые понятия котлина, вводимые корутинами. Вот как я их интерпретировал (могу ошибаться):

  • Джоб (job, задание) — объект, который является ссылкой на корутину.
  • Иерархия заданий, иерархия джобов (job hierarchy) — граф-дерево, которое описывает связи «предок — потомок» между корутинами.
  • Область видимости корутины (CoroutineScope) — отдельная область видимости; внутри неё работает корутина; это исключает утечку памяти. Лонч и эсинк — это дополнительные функции по отношению к области видимости Корутин Скоуп (CoroutineScope). В исходном коде Андроида область видимости Корутин Скоуп объявлена как интерфейс.

Понятие контекста корутины (CoroutineContext) объясняется в видео с конференции «Котлин конф — 2019».

В оригинальном списке есть ещё диспетчер и другие термины, но я пока не понял, что всё это значит.

Демо (используется канвас и джаваскрипт)

(Если демо внизу не запустилось, перезагрузите страницу. Если это не поможет, значит ваш браузер по какой-то причине не может отобразить мой канвас.)