Андроид-приложение, 35-я неделя
Обновлено 25 октября 2023 года.
«Выстрелил и забыл» (fire and forget)
Идея корутин полагается на принцип «выстрелил и забыл» (fire and forget). То есть разработчик запускает код, но не заботится о том, когда будет получен результат.
Обработка исключений
Функции «эсинк» (async) и «лонч» (launch) используются по-разному для работы с исключениями. Лонч сразу показывает исключение, а эсинк его замалчивает.
Понятия, связанные с корутинами (Coroutine Concepts)
В лабораторной работе были даны новые понятия котлина, вводимые корутинами. Вот как я их интерпретировал (могу ошибаться):
- Джоб (job, задание) — объект, который является ссылкой на корутину.
- Иерархия заданий, иерархия джобов (job hierarchy) — граф-дерево, которое описывает связи «предок — потомок» между корутинами.
- Область видимости корутины (CoroutineScope) — отдельная область видимости; внутри неё работает корутина; это исключает утечку памяти. Лонч и эсинк — это дополнительные функции по отношению к области видимости Корутин Скоуп (CoroutineScope). В исходном коде Андроида область видимости Корутин Скоуп объявлена как интерфейс.
Понятие контекста корутины (CoroutineContext) объясняется в видео с конференции «Котлин конф — 2019».
В оригинальном списке есть ещё диспетчер и другие термины, но я пока не понял, что всё это значит.
Демо (используется канвас и джаваскрипт)
(Если демо внизу не запустилось, перезагрузите страницу. Если это не поможет, значит ваш браузер по какой-то причине не может отобразить мой канвас.)