Релиз Compose Multiplatform 1.2
Все основные изменения в этом релизе касаются поддержки десктопа:
- Поддержка ProGuard
- API выбора элементов для фокуса с помощью клавиатуры
- Новые модификаторы для работы с мышью и клавиатурой
- Поддержка Conveyor – удобного инструмента для сборки, распространения и менеджмента апдейтов
Все основные изменения в этом релизе касаются поддержки десктопа:
- Поддержка ProGuard
- API выбора элементов для фокуса с помощью клавиатуры
- Новые модификаторы для работы с мышью и клавиатурой
- Поддержка Conveyor – удобного инструмента для сборки, распространения и менеджмента апдейтов
VisualFSM – библиотека визуализации состояний в MVI
- Логика смены состояний в MVI может быть описана в виде конечного автомата.
- Такое описание позволяет автоматически построить понятный граф переходов между этими состояниями, что упрощает анализ системы.
- VisualFSM – библиотека с набором компонентов для организации такого автомата и визуализации его состояний.
- Логика смены состояний в MVI может быть описана в виде конечного автомата.
- Такое описание позволяет автоматически построить понятный граф переходов между этими состояниями, что упрощает анализ системы.
- VisualFSM – библиотека с набором компонентов для организации такого автомата и визуализации его состояний.
Резиз превью Fleet, новой IDE от JetBrains
- Fleet – новая IDE с поддержкой Kotlin, которая может работать как в режиме обычного редактора с ограниченными возможностями по подсветке и навигации, так и в режиме полноценной IDE.
- Релиз еще очень сырой, дальше в разработке фокус будет на перфомансе, API для написания плагинов, поддержке тем.
- Детали есть в видео демо.
- Fleet – новая IDE с поддержкой Kotlin, которая может работать как в режиме обычного редактора с ограниченными возможностями по подсветке и навигации, так и в режиме полноценной IDE.
- Релиз еще очень сырой, дальше в разработке фокус будет на перфомансе, API для написания плагинов, поддержке тем.
- Детали есть в видео демо.
The JetBrains Blog
Introducing the Fleet Public Preview | The Fleet Blog
Since the initial announcement of Fleet, we have had an overwhelming amount of interest from all of you, with over 137,000 people signing up for the private preview. Our reason for starting with a clo
Landskapist – библиотека для работы с изображениями в Compose
- Библиотека загружает изображения с помощью Glide, Coil и Fresco.
- Поддерживает preview mode в Android Studio.
- Поддерживает кучу плагинов и возможность писать собственные: плейсхолдеры, анимации загрузки и отображения, трансформации.
- Библиотека загружает изображения с помощью Glide, Coil и Fresco.
- Поддерживает preview mode в Android Studio.
- Поддерживает кучу плагинов и возможность писать собственные: плейсхолдеры, анимации загрузки и отображения, трансформации.
Новости про TensorFlow Lite в Google Play Services
- TensorFlow Lite, включенный в Google Play Services, теперь считается официальным решением для инференса моделей на устройстве.
- Это значит, что можно больше не тащить TensorFlow самостоятельно.
- Так же в Google Play Services включаются TensorFlow Lite Delegates – расширения, которые позволяют процессить модели с подключением специальных чипов на устройстве и GPU.
- TensorFlow Lite, включенный в Google Play Services, теперь считается официальным решением для инференса моделей на устройстве.
- Это значит, что можно больше не тащить TensorFlow самостоятельно.
- Так же в Google Play Services включаются TensorFlow Lite Delegates – расширения, которые позволяют процессить модели с подключением специальных чипов на устройстве и GPU.
Воркшоп по знакомству с Kotlin Multiplatform Mobile
Выход в Beta подходящий момент, чтобы разобраться с КММ, собрать свой первый проект с шаренным кодом и присмотреться к интеграции в рабочий проект.
Выход в Beta подходящий момент, чтобы разобраться с КММ, собрать свой первый проект с шаренным кодом и присмотреться к интеграции в рабочий проект.
This media is not supported in your browser
VIEW IN TELEGRAM
State Destructuring vs State Delegates
В статье разбирается два подхода к работе с mutable стейтом в Compose и границы их применимости.
В статье разбирается два подхода к работе с mutable стейтом в Compose и границы их применимости.
Вышло ежегодное исследование популярности команд Android разработки
В этом году мы опросили 660 Android-разработчиков, на 40% больше, чем в прошлом! Посмотрите отчет, чтобы узнать:
💰В каких сферах предпочитают работать Android разработчики (спойлер – топ-1 это банки)
📚Какие 10 книг чаще всего рекомендуют для прочтения
🤔Какие каналы и сообщества про Android разработку самые популярные
📃Как много андроидщиков планирует менять работу в этом году
📊Кто входит в топ Android экспертов
🤩В каких компаниях и почему разработчики хотят работать
Исследование проведено при поддержке VK. Пошарьте опрос в своем рабочем чате, мы будем очень рады ❤️
В этом году мы опросили 660 Android-разработчиков, на 40% больше, чем в прошлом! Посмотрите отчет, чтобы узнать:
💰В каких сферах предпочитают работать Android разработчики (спойлер – топ-1 это банки)
📚Какие 10 книг чаще всего рекомендуют для прочтения
🤔Какие каналы и сообщества про Android разработку самые популярные
📃Как много андроидщиков планирует менять работу в этом году
📊Кто входит в топ Android экспертов
🤩В каких компаниях и почему разработчики хотят работать
Исследование проведено при поддержке VK. Пошарьте опрос в своем рабочем чате, мы будем очень рады ❤️
Известность команд Android разработки 2022
Известность команд Android разработки 2022
Рисерч DevCrowd: Известность команд Android разработки 2022
Как работает звук
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.
Приложение Pocket Casts в Open Source
Команда Pocket Casts решила заопенсорсить свои мобильные приложения на GitHub и вести весь процесс разработки открыто.
Команда Pocket Casts решила заопенсорсить свои мобильные приложения на GitHub и вести весь процесс разработки открыто.
Как в Android развивались ограничения работы в фоне
Кирилл Розов проанализировал, как в различных версиях Android менялись ограничения по работе приложений в фоне, какие из них есть и сейчас, и какие особенности есть в их работе.
Кирилл Розов проанализировал, как в различных версиях Android менялись ограничения по работе приложений в фоне, какие из них есть и сейчас, и какие особенности есть в их работе.
Хабр
Как в Android запрещали фоновую работу и улучшали расход батареи
Когда-то работа в фоне была простой. Теперь в Android есть множество ограничений: работа в фоне, доступ к файловой системе, разрешения, на которые надо получить одобрение модераторов Google Play, и...
This media is not supported in your browser
VIEW IN TELEGRAM
Основные анонсы с Android Dev Summit’22
🎁 Появился Gradle BOM, содержащий стабильные версии всех Compose библиотек.
🎨 Стабильный релиз Compose Material 3, а с ним – подробный migration guide.
👨🎨 Альфа-релиз Relay, инструмента для конвертации Figma-компонентов в Compose-код.
🏎 Baseline Profiles стали стабильными.
💻 Большой рефакторинг Compose Modifiers, благодаря которому перфоманс значительно улучшится.
🛠 Много новых фичей в Compose: от возможности рисовать текст на канвасе до модификатора pullRefresh.
🎁 Появился Gradle BOM, содержащий стабильные версии всех Compose библиотек.
🎨 Стабильный релиз Compose Material 3, а с ним – подробный migration guide.
👨🎨 Альфа-релиз Relay, инструмента для конвертации Figma-компонентов в Compose-код.
🏎 Baseline Profiles стали стабильными.
💻 Большой рефакторинг Compose Modifiers, благодаря которому перфоманс значительно улучшится.
🛠 Много новых фичей в Compose: от возможности рисовать текст на канвасе до модификатора pullRefresh.
Обновленные архитектурные рекомендации от Google
Все рекомендации разбиты на три группы:
🔥Strongly recommended (UDF, lifecycle-aware state collection, coroutines and flows)
👍Recommended (не использовать AndroidViewModel, использовать single-activity подход, Hilt)
🤷♂️Optional (рекомендации по неймингу)
Новый контент в рекомендациях:
- Овервью про модуляризацию
- Обзор паттернов модуляризации
- State holders
- Менеджмент стейта UI
- Navigation UI events
- Использование Navigation Compose
Все рекомендации разбиты на три группы:
🔥Strongly recommended (UDF, lifecycle-aware state collection, coroutines and flows)
👍Recommended (не использовать AndroidViewModel, использовать single-activity подход, Hilt)
🤷♂️Optional (рекомендации по неймингу)
Новый контент в рекомендациях:
- Овервью про модуляризацию
- Обзор паттернов модуляризации
- State holders
- Менеджмент стейта UI
- Navigation UI events
- Использование Navigation Compose
This media is not supported in your browser
VIEW IN TELEGRAM
Как в CameraX решаются проблемы совместимости с разными девайсами
CameraX – Jetpack библиотека, которая дает приложениям доступ к камере. Особенности работы с камерой отличаются от устройства к устройству, поэтому одна из ключевых задач CameraX – скрывать внутри себя детали реализации совместимости. В статье раскрываются детали того, как команда с ними работает:
📱Библиотека тестируется на ферме из 150 разных девайсов.
💻Под капотом скрыты 30 костылей, нужных для поддержки конкретных устройств.
📂Поддержка Foldables из коробки.
CameraX – Jetpack библиотека, которая дает приложениям доступ к камере. Особенности работы с камерой отличаются от устройства к устройству, поэтому одна из ключевых задач CameraX – скрывать внутри себя детали реализации совместимости. В статье раскрываются детали того, как команда с ними работает:
📱Библиотека тестируется на ферме из 150 разных девайсов.
💻Под капотом скрыты 30 костылей, нужных для поддержки конкретных устройств.
📂Поддержка Foldables из коробки.
Исследование того, как в разных компаниях подходят к автотестам
Женя Мацюк, автор библиотеки Kaspresso и бесконечности докладов про автоматизацию тестирования, провел интервью с 30 командами мобильной разработки и подбил аналитику по тому, что там по автотестам в 2022 году.
- У 30% команд написано больше 1000 UI тестов.
- У большинства команд соблюдаются пропорции стандартной пирамиды тестирования, и unit-тестов больше, чем end-to-end.
- 60% команд гоняют UI тесты на каждый PR, а 25% – на ночных сборках.
- У половины команд время на прогона сьюта тестов на PR – больше 25 минут.
- Больше половины респондентов запускают в паралелль не больше пяти эмуляторов.
Конечно, в исследовании явно есть перекос в сторону больших команд, поэтому учтите это при прочтении статьи.
Женя Мацюк, автор библиотеки Kaspresso и бесконечности докладов про автоматизацию тестирования, провел интервью с 30 командами мобильной разработки и подбил аналитику по тому, что там по автотестам в 2022 году.
- У 30% команд написано больше 1000 UI тестов.
- У большинства команд соблюдаются пропорции стандартной пирамиды тестирования, и unit-тестов больше, чем end-to-end.
- 60% команд гоняют UI тесты на каждый PR, а 25% – на ночных сборках.
- У половины команд время на прогона сьюта тестов на PR – больше 25 минут.
- Больше половины респондентов запускают в паралелль не больше пяти эмуляторов.
Конечно, в исследовании явно есть перекос в сторону больших команд, поэтому учтите это при прочтении статьи.
Android Good Reads pinned «Вышло ежегодное исследование популярности команд Android разработки В этом году мы опросили 660 Android-разработчиков, на 40% больше, чем в прошлом! Посмотрите отчет, чтобы узнать: 💰В каких сферах предпочитают работать Android разработчики (спойлер – топ…»
Переезд с Java на Kotlin в Meta
🤔Про переезд:
- Основные причины переезда: nullability, поддержка функциональщины, более лаконичный код, поддержка DSL и type-safe билдеров.
- При планировании переезда команда выбирала между двумя подходами – сконвертировать всю кодовую базу на Kotlin, или заморозить ее в текущем виде и писать на Kotlin только новый код. Выбрали первый вариант.
- При переезде активно использовался J2K. Чтобы улучшить результат его работы, команда дописала свои конвертеры с обеих сторон от J2K. Это помогло получить более идиоматичный и подходящий к стайлгайдам компании код.
🔥Результаты:
- Сейчас в монорепе 10 миллионов строк кода на Kotlin.
- Объем кодовой базы уменьшился всего на 11%.
- Runtime перфоманс не изменился.
- Время билда выросло. Чтобы решить эту проблему, команда улучшает поддержку Buck и переезжает с KAPT на KSP.
🤔Про переезд:
- Основные причины переезда: nullability, поддержка функциональщины, более лаконичный код, поддержка DSL и type-safe билдеров.
- При планировании переезда команда выбирала между двумя подходами – сконвертировать всю кодовую базу на Kotlin, или заморозить ее в текущем виде и писать на Kotlin только новый код. Выбрали первый вариант.
- При переезде активно использовался J2K. Чтобы улучшить результат его работы, команда дописала свои конвертеры с обеих сторон от J2K. Это помогло получить более идиоматичный и подходящий к стайлгайдам компании код.
🔥Результаты:
- Сейчас в монорепе 10 миллионов строк кода на Kotlin.
- Объем кодовой базы уменьшился всего на 11%.
- Runtime перфоманс не изменился.
- Время билда выросло. Чтобы решить эту проблему, команда улучшает поддержку Buck и переезжает с KAPT на KSP.
KotlinConf 2023 в вашем городе
KotlinConf 2023 пройдет 13-14 апреля. Если вы хотите захостить митап с его просмотром в своем городе, обратитесь за помощью к команде Kotlin:
- Вам подгонят стикеры, футболки и другой мерч.
- При необходимости помогут с финансированием.
- Ваше событие поместят на общую карту всех ивентов.
KotlinConf 2023 пройдет 13-14 апреля. Если вы хотите захостить митап с его просмотром в своем городе, обратитесь за помощью к команде Kotlin:
- Вам подгонят стикеры, футболки и другой мерч.
- При необходимости помогут с финансированием.
- Ваше событие поместят на общую карту всех ивентов.
Визуальный гайд по основным операциям над коллекциями в Kotlin
Отличная визуализация функций работы с коллекциями из стандартной библиотеки:
🗺️Mapping
🤐Zipping
🔗Association
🤌Flattening
📙String representation
Отличная визуализация функций работы с коллекциями из стандартной библиотеки:
🗺️Mapping
🤐Zipping
🔗Association
🤌Flattening
📙String representation