Продвинутая обработка исключений в Kotlin Coroutines: руководство для Android-разработчиков
Обработка исключений в Kotlin Coroutines — это важная тема, особенно когда дело касается асинхронного программирования в Android. В статье рассматриваются следующие ключевые аспекты:
- Общая стратегия обработки исключений
Различие между try-catch, CoroutineExceptionHandler и supervisorScope.
- Глобальная обработка исключений
Использование CoroutineExceptionHandler и его ограничение — он работает только с незахваченными исключениями.
- Обработка исключений в структурированных корутинах
Применение supervisorScope для предотвращения отмены всей иерархии корутин.
- Отлов исключений в async
Важно помнить, что async возвращает Deferred, а исключения в нем не всплывают автоматически. Их нужно ловить через await().
- Ошибка распространения исключений в launch
Запущенные через launch корутины выбрасывают исключения вверх по иерархии, что может привести к неожиданному завершению приложения.
📕 KMP for Mobile Native Developers: The Book
by Santiago Mattiauda.
https://santimattius.github.io/kmp-for-mobile-native-developers-book/ - скачать или читать 📖 на гитхаб
✍ @kotlin_lib
Texty — это библиотека Compose Multiplatform, разработанная Арджуном Джадежей, предназначенная для отображения текста с различными стилями, эффектами и анимациями. Она построена на основе Jetpack Compose Foundation's Basic Text и предоставляет высококонфигурируемый API для создания динамичных и визуально привлекательных текстовых элементов в приложениях для Android, iOS, настольных и веб-платформ.
Основные возможности Texty:
- Разнообразие стилей: Поддержка таких стилей, как скольжение, прокрутка, мигание, затухание, постепенное раскрытие, печать по буквам и базовый стиль.
- Стили для списков: Анимация текста или кадров последовательно, создание плавного потока, а также стили, такие как Motion, OneByOne, Sliding List и Scrolling List.
- Утилиты: Функции загрузки и отображения времени с возможностью настройки формата и интервала обновления.
Установка:
Для использования Texty в вашем проекте добавьте следующую зависимость в файл build.gradle.kts вашего модуля:
dependencies {
implementation("com.arjunjadeja:texty-android:1.0.0-alpha")
}
Убедитесь, что mavenCentral() включен в список репозиториев.
Пример использования:
import com.arjunjadeja.texty.Texty
import com.arjunjadeja.texty.DisplayStyle
@ Composable
fun TextyExample() {
Texty(
text = "Привет, Texty!",
displayStyle = DisplayStyle.Typing()
)
}
https://github.com/ArjunJadeja/Texty