5.9Kпросмотров
21 января 2026 г.
Score: 6.5K
⚙️ Landscapist - новая библиотека для загрузки изображений в Compose Multiplatform Landscapist — это модульная библиотека для загрузки изображений, построенная специально для Compose. В отличие от монолитных решений, она предлагает гибкую архитектуру с поддержкой различных движков загрузки: Glide, Coil и Fresco. Ключевые фичи:
👉 Compose Multiplatform из коробки. Библиотека изначально проектировалась для работы на Android, iOS, Desktop и Web. Один API для всех платформ.
👉 Модульная архитектура. Вы подключаете только то, что нужно. Core-модуль весит минимум, а специфичные функции (placeholder, эффекты, анимации) добавляются отдельными зависимостями.
👉 Декларативные модификаторы. Все возможности библиотеки доступны через Compose-модификаторы, что делает код чище и понятнее.
👉 Продвинутая обработка состояний. Встроенная поддержка loading, success, failure с возможностью кастомизации под каждое состояние.
👉 Эффекты и анимации. Circular Reveal, crossfade, shimmer-эффект — всё это доступно out-of-the-box.
👉 Palette API. Автоматическое извлечение цветовой палитры из изображения для создания адаптивного UI. suspend fun loadImage(url: String) { val request = ImageRequest.builder() .model(url) .size(width = 800, height = 600) .build() landscapist.load(request).collect { result -> when (result) { is ImageResult.Loading -> { println("Loading...") } is ImageResult.Success -> { val imageBitmap = result.data val dataSource = result.dataSource // MEMORY, DISK, or NETWORK println("Loaded from: $dataSource") } is ImageResult.Failure -> { val error = result.reason println("Error: ${error.message}") } } }
} 🐱 Исходный код
📃 Документация #Compose