Accompanist – что это за библиотеки и какая у них судьба
- Сейчас Accompanist включает в себя Pager, FlowLayouts, Navigation Transitions, Swipe Refresh и другие компоненты
- Основная цель Accompanist – тестировать пользу от фичей, пока не готовых к добавлению в Jetpack
- Эти фичи нельзя включать напрямую в AndroidX, так как использовать экспериментальный API между модулями запрещено
- 30% приложений, использующих Compose, используют и Accompanist
- Сейчас Accompanist включает в себя Pager, FlowLayouts, Navigation Transitions, Swipe Refresh и другие компоненты
- Основная цель Accompanist – тестировать пользу от фичей, пока не готовых к добавлению в Jetpack
- Эти фичи нельзя включать напрямую в AndroidX, так как использовать экспериментальный API между модулями запрещено
- 30% приложений, использующих Compose, используют и Accompanist
Medium
Jetpack Compose Accompanist — An FAQ.
Accompanist is a group of libraries that aim to supplement Jetpack Compose with features that are commonly required by developers but not…
Официальный гайд по архитектуре offline-first приложений
Основные требования к offline-first приложению: оставаться раьотоспособным без сетевого соединения, всегда показывать локальные данные, не дожидаясь ответа сервера, запрашивать обновления сервера с учетом ограничений сети и батареи. В гайде даются советы, как:
- Организовать слой данных с двумя репозиториями – для локального хранения и работы с удаленными данными
- Построить операции чтения и записи данных
- Обрабатывать ошибки
- Решать конфликты при синхронизации
Основные требования к offline-first приложению: оставаться раьотоспособным без сетевого соединения, всегда показывать локальные данные, не дожидаясь ответа сервера, запрашивать обновления сервера с учетом ограничений сети и батареи. В гайде даются советы, как:
- Организовать слой данных с двумя репозиториями – для локального хранения и работы с удаленными данными
- Построить операции чтения и записи данных
- Обрабатывать ошибки
- Решать конфликты при синхронизации
onBackPressed() deprecated
Начиная с Android 13, метод onBackPressed() депрекейтится. Причина в том, что обработка перехода назад переводится на ahead-of-time модель.
Начиная с Android 13, метод onBackPressed() депрекейтится. Причина в том, что обработка перехода назад переводится на ahead-of-time модель.
This media is not supported in your browser
VIEW IN TELEGRAM
v9 – библиотека для работы с векторными изображениями
- v9 позволяет динамически ресайзить Path-объекты, сохраняя изначальные размеры некоторых из их частей
- Аналогичным образом работают 9-patch bitmaps
- Автор библиотеки – Romain Guy, ключевой разработчик Compose и Android
- v9 позволяет динамически ресайзить Path-объекты, сохраняя изначальные размеры некоторых из их частей
- Аналогичным образом работают 9-patch bitmaps
- Автор библиотеки – Romain Guy, ключевой разработчик Compose и Android
Cross device SDK Developer Preview
Cross device SDK – это набор API для разработки приложений, которые работают сразу на нескольких типах устройств. Оно помогает со следующими задачами:
- Найти девайсы рядом с текущим и соединиться с ними
- Пошарить стейт между приложениями на разных устройствах
- Запустить приложение на второстепенном устройстве без запуска его на основном
- Начать выполнять задачу на одном устройстве и продолжить на другом
📹Детальное видео
📝Документация
Cross device SDK – это набор API для разработки приложений, которые работают сразу на нескольких типах устройств. Оно помогает со следующими задачами:
- Найти девайсы рядом с текущим и соединиться с ними
- Пошарить стейт между приложениями на разных устройствах
- Запустить приложение на второстепенном устройстве без запуска его на основном
- Начать выполнять задачу на одном устройстве и продолжить на другом
📹Детальное видео
📝Документация
Как писать плагины для Danger CI
- Danger – это система для автоматизации сообщений во время автоматического code review. По сути, она умеет брать output любых анализаторов кода и превращать его в понятные сообщения в GitHub PR.
- Автор статьи подключает ktlint к Danger и на его примере показывает, как решить такую задачу и для других проверок.
- Danger – это система для автоматизации сообщений во время автоматического code review. По сути, она умеет брать output любых анализаторов кода и превращать его в понятные сообщения в GitHub PR.
- Автор статьи подключает ktlint к Danger и на его примере показывает, как решить такую задачу и для других проверок.
Онлайн-книга про алгоритмы
Большая коллекция статей про различные виды алгоритмов, структур данных и связанных с этим областей знаний.
Большая коллекция статей про различные виды алгоритмов, структур данных и связанных с этим областей знаний.
Как избежать бойлерплейта при работе с Use Cases
Одна из основных проблем чистой архитектуры и юзкейсов в частности состоит в том, что в ряде случаев они становятся просто бесполезными прослойками над репозиторием. Автор разбирает плюсы и минусы четырех подходов к их организации.
Оптимальный способ их организации – функциональные юзкейсы с функциональными интерфейсами.
Одна из основных проблем чистой архитектуры и юзкейсов в частности состоит в том, что в ряде случаев они становятся просто бесполезными прослойками над репозиторием. Автор разбирает плюсы и минусы четырех подходов к их организации.
Оптимальный способ их организации – функциональные юзкейсы с функциональными интерфейсами.
Серия статей про MVI на стейт-машине
В серии статей разбирается, как реализовать MVI архитектуру без втаскивания в проект лишних зависимостей.
1️⃣ Основные идеи
2️⃣ Обвязка
3️⃣ Многомодульность и мультиплатформа
💻 Код на GitHub
В серии статей разбирается, как реализовать MVI архитектуру без втаскивания в проект лишних зависимостей.
1️⃣ Основные идеи
2️⃣ Обвязка
3️⃣ Многомодульность и мультиплатформа
💻 Код на GitHub
Pokedex – пример современного Android приложения
Pokedex – MVVM приложение, которое использует все последние архитектурные рекомендации Google. Технический стек:
💉Hilt
🔀Coroutines
🌊Flow
📦Room
🎨Material Design
💻KSP
Pokedex – MVVM приложение, которое использует все последние архитектурные рекомендации Google. Технический стек:
💉Hilt
🔀Coroutines
🌊Flow
📦Room
🎨Material Design
💻KSP
Wear OS Tiles Material Library
- В новой библиотеке есть базовые компоненты для построения любого тайла: кнопки, индикаторы прогресса, текст
- Начиная с Android Studio Dolphin есть возможность устанавливать и запускать тайл прямо из IDE
🎨 Детальные гайдлайны
💻 Примеры кода
- В новой библиотеке есть базовые компоненты для построения любого тайла: кнопки, индикаторы прогресса, текст
- Начиная с Android Studio Dolphin есть возможность устанавливать и запускать тайл прямо из IDE
🎨 Детальные гайдлайны
💻 Примеры кода
Интерактивный курс AtomicKotlin в IntelliJ
- AtomicKotlin – книга и курс для тех, кто только вкатывается в Kotlin и хочет разобраться, как писать идиоматичный код
- Курс и все задания доступны в виде бесплатного плагина для IntelliJ
- AtomicKotlin – книга и курс для тех, кто только вкатывается в Kotlin и хочет разобраться, как писать идиоматичный код
- Курс и все задания доступны в виде бесплатного плагина для IntelliJ
JetBrains Marketplace
AtomicKotlin - Edu Plugin | Marketplace
These are examples and exercises accompanying the Atomic Kotlin book. These materials are designed for both dedicated novices and experienced programmers – no...
Советы по оптимизации перфоманса Compose
Еще одна подборка рекомендаций по тому, как организовывать Compose код, чтобы избежать лишних рекомпозиций и других дорогостоящих операций.
Еще одна подборка рекомендаций по тому, как организовывать Compose код, чтобы избежать лишних рекомпозиций и других дорогостоящих операций.
getstream.io
Jetpack Compose Best Practices for Optimizing Your App
In this article, you’ll learn how to optimize your app performance following Stream’s top six Jetpack Compose guidelines.
Лучшие практики работы с Flow
🙅♀️Не используйте Flow, если не работаете со стримами. В большинстве случаев вам достаточно обычных suspend-функций.
⚠️Используйте оператор catch() для потоковой обработки ошибок
🤔Уменьшайте уровень вложенности кода с помощью .launchIn(scope)
💉Инжектируйте диспатчеры с помощью flowOn для улучшения тестируемости
🙅♀️Не используйте Flow, если не работаете со стримами. В большинстве случаев вам достаточно обычных suspend-функций.
⚠️Используйте оператор catch() для потоковой обработки ошибок
🤔Уменьшайте уровень вложенности кода с помощью .launchIn(scope)
💉Инжектируйте диспатчеры с помощью flowOn для улучшения тестируемости
Talking Kotlin про Compose в CashApp
Джейк Уортон рассказывает про то, как CashApp переехал на Compose. А кроме этого активно топит за то, что Compose – на самом деле не UI фреймворк, и зона его применения гораздо шире.
Джейк Уортон рассказывает про то, как CashApp переехал на Compose. А кроме этого активно топит за то, что Compose – на самом деле не UI фреймворк, и зона его применения гораздо шире.
YouTube
Compose in Cash App with Jake Wharton and Saket Narayan | Talking Kotlin
This time we are talking to Jake Wharton and Saket Narayan about how Kotlin and Compose are used in Cash App and why “it is time for XML to die!”
Molecule library - https://github.com/cashapp/molecule
#Kotlin #Compose
Molecule library - https://github.com/cashapp/molecule
#Kotlin #Compose
8 сентября в 19:00 пройдет совместный митап Rambler&Co и Okko для разработчиков.
Обсудят интересные темы про мобильную разработку: как сохранить непрерывность процессов, когда не знаешь, что случится завтра; реально ли запустить приложение за 3 дня; можно ли подружиться с техподдержкой Apple TV.
Регистрируйся, чтобы получить ссылку на встречу или прийти лично, зови друзей и коллег.
Обсудят интересные темы про мобильную разработку: как сохранить непрерывность процессов, когда не знаешь, что случится завтра; реально ли запустить приложение за 3 дня; можно ли подружиться с техподдержкой Apple TV.
Регистрируйся, чтобы получить ссылку на встречу или прийти лично, зови друзей и коллег.