TGINSIGHT CHAT
Android Broadcast
@android_broadcast
TechnologiesПодборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab#MQRZR
Posts récents
Tag : #android · 490 posts
Publié 3 mars
🤖Руководство(EN,5м) по добавлению выбора языка с помощью Jetpack API и интеграции его с Jetpack Compose Ссылка без VPN #android#jetpack#compose
Publié 27 févr.
🚀Core-Viewtree 1.0.0 — стабильный релиз!🎉 AndroidX представил первую стабильную версию библиотеки core-viewtree, которая вводит новое понятие — disjoint parent для View, дополнительно к уже существующему View.parent 🔍 Что это значит? Теперь View может иметь родителя, который есть у View, но не задан через View.parent. Это полезно в случаях, когда элемент находится вне стандартной иерархии, например: ViewOverlay, попапы, диалоги. Такой подход позволяет гибко управлять связями между View, особенно в анимациях и сложных UI-компонентах. Пример использования class CustomOverlayView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null ) : View(context, attrs) { fun attachToOverlay(overlayView: View) { // Устанавливаем overlayView как разобщённого родителя ViewTreeDisjointParent.set(this, overlayView) } } Где используется AndroidX автоматически задаёт disjoint parent для ViewOverlay, начиная с Transition 1.6.0-alpha01. Также разработчики могут самостоятельно назначать такие связи. Будете использовать в своих проектах? Делитесь мыслями в комментариях! 👇 #android#jetpack
Publié 27 févr.
Вышел Room 2.7.0-rc01 где исправили баг Room, который приводил к крешу KSP процессора на iOS с Kotlin 2.1 #android#jetpack#kmp#sqlite
Publié 27 févr.
🚀 Вышел Coordinator Layout 1.3.0 В новой версии добавили поддержку управления клавишами, исправили баги и доабвили новые примеры #android#jetpack
Publié 27 févr.
🔨 Вышел второй патч Android Studio Ladybug Feature Drop 2024.2.2 #android#androidstudio
Hashtags
Publié 26 févr.
🤖Хорошая статья с простым разбором SDUI (4м) 👉 Что такое Server Drive UI (SDUI), он же BDUI 👉 Зачем его применяют 👉 Каким приложениям будет полезен подход #android#sdui
Publié 26 févr.
⚰️Библиотеки RxIdler и okhttp-idling-resource теперь depreacated Десять лет назад Espresso привнес в тестирование Android одно из своих ключевых понятий – idling resource. Этот механизм ждал, пока приложение выполнит фоновую работу, прежде чем тест мог продолжиться. Square выпустили RxIdler и okhttp-idling-resource для мониторинга RxJava и OkHttp. Сегодня пришло время отправить их в архив. ❌Что не так с idling resource? Idling resource привязывает тесты к внутренней реализации приложения, а не к пользовательскому взаимодействию. Настоящий пользователь не ждет, пока OkHttp станет “idle” – он смотрит на UI. Если кнопка “Продолжить” загорелась зеленым – значит, можно нажимать. 💡Как теперь тестировать ожидания? Google обновил рекомендации, и теперь Compose предлагает встроенные API для ожидания условий. Для View-based интерфейсов можно написать кастомный ViewAction, который зацикливается на проверке условия, пока оно не выполнится. Deprecated статус не значит что библиотеки больше не рабоают. Вы можете их продолжать использовать, они стабильны, но подход больше не рекомендуется к использованию. #android#compose#okhttp#rxjava#тестирование
Publié 26 févr.
🚀Тестирование ViewModel стало проще В AndroidX Lifecycle 2.9.0 появилось новое API для тестирования ViewModel - ViewModelScenario. Для использования этого API необходимо подключить артефакт "androidx.lifecycle:lifecycle-viewmodel-testing". Пример использования: class JetpackViewModelTest { @Test fun testStateRestoration() = runTest { // this = TestScope viewModelScenario { // this = CreationExtras SampleViewModel( scope = this@runTest, saveStateHandle = createSavedStateHandle(), ) }.use { scenario: ViewModelScenario -> scenario.state.data = "testValue" scenario.recreate() assertEquals("testValue", scenario.state.data) } } } class SampleViewModel( scope: CoroutineScope, private val saveStateHandle: SavedStateHandle, ) : ViewModel(scope) { companion object { private const val STATE_KEY = "state_key" } var data: String? get() = saveStateHandle.get<String>(STATE_KEY) set(value) { saveStateHandle.set(STATE_KEY, value) } } #android#kmp#тестирование#jetpackupdate
Publié 25 févr.
Как оживает смартфон: Android на старте 🚀📱 Когда ты включаешь телефон, задумывался ли ты, что происходит внутри? Давай заглянем за кулисы и вместе с Артёмом, Android-разработчиком разберёмся, как запускается система и что скрывается под её капотом. Для тех, кто работает с мобильными технологиями, этот процесс — не просто рутина. Какие этапы преодолевает система от нажатия кнопки включения до появления интерфейса? И как устройство готовится к полноценной работе? Понимание этого процесса критически важно для оптимизации приложений и повышения их производительности. 🔎 Читай статью от сёрфера и узнай: 🟢 Как Boot ROM подготавливает устройство к загрузке 🟢 Как ядро Linux управляет системой и влияет на её стабильность 🟢 Почему Zygote и System Server так важны для Android Статья уже на Хабре! А насколько важны эти знания для каждого, кто работает с мобильными платформами — обсудим в комментариях 👇 #Surf#Android#Разработка
Hashtags
Publié 25 févr.
Описал про подход Pane в отдельном посте в @compose_broadcast #android#compose
Publié 25 févr.
📹Building adaptive Android apps (40 минут) Очень классное видео про то как подходить к разработке приложений без привязки к экрану, а думать именно в терминах пространства для отрисовки 0:00 Введение 4:15 Зачем создавать адаптивные интерфейсы? 7:49 Адаптивность в Compose Material 3 13:01 Создание UI с Compose Material 3 Adaptive 22:07 Положения складных устройств 23:32 Анти-паттерны 26:52 Ввод, выходящий за рамки сенсорного управления 30:36 Тестирование на разных устройствах 36:17 Адаптивный рабочий процесс 39:29 Обратная связь и заключительные замечания #android#material#большикэкраны
Hashtags
Publié 25 févr.
Еще раз(EN,5м, без VPN) про ограничение публикации Android приложений в Google Play с разрешением READ_MEDIA_IMAGES - доступ ко всем картинкам пользователя на устройстве Кому разрешено его использовать: 1️⃣ Приложениям галереям 2️⃣ Приложения по редактированию фото 3️⃣ Социальным сетям с функциями шаринга фото (Instagram и Facebook попадают сюда) Как по мне, фото редакторы и шаринг фото прекрасно может обходиться на выборе фото через Photo Picker без каких либо проблем, а вот пользователям будет безопаснее. Photo Picker - прекрасное решение. Только сделайте его работу стабильным и добавьте поддержку добавления других облаков кроме Google Photos * Meta, Instagram и Facebook являются экстремистскими организациями и запрещены на территории РФ #android#googleplay#безопасность
Hashtags