Всё также идет подготовка к первому стабильному релизу Room с поддержкой KMP, самые важные:
🔥 Исправлено падение компилятора с NPE при обработке не JVM исходников через KSP
🛠 Исправлены Авто Миграции при добавление новой колонки в FTS таблице
#android #jetpack #room #sql #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉16👍15👎3❤1
Google выпустила обновленную библиотеку Jetpack Credentials 1.5.0, и вот главные изменения, которые вам стоит знать:
Теперь при использовании Credential Manager API вы можете связать запрос получения учетных данных (GetCredentialRequest) с конкретным UI-элементом вашего приложения (например, поле логина или пароля). В результате, после того как пользователь закроет основной селектор и перейдет к заполнению полей вручную, он увидит дополнительные предложения учетных данных прямо на клавиатуре или в выпадающем списке. Это значительно улучшит UX вашего приложения и облегчит процесс входа.
Новый тип RestoreCredential позволяет автоматически переносить учетные данные пользователя со старого устройства на новое при настройке Android. Если пользователь выберет ваше приложение для переноса, ему не придется заново вводить данные — все произойдет автоматически. Подробности тут.
Как здорово, что такие возможности появляются, но их проблема — полагаться на разработчиков, которые вряд ли станут затягивать это API.
#android #jetpack #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35👎7
В последнее время я стал чаще выкладывать короткие видео в истории Telegram @android_broadcast, чтобы приносить больше пользы.
Прошу вас поддержать канал голосом, чтобы иметь возможность публиковать больше контента и лучше оформить канал.
Прошу вас поддержать канал голосом, чтобы иметь возможность публиковать больше контента и лучше оформить канал.
13👎32👍28🔥2
Forwarded from Kotlin Adept Notes (Alex Panov)
Мы с вами говорили про отличия между платформами, но что говорить о мультиплатформе, если даже на разных Android-устройствах могут быть отличия в поведении, и явным рекордсменом по количеству особенностей являются устройства Xiaomi 🧡
Сегодня поговорим про регулярные выражения и букву ё. Кто ее только не отменял, но Xiaomi пошли дальше всех.
К нам прилетел баг, что при введении ФИО буква ё не проходит валидацию по регулярному выражению. Первое, что приходит в голову, это, что мы написали кривой regex, ведь на самом деле, если использовать такое регулярное выражение
Дальше мы подумали, а что если клавиатура на Xiaomi использует какой-то другой символ ё и мы оказались правы. Действительно стандартная клавиатура использовала
Все дело в клавиатуре, которая выбрана по умолчанию, если поменять клавиатуру на Gboard, то все будет окей. Так что перед проверкой данных нам пришлось делать замену данного символа, чтобы пройти валидацию и на бекенде👍
Давайте порадуемся за Семëна с Xiaomi, теперь у него все будет хорошо🫡
#Android #Regex #Xiaomi
Сегодня поговорим про регулярные выражения и букву ё. Кто ее только не отменял, но Xiaomi пошли дальше всех.
К нам прилетел баг, что при введении ФИО буква ё не проходит валидацию по регулярному выражению. Первое, что приходит в голову, это, что мы написали кривой regex, ведь на самом деле, если использовать такое регулярное выражение
^[а-яА-Я]*$ то буква ё не попадает в этот диапазон и нужно определять ее отдельно, но нет, дело было не в этом.Дальше мы подумали, а что если клавиатура на Xiaomi использует какой-то другой символ ё и мы оказались правы. Действительно стандартная клавиатура использовала
\u00eb символ юникода вместо \u0401Все дело в клавиатуре, которая выбрана по умолчанию, если поменять клавиатуру на Gboard, то все будет окей. Так что перед проверкой данных нам пришлось делать замену данного символа, чтобы пройти валидацию и на бекенде
Давайте порадуемся за Семëна с Xiaomi, теперь у него все будет хорошо
#Android #Regex #Xiaomi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121
Теперь не нужно ломать голову над тестированием подписок или внутренних покупок вручную. Play Billing Lab позволяет:
✅ Создавать и управлять тестовыми покупками
✅ Легко симулировать разные сценарии оплаты
✅ Быстро находить ошибки интеграции Play Billing Library
✅ Проверять поведение приложения при отмене подписок, возобновлении и других сценариях
И всё это — без реальных платежей и рисков для пользователей.
Приложение прошло мимо меня, а вы уже пользовались этим инструментом? Делитесь впечатлениями и опытом в комментариях!
#android #googleplay
Please open Telegram to view this post
VIEW IN TELEGRAM
👍60🤯1
Начиная, с Android 17 большая часть устройств перейдет на рендеринг UI с OpenGL ES на Vulkan, а поддержку OpenGL будет убрана и станет доступна через ANGLE для трансляции команд в Vulkan.
#android #android17 #vulkan #opengl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Какие преимущества даст переход на Vulkan для отрисовки UI в Android?
🚀 Производительность: Vulkan обеспечивает более эффективную работу с GPU и CPU, сокращая оверхед и повышая FPS. Лучше работает во множество поток
🔋 Энергоэффективность: Снижение нагрузки на процессор ведёт к заметной экономии заряда аккумулятора.
⛏️ Контроль и гибкость: Разработчики получают больше возможностей для тонкой настройки графического рендеринга и оптимизации приложений.
✅ Кроссплатформенность: Vulkan поддерживается на многих платформах, что облегчает переносимость кода и улучшает совместимость приложений.
Аналогичный переход сделала Apple, когда отказалась от OpenGL ES в iOS, заменив его на API Metal, которое призвано выполнять аналогичные функции, что и Vulkan.
#android #vulkan
🚀 Производительность: Vulkan обеспечивает более эффективную работу с GPU и CPU, сокращая оверхед и повышая FPS. Лучше работает во множество поток
🔋 Энергоэффективность: Снижение нагрузки на процессор ведёт к заметной экономии заряда аккумулятора.
⛏️ Контроль и гибкость: Разработчики получают больше возможностей для тонкой настройки графического рендеринга и оптимизации приложений.
✅ Кроссплатформенность: Vulkan поддерживается на многих платформах, что облегчает переносимость кода и улучшает совместимость приложений.
Аналогичный переход сделала Apple, когда отказалась от OpenGL ES в iOS, заменив его на API Metal, которое призвано выполнять аналогичные функции, что и Vulkan.
#android #vulkan
👍46
JSpecify — стандартизация Java-аннотаций для статического анализа кода и взаимодействия между языками JVM.
Если вы знакомы с Java или изучали исходный код, то одним из решений проблемы null является использование аннотаций nullability. Однако реализаций таких аннотаций много: JetBrains, Android Jetpack, Spring, Uber и другие создали свои версии.
Решений очень много, и возникла проблема выбора и поддержки. Хотелось бы иметь стандарт в Java, но договориться не удалось.
Консорциум компаний и команд из Google, JetBrains, Meta, Kotlin, Android, Spring, PMD, Sonar, EISOP и других объединился и создал единый стандарт, который обязуются поддерживать в своих решениях.
JSpecify 1.0 сосредоточен на nullability и содержит четыре аннотации: @NonNull, @Nullable, @NullMarked, @NullUnmarked.
Интеграция уже началась в библиотеки Jetpack Android и Kotlin.
#java
Если вы знакомы с Java или изучали исходный код, то одним из решений проблемы null является использование аннотаций nullability. Однако реализаций таких аннотаций много: JetBrains, Android Jetpack, Spring, Uber и другие создали свои версии.
Решений очень много, и возникла проблема выбора и поддержки. Хотелось бы иметь стандарт в Java, но договориться не удалось.
Консорциум компаний и команд из Google, JetBrains, Meta, Kotlin, Android, Spring, PMD, Sonar, EISOP и других объединился и создал единый стандарт, который обязуются поддерживать в своих решениях.
JSpecify 1.0 сосредоточен на nullability и содержит четыре аннотации: @NonNull, @Nullable, @NullMarked, @NullUnmarked.
Интеграция уже началась в библиотеки Jetpack Android и Kotlin.
#java
👍42
Это означает, что API теперь стабильны и готовы к продакшену. Если ваш Android-приложение работает с фитнес- и медицинскими данными, самое время интегрировать Health Connect.
Что это дает?
👉 Унифицированный доступ к данным с разных устройств и приложений
👉 Гибкое управление разрешениями на доступ к данным
👉 Поддержка более 100 типов данных (фитнес, сон, питание и др.)
Что нового в бете?
📌 Оптимизированное управление разрешениями – теперь проще запрашивать доступ к нужным данным
📌 Повышенная производительность – быстрее синхронизация и работа с БД
📌 Совместимость с Android 14+
Если у вас фитнес-приложение, пора переходить на Health Connect, чтобы работать с данными пользователей эффективнее.
#android #jetpack #HealthConnect
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
Если ищете легковесное и современное приложение для заметок, которое можно кастомизировать или доработать под свои нужды, OpenNote-Compose — отличный вариант!
Что внутри?
✅ Хранение заметок с Room
🌙 Тёмная тема
✅ Минималистичный и удобный интерфейс
#android #opensource #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
This media is not supported in your browser
VIEW IN TELEGRAM
В больших проектах на Gradle одной из самых долгих является фаза конфигурации проекта, во время которой создаются все задачи и устанавливаются связи между ними.
Команда Gradle уже давно работает над решением этой проблемы с помощью Gradle Configuration Cache — возможности сохранять результаты фазы конфигурации и повторно использовать их в последующих запусках.
В блоге Gradle вышла подробная статья о текущем состоянии этой функции: State of the Configuration Cache. Согласно статье, начиная с Gradle 9
В одном из будущих мажорных релизов после Gradle 9, Configuration Cache станет единственным доступным режимом работы — но только после того, как к этому будет готово всё сообщество.
До этого момента Gradle будет активно улучшать технологию и сотрудничать с партнёрами для расширения совместимости и интеграций.
#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
Что нового
👉 Поддержка тематических картинок
👉 Лучшее разделение папок с настройками для разных установленных версий Android Studio
👉 Библиотека запросов для AI (готовые и можете добавить свои)
Читаю обновления и совсем печально по фичам 😢
#android #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
This media is not supported in your browser
VIEW IN TELEGRAM
Cursor Talk to Figma MCP (Model Context Protocol) - интеграция между Cursor AI и Figma, позволяющая из Cursor AI делать макеты в Figma
#figma #ai
#figma #ai
👍47
Что рассматривается в статье:
👉 Эволюция системы разрешений: От первоначальной модели, где разрешения предоставлялись при установке приложения, до текущей системы, введённой в Android 6.0 (Marshmallow), где разрешения запрашиваются во время выполнения, обеспечивая больший контроль и прозрачность для пользователей.
👉 Типы разрешений: Обычные (normal) и Опасные (dangerous)
👉 Разрешение‑подпись (signature permission)
👉 Специальные (special) разрешения
👉 Рекомендации для разработчиков по работе с разрешениями
#android #безпопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍48
Вышел Dagger 2.56
В новой версии Dagger нет новых фичей, а вот то что может сломать код есть
👉 В рамках поддержки Jakarta: удалили старый способ создания Factory (возможно, отвалится код под старые версии Dagger) и больше нельзя использоваться dagger.internal.Provider
👉 В Kotlin исходниках при использовании для multibinding теперь НАДО использовать Set/MAP из kotlin.collections, а не версии из java.util
🛠 Исправили немного багов
#di #java
В новой версии Dagger нет новых фичей, а вот то что может сломать код есть
👉 В рамках поддержки Jakarta: удалили старый способ создания Factory (возможно, отвалится код под старые версии Dagger) и больше нельзя использоваться dagger.internal.Provider
👉 В Kotlin исходниках при использовании для multibinding теперь НАДО использовать Set/MAP из kotlin.collections, а не версии из java.util
🛠 Исправили немного багов
#di #java
👍16
Вышла первая Canary версия Android Studio Narwhal
Самое важное изменение - строится на основе Idea 2025.1 в которой улучшили поддержку Kotlin K2 компилятора, появилось автоматическое обновление плагинов без перезагрузки
#androidstudio
Самое важное изменение - строится на основе Idea 2025.1 в которой улучшили поддержку Kotlin K2 компилятора, появилось автоматическое обновление плагинов без перезагрузки
#androidstudio
👍42
Как лучше сообщать о события UI в логику?
Я встречал 2 подхода о том как сообщают о событии в UI в логику, например ViewModel
или
Какой подход и почему предпочитаете вы? Делитесь в комментариях под опросом
Я встречал 2 подхода о том как сообщают о событии в UI в логику, например ViewModel
// Подход "Через методы"
class MyViewModel : ViewModel() {
fun onButtonClicked() { ... }
}
или
// Подход "Через события"
sealed interface MyEvent {
class OnButtonClick() : MyEvent
}
class MyViewModel : ViewModel() {
fun onEvent(event: MyEvent) {
when(event) {
is OnButtonClick -> { ... }
}
}
}
Какой подход и почему предпочитаете вы? Делитесь в комментариях под опросом
👍33
Какой подход для обработки UI событий выбираете вы?
Anonymous Poll
37%
Подход "Через методы"
53%
Подход "Через события"
3%
Другой подход
8%
Не участвую в опросе
2👍11
Важное изменение - ускорение KAPT из-за перехода под капотом на K2 компилятор.
#kotlin #kapt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35
Demeter - open source библиотека от разработчиков из Яндекс для замера производительности работы Android приложения во время работы, чтобы после анализировать проблемы
Библиотека предназначена для использования в дебажных сборках приложения. Добавление в прод на свой страх и риск!
#android #производительность #opensource
Библиотека предназначена для использования в дебажных сборках приложения. Добавление в прод на свой страх и риск!
#android #производительность #opensource
👍37
