Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
Forwarded from Kotlin Adept Notes (Alex Panov)
Мы с вами говорили про отличия между платформами, но что говорить о мультиплатформе, если даже на разных Android-устройствах могут быть отличия в поведении, и явным рекордсменом по количеству особенностей являются устройства 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 — крутой инструмент от Google, который поможет быстро внедрить и протестировать покупки в Android-приложениях без лишних сложностей.

Теперь не нужно ломать голову над тестированием подписок или внутренних покупок вручную. Play Billing Lab позволяет:

Создавать и управлять тестовыми покупками
Легко симулировать разные сценарии оплаты
Быстро находить ошибки интеграции Play Billing Library
Проверять поведение приложения при отмене подписок, возобновлении и других сценариях

И всё это — без реальных платежей и рисков для пользователей.

Приложение прошло мимо меня, а вы уже пользовались этим инструментом? Делитесь впечатлениями и опытом в комментариях!

#android #googleplay
Please open Telegram to view this post
VIEW IN TELEGRAM
👍60🤯1
‼️ Vulkan станет основной технологий для рендеринга UI в Android

Начиная, с 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
👍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
👍42
Channel photo updated
🚀 Вышла первая Beta Jetpack Health SDK

Это означает, что 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 — open-source заметки на Jetpack Compose 🚀

Если ищете легковесное и современное приложение для заметок, которое можно кастомизировать или доработать под свои нужды, OpenNote-Compose — отличный вариант!

Что внутри?
⚙️ Jetpack Compose UI
Хранение заметок с Room
🚀 ViewModel + StateFlow для управления состоянием
🌙 Тёмная тема
Минималистичный и удобный интерфейс

#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 Configuration Cache и будущее фичи

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

Команда Gradle уже давно работает над решением этой проблемы с помощью Gradle Configuration Cache — возможности сохранять результаты фазы конфигурации и повторно использовать их в последующих запусках.

В блоге Gradle вышла подробная статья о текущем состоянии этой функции: State of the Configuration Cache. Согласно статье, начиная с Gradle 9 Configuration Cache будет включён по умолчанию система станет деликатно напоминать о необходимости включения Configuration Cache.

В одном из будущих мажорных релизов после Gradle 9, Configuration Cache станет единственным доступным режимом работы — но только после того, как к этому будет готово всё сообщество.

До этого момента Gradle будет активно улучшать технологию и сотрудничать с партнёрами для расширения совместимости и интеграций.

#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
🔨 Вышла первая Beta Android Studio Meerkat Feature Drop

Что нового
👉 Поддержка тематических картинок
👉 Лучшее разделение папок с настройками для разных установленных версий 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
👍47
🤖 Ликбез по разрешениям в Android (24м)

Что рассматривается в статье:
👉 Эволюция системы разрешений: От первоначальной модели, где разрешения предоставлялись при установке приложения, до текущей системы, введённой в 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
👍16
Вышла первая Canary версия Android Studio Narwhal

Самое важное изменение - строится на основе Idea 2025.1 в которой улучшили поддержку Kotlin K2 компилятора, появилось автоматическое обновление плагинов без перезагрузки

#androidstudio
👍42
Как лучше сообщать о события UI в логику?

Я встречал 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
🏝 Вышла новая версия Kotlin 2.1.20

Важное изменение - ускорение KAPT из-за перехода под капотом на K2 компилятор.

#kotlin #kapt
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35
Demeter - open source библиотека от разработчиков из Яндекс для замера производительности работы Android приложения во время работы, чтобы после анализировать проблемы

Библиотека предназначена для использования в дебажных сборках приложения. Добавление в прод на свой страх и риск!

#android #производительность #opensource
👍37