Как стать автором
Обновить
4.25

Jetpack Compose *

декларативный UI Framework для Android

Сначала показывать
Порог рейтинга
Уровень сложности

Эффекты в Jetpack Compose, лежащие на поверхности

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.9K

Всем привет! Меня зовут Владимир, и я мобильный разработчик в компании «Финам». В своих проектах мы активно используем Jetpack Compose, в котором, несмотря на растущую популярность, получение некоторых визуальных эффектов до сих пор не так очевидно, как хотелось бы. В этой статье рассмотрен один из способов «наложения» различных эффектов рендеринга на уже готовый контент.

Читать далее

Новости

Рекомендации по Jetpack Compose: от основ к масштабируемым UI

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.1K

Всем привет!

В этой статье мы будем обсуждать, как писать масштабируемые и поддерживаемые интерфейсы на Jetpack Compose: от базовых компонентов до архитектурных практик. Разбираем иерархию, принципы проектирования, naming, порядок параметров и антипаттерны.

Думаю, что статья будет полезна как новичкам, так и опытным разработчикам.

Читать далее

Индикация клика на стероидах в Compose: пишем свою IndicationNodeFactory

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.4K

При работе с Jetpack Compose разработчики часто не замечают, как элементы Material и Material 3 дизайн-систем вплетаются в их код. Один из таких элементов - это индикация клика, реализованная в Material как круги на воде (англ. ripple effect). В этой статье мы разберем, в чем недостатки дефолтной реализации риппл-эффекта в Compose и как сделать свою.

Читать далее

Создание кастомного тултипа Jetpack Compose

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.6K

Привет, Хабр! Меня зовут Альберт, я Android-разработчик в команде интеграции рассрочки в приложении Wildberries.

В этой статье мы напишем простенькую реализацию тултипов на Jetpack Compose своими руками.

Читать далее

Типобезопасная передача результатов между экранами в Compose с Jetpack Navigation

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.7K

Приветствую Android-комьюнити! Меня зовут Арсений Шпилевой, я Core-разработчик в команде WB Partners. В этой небольшой статье я расскажу, как мы в проекте решили обеспечить типобезопасность при передаче возвращаемых результатов между родительским и дочерним экранами с применением библиотеки Compose Navigation. Мы рассмотрим механизм, который помогает избежать типичных ошибок и делает код более поддерживаемым.

Читать далее

Мастерство фокусов на Compose (часть 2): как работает запрос фокуса

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров1.5K

Привет! Меня зовут Костя, я Android-разработчик в онлайн-кинотеатре PREMIER. В процессе работы над проектом PREMIER для AndroidTV я столкнулся с тем, что в Jetpack Compose механизм фокусов — достаточно сложная и неочевидная тема. А информации в интернете об этом очень мало, особенно о специфичных сценариев вроде ТВ-приложений или устройств без сенсорного ввода.

Поэтому я решил разобрать тему фокусов в Compose максимально подробно, чтобы помочь разработчикам лучше понять этот механизм и избежать типичных ошибок. В первой статье на эту тему мы уже разобрали базовую структуру фокусировки в Compose. Теперь пришло время углубиться в технические детали: что именно происходит, когда вызывается requestFocus(), как Compose выбирает элемент для фокусировки и какие изменения были внесены в Compose 1.8, чтобы улучшить этот процесс.

Если вы работаете с приложениями под Android TV, кастомными компонентами или просто хотите лучше понимать, как работает система фокусов, эта статья для вас.

Читать далее

ML KIT — Современное решение для сканирования в Android приложениях

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.2K

ML Kit - это мощный инструмент для работы с камерой в андроид приложениях.

Библиотека от компании Google ML Kit предлагает набор встроенных API, которые могут работать как на самом девайсе, так и в облаке.

ML Kit - это мощный инструмент для работы с камерой в Android и IOS приложениях.

Читать далее

Paging3 в стиле Compose: секретный DSL, о котором молчат все Android-разработчики

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.7K

В статье описан путь преобразования предложенного экспертами Google способа отображения страничных данных с использованием библиотеки Paging3 и Compose от развесистого сборника if'ов и when'ов, вероломно нарушающего все границы архитектурных слоев, до чистого, лаконичного и затягивающего в себя DSL.

Погрузиться в магию

Мастерство фокусов на Compose

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров4.2K

Привет! Меня зовут Костя, я Android-разработчик в онлайн-кинотеатре PREMIER. Среди прочего у нас есть приложение для Android TV. Работая над ним, я столкнулся с тем, что система фокусов в Jetpack Compose устроена сложнее, чем кажется на первый взгляд. Поскольку для ТВ-приложений и устройств без сенсорного управления работа с фокусом играет ключевую роль в навигации, мне понадобилось детально разобраться в теме. Результатами делюсь в статье.

Читать далее

Jetpack Compose для Android TV: как происходит перемещение фокуса

Время на прочтение10 мин
Количество просмотров1.5K

Привет, Хабр! Меня зовут Сергей Захаров, я разработчик в онлайн-кинотеатре KION. Jetpack Compose постепенно становится стандартом разработки UI для Android, и Android TV не остался в стороне. Вместо устаревшего и громоздкого Leanback теперь есть гибкий и мощный фреймворк, который обещает упростить разработку.

Однако на Android TV ключевую роль играет управление фокусом — без него невозможна навигация. Как же Compose справляется с этой задачей? Достаточно ли он удобен для больших TV-проектов, или лучше ограничиться им в мобильных приложениях? В этом и следующих материалах я отвечу на эти вопросы на примере конкретных кейсов. 

Это первый пост моего цикла про работу с фокусом в Jetpack Compose. В нем я расскажу, как в Jetpack Compose перемещается фокус, рассмотрю используемые при этом компоненты, покажу их плюсы и минусы, а также дам рекомендации по их применению в приложениях для Android TV.

Читать далее

Часть 2: XML или Compose — что выбрать, и что нужно знать перед выбором

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров3.7K

Автор: Android-разработчик с 7+ годами опыта, знающий толк в FrameLayout, merge, include, RecyclerView, а теперь и Modifier.padding.

Читать далее

Сканирование баркодов c помощью камеры и внешних устройств в Compose

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.2K

В этой статье рассмотрим, как сканировать баркоды в Android — приложениях, а также как в Compose работать с камерой (предпросмотр и логика сканирования), а также и как поддерживать внешние сканеры.

Читать далее

XML vs Compose, не можете решить? Часть 1: Введение

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров3.3K

Jetpack Compose — не просто «альтернатива XML». Это совершенно другой парадигмальный сдвиг в том, как Android отрисовывает и управляет UI. Но чтобы по‑настоящему понять, чем Compose отличается от привычного XML, давайте посмотрим, что происходит под капотом в каждом случае.

Читать далее

Ближайшие события

Автоматизация версионирования в Kotlin Multiplatform: Решение для Android и iOS

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.3K

Привет, Хабр!

В этой статье я делюсь решением, как настроить версионирование приложения для Android и iOS с помощью Kotlin Multiplatform. Я рассказываю о том, как минимизировать человеческий фактор, автоматизировав процесс обновления версий, и как избежать дублирования информации в разных частях проекта. В статье представлен пример кода, который можно адаптировать под свой проект.

Читать далее

Kelp — IDE-плагин для кастомных дизайн-систем на Jetpack Compose

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.7K

Kelp — мощный плагин для Android Studio, разработанный для улучшения поддержки кастомных дизайн-систем на Jetpack Compose в Android Studio.

Основные фичи:
🔧 Настраиваемые иконки для компонентных функций
🎨 Иконки дизайн-системы
🌈 Предпросмотр цветов
📱 Интеграция демоприложения (автоматическое скачивание и установка APK-файла и deeplinking на страницу компонента)
🖼️ Рендеринг изображений в KDoc
⌨️ Шаблоны кода (Live Templates)

И 🐘 Gradle Plugin, скачивающий демоприложение и проверяющий наличие IDE-плагина.

Читать далее

Coil и Yandex MapKit KMP: рисуем аватарки на карте. Часть 3

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров671

В этой статье я рассказываю, как интегрировать библиотеку Coil для загрузки и отображения изображений на картах, используя Yandex MapKit KMP Compose. Вы узнаете, как настроить API ключ, использовать экспериментальный API imageProvider и разобраться с особенностями работы на Android и iOS.

Читать далее

Delight SQL Viewer: отладка SQLDelight-базы прямо в приложении

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров973

Привет! Хочу поделиться инструментом, который значительно упростит жизнь тем, кто использует SQLDelight для работы с базами данных в Kotlin Multiplatform-проектах. Этот инструмент называется Delight SQL Viewer.

Читать далее

Управление зависимостями: как работать с Koin scopes в Jetpack Compose Navigation

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров6.6K

Привет, Хабр! Меня зовут Артем и я автор и ведущий YouTube и Telegram каналов Android Insights.

В этой статье я рассмотрю, как использовать Koin scopes в связке с Jetpack Compose Navigation, чтобы эффективно управлять зависимостями на разных уровнях навигационного графа.

Читать далее

Как синтаксический сахар Kotlin может сломать вам логику работы приложения

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров11K

Как использование object и data class сломало работу моего приложения и какие уроки я вынес про синтаксический сахар Kotlin и IDEA, которая так сладко предлагает замены.

Подробности

Управление настройками с помощью Jetpack DataStore: Простой подход к сохранению данных разных типов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.6K

Всем здравствуйте. Это моя первая статья на такую публику, поэтому просьба не судить строго! :-)

При разработке Android-приложений часто возникает необходимость сохранять пользовательские настройки, такие как выбор темы, язык или другие данные пользователя. Jetpack DataStore — это современное решение для хранения таких данных, которое заменяет устаревший SharedPreferences. В этой статье мы рассмотрим, как использовать DataStore для хранения различных типов данных (Boolean, Integer, Float и String) и как интегрировать его с архитектурой MVVM, используя StateFlow для обновления UI.

Что такое DataStore?

Jetpack DataStore — это библиотека для хранения данных, поддерживающая асинхронное и безопасное чтение и запись данных. Она предоставляет два типа хранилищ:

1. Preferences DataStore: Используется для хранения пар "ключ-значение" (похож на SharedPreferences).

2. Proto DataStore: Используется для хранения структурированных данных на основе протокольных буферов.

В этой статье мы сосредоточимся на Preferences DataStore, которое идеально подходит для хранения настроек приложения.

Читать далее