Практика 10. Glide: загрузка изображений
Цель и задачи
Освоить загрузку изображений по URL через библиотеку Glide, научиться встраивать View в Compose через AndroidView, применять RequestOptions для placeholder/error/transform, реализовать сетку изображений через LazyVerticalStaggeredGrid и добавить поддержку картинок в модель Note.
Что сделано
1. Добавлены зависимости Glide и okhttp3-integration в build.gradle.kts.
2. Добавлено поле imageUrl: String? в модель Note и NoteEntity.
3. Создан ui/GlideImage.kt — Composable-обёртка над Glide через AndroidView.
4. Создан ui/NoteImage.kt — Composable с placeholder и скруглением.
5. Обновлён ui/NoteCard.kt — показ картинки для NoteType.Image.
6. Создан ui/PhotoGalleryScreen.kt — сетка изображений.
7. Обновлён AddNoteDialog — добавлено поле для URL изображения.
Вывод
Освоена библиотека Glide для загрузки изображений по URL — с поддержкой кэширования в памяти и на диске, анимации crossfade, placeholder и error. Изучен интероп Compose ↔ View через AndroidView: ImageView создаётся в factory один раз, а в update вызывается Glide.with().load().into(). Понята важность параметра key в списках с картинками — без него при скролле возможны перепутанные изображения. Добавлено поле imageUrl в модель Note и NoteEntity, что позволило одной карточке поддерживать все три типа заметок. Реализована галерея через LazyVerticalStaggeredGrid — сетка с переменной высотой ячеек, оптимальная для показа изображений.