Обновить
0.5

Jetpack Compose *

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

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

Как мы в Яндекс Путешествиях на Compose стёкла морозили

Время на прочтение5 мин
Охват и читатели1.2K

Всем привет! Меня зовут Антон Урывский, я Android-разработчик в Яндекс Вертикалях. Мы создаём знакомые всем сервисы: Яндекс Путешествия, Недвижимость и Аренда, Авто.ру. 

Сегодня я поделюсь опытом создания фичи, которая блюрит не содержимое View, а всё, что находится под ним. На iOS такой эффект морозного стекла достигается достаточно легко, а вот на Android всё не так просто, и я уверен, что многие разработчики сталкивались со сложностями при работе с ним. 

Моё большое путешествие началось со специфического ТЗ: заблюрить всё под View. «Приятным бонусом» стали поддержка на API 28–35. Для тех, кто не в курсе, BlurRenderEffect из коробки доступен только с API 31 с реализацией средствами Compose. А для нас очень важно, чтобы даже пользователи более старых смартфонов могли пользоваться всеми функциями приложения и видеть их так, как задумывала команда.

Вот и все вводные. Можем поплакать и начать.

Читать далее

Архитектура кроссплатформенного многомодульного приложения

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели7K

Хочу поделиться своим опытом создания кроссплатформенного приложения на базе kotlin-multiplatform (KMP), организации его архитектуры, настройки для работы с различными библиотеками и особенностями его работы. Статья подойдет в первую очередь разработчикам, которые уже имеют опыт с многомодульными проектами в android и начинают изучать KMP. В конце я опишу свою реализацию архитектурного паттерна MVI и его применение в проекте.

Читать далее

Shared Element Transition в Jetpack Compose

Время на прочтение6 мин
Охват и читатели1.2K

Привет, Хабр! Меня зовут Артем и я занимаюсь разработкой приложений под Android, а еще с недавнего времени я стал рассказывать об этом.

Это текстовый вариант видео на моем YouTube канале Android Insights

В этой статье я хочу рассказать о том, как можно оживить ваше приложение, используя Shared Element Transition в Jetpack Compose

Читать далее

Как мы реализовали кнопку со свайпом на Jetpack Compose

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели9.9K

Привет, Хабр! Меня зовут Женя Мельцайкин, я работаю в команде мобильной разработки Контура.

Мы разрабатываем экосистему для бизнеса, которая оптимизирует рутинные задачи: работу с маркировкой, проверку контрагентов, товароучет, документооборот, отчетность. И в одном из продуктов работаем с подписанием электронных документов. Электронная подпись — это юридически значимая операция, поэтому важно не допустить ошибки пользователя.

В статье расскажу, как мы сделали кнопку по проведению жеста свайпом на Jetpack Compose, чтобы избежать случайной подписи документа.

Читать далее

Рекомпозиция в Compose: что не видно разработчику невооруженным глазом

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

Всем привет! Меня зовут Данила, я Android-разработчик в команде, которая занимается созданием супераппа WorksPad и почтового клиента RuPost Desktop.

Все новые фичи в проекте пишутся на Compose. Нужно было разобраться в нюансах использования, поэтому встал вопрос о повышении собственной квалификации.

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

Большинство поддержало меня в том, чтобы я переложил нашу встречу в формат статьи. Все что вы увидите ниже — и есть тот самый гайд. В нем я постарался простыми словами объяснить, как устроен процесс построения UI на Compose.

Читать далее

Обзор архитектуры Compose с использованием паттерна «координатор»

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

В этой статье рассмотрим, пример реализации архитектуры UI-слоя на Compose, которая основывается на Uni-directional data flow и state hoisting с использованием паттерна «координатор» для навигации. Вдохновением для меня послужила эта публикация, но я решил подробнее развернуть поднятую в ней тему архитектуры Compose и навигации.

Читать далее

Telegram Desktop и Compose Multiplatform

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.1K

Всем привет! В своей прошлой статье я рассказывал как можно запустить Telegram клиент в качестве backend‑сервиса. В описываемой там библиотеке с тех пор были внесены некоторые оптимизации, и в целом, я остался доволен возможностями, которые получил. После чего возникло желание добавить визуальную часть к имеющемуся бэкенду и заодно изучить что‑то новое для себя. Выбор пал на фреймворк Compose Multiplatform. Давайте сделаем десктопную версию Telegram!

Читать далее

Drag and Drop в Jetpack Compose

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.2K

В январе 2024, крупное обновление Jetpack Compose добавило два новых модификатора: dragAndDropSource и dragAndDropTarget. В этой статье я расскажу как реализовать эффект Drag and Drop в Jetpack Compose.

Читать далее

Android-приложение на Compose с нуля: Часть 2 (UI)

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели12K

Здравствуй, дорогой читатель!

В статье рассматривается поэтапная разработка дизайн-системы и UI для Android-приложения "Калькулятор", используя библиотеку Jetpack Compose. Начнём с создания проекта и закончим запуском приложения на эмуляторе.

Ссылка на репозиторий

Читать далее

Внедрение библиотеки навигации Modo в многомодульный Compose проект

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

Часто, когда мы начинаем работать в многомодульном проекте, то часто приходится искать решения для проблем, которые уже решены для мономодульного проекта. И если возникают вопросы с навигацией, ситуация становится еще более интересной. Как один из вариантов решения этой проблемы, можно ознакомиться с применением библиотеки Modo в многомодульном проекте.

Читать далее

Как увеличить шрифт так, чтобы контейнер не поехал? Адаптация UI/UX для людей с проблемами зрения в XML и Compose

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели3.9K

Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я продолжу рассказывать о современных подходах разработки адаптивного UI /UX для людей с ограниченными возможностями, разных национальностей и особенностями развития. В этой статьей я расскажу про разработку интерфейсов в XML и Compose для варьирующего размера шрифта. А также покажу почему атрибут contentDescription так важен.

Читать далее

Осознанная оптимизация Compose 2: В борьбе с композицией

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели21K

Jetpack Compose постоянно развивается, открывая перед разработчиками новые горизонты для оптимизации. С момента нашего последнего обзора, мы добились значительного прогресса, сократив задержки при скролле с 5-7% до нуля. В этом материале мы поделимся свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему, рекомендуем ознакомиться с первой частью.

Читать далее

Делаю навигацию в приложении на Compose

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

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

Статья является продолжением серии статей про то, как я писал приложение полностью на Compose и применял различные практики, чтобы сделать его максимально похожим на конструктор, части которого можно легко использовать для сборки других приложений.

Читать далее

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

Двигай рукой справа налево: адаптация интерфейса в Android приложении под RTL в XML и Jetpack Compose

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

В общении важно уважать привычки и культурный контекст людей. Это относится и к мобильным приложениям. В статье рассказываю о культурном аспекте — чтении.

Рассмотрим как адаптировать интерфейс под RTL в XML и Jetpack Compose.

Читать далее

Как реализовать App shortcuts в Android

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

Я — Денис, Android-разработчик в «Лайв Тайпинге». В этой статье я расскажу о том как добавить поддержку App shortcuts в Jetpack Compose. Я поделюсь опытом создания шорткатов на примере мобильного приложения — мессенджера.

Читать далее

Как я приложение на Compose писал

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели9.6K

Далеко не новость, что в мобильной разработке под Android развивается новый подход к построению UI. Он же Compose. Он же плейбой, филантроп и просто классная функционалочка, которая колоссально упрощает жизнь в процессе верстки пользовательского интерфейса. 

В статье будет рассказана небольшая история создания приложения под Android полностью на Compose и о том, на сколько сильно применение Compose на продуктиве упрощает и ускоряет разработку. Личный опыт автора, которым он (то бишь я) хочет с вами поделиться.

Читать далее

Заводим Яндекс Карты в Compose Multiplatform

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

Привет! Это мой первый пост на Хабре, буду рад услышать профессиональное и не очень мнение по поводу этой статьи.

Реализуем Яндекс Карты в KMP проекте с использованием Compose Multiplatform. Нестандартное решение с интерфейсом на Swift и передачей кода через DI.

Читать далее

remember «Forever». Как сохранить скролл при уходе с экрана

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

Всем привет! Меня зовут Константин и я лид мобильной команды в финтех компании PeterPartner.

В этой статье решим проблему сохранения состояний экрана при навигации между экранами используя Jetpack Compose

Читать далее

Списки с душой и стилем: Ваш путь к Jetpack Compose

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели18K

С каждым днём всё больше и больше разработчиков присоединяются к использованию Jetpack Compose. Этот рост связан с тем, что фреймворк предлагает ускоренную и упрощённую разработку пользовательского интерфейса (UI).

Если ранее вы разрабатывали приложения с использованием Android View, то переход на Jetpack Compose будет естественным шагом. В этой статье мы сфокусируемся на работе со списками в Jetpack Compose, так как списки являются неотъемлемой частью большинства приложений.

Читать далее

Как стилизовать текст на Compose через Spannable

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели7.7K

Как часто вам приходилось стилизовать текст в jetpack Compose, хайлайтить ссылки, обрабатывать клики по ним? Скорее всего вы использовали только AnnotatedString, но что, если чуть-чуть добавить магии старого доброго Spannable?

Читать далее