Хватит использовать ResourceProvider во ViewModel
Интересный подход, когда мы отказываемся от класса ResourceManager для того чтобы работать с ресурсами за пределами Compose/Fragment/Activity. Все сводится к созданию обертки, которую сам TextView должен в итоге сам задать. Делается через удобное расширение и sealed классы
sealed class Text {
data class Resource(@StringRes val resId: Int) : Text()
data class Simple(val text: String) : Text()
}
fun TextView.setText(clause: Text) {
when (clause) {
is Text.Resource -> setText(clause.resId)
is Text.Simple -> text = clause.text
}
}
Автор статьи - Леша Быков, GDE по Android, ведет свой канал @invalidate_cache, а также провел классное собеседование на моём канале
Интересный подход, когда мы отказываемся от класса ResourceManager для того чтобы работать с ресурсами за пределами Compose/Fragment/Activity. Все сводится к созданию обертки, которую сам TextView должен в итоге сам задать. Делается через удобное расширение и sealed классы
sealed class Text {
data class Resource(@StringRes val resId: Int) : Text()
data class Simple(val text: String) : Text()
}
fun TextView.setText(clause: Text) {
when (clause) {
is Text.Resource -> setText(clause.resId)
is Text.Simple -> text = clause.text
}
}
Автор статьи - Леша Быков, GDE по Android, ведет свой канал @invalidate_cache, а также провел классное собеседование на моём канале
Telegraph
Хватит использовать ResourceProvider во ViewModel
Каждый по разному обрабатывает показ того или иного текста. В большинстве своём, картина простая: создаётся ResourcesProvider/ResourceManager/etc с applicationContext внутри и ижектится в Presentation-слой, будь то Presenter или ViewModel. Проблема Смена…
👎33👍31🔥7🤔2🤯1
Jetpack Compose Interop: Using Compose in a RecyclerView (10 мин)
RecyclerView 1.3.0 улучшает производительность использования Compose (нужна версия 1.2.0) в качестве элементов списка. Зачем? Да потому что LazyList огорчает производительностью и возможностями. В статье автор разбирает в чем суть этих изменений и прошлые рекомендации от команды.
#compose #recyclerview #performance
RecyclerView 1.3.0 улучшает производительность использования Compose (нужна версия 1.2.0) в качестве элементов списка. Зачем? Да потому что LazyList огорчает производительностью и возможностями. В статье автор разбирает в чем суть этих изменений и прошлые рекомендации от команды.
#compose #recyclerview #performance
🤯21👎12👍4🤔1
Утилита для визуализации связей между Gradle модулями. Всего лишь один Python скрипт и такая картинка у вас. Делитесь результатами в комментариях к посту
👍54👎10❤2
Accessibility в Android для чайников: адаптируем приложение для незрячих людей
Разбор реализации доступности Android приложения для всех:
👉 Что такое Accessibility
👉 Accessibility Services
👉 TalkBack
👉 Правила для разработчиков
👉 Важность sp для шрифтов
👉 Неожиданные особенности работы
#accessibility
Разбор реализации доступности Android приложения для всех:
👉 Что такое Accessibility
👉 Accessibility Services
👉 TalkBack
👉 Правила для разработчиков
👉 Важность sp для шрифтов
👉 Неожиданные особенности работы
#accessibility
👍28👎8🔥4🤔1
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
📺 Kotlin Coroutines Flow. StateFlow. SharedFlow || Курс по корутинам #7 (20 мин)
Разбираемся схолодными потоками данных в корутинах - Flow, SharedFlow и StateFlow, а также особенностями их работы. В видео вас жду лайвкодинги (как вы и просили) ну а дальше будут отдельные видео по этой теме.
Весь курс сделан при поддержке компании Revolut. Все ролики можно найти здесь
#AndroidBroadcast #курс #coroutines
Разбираемся с
Весь курс сделан при поддержке компании Revolut. Все ролики можно найти здесь
#AndroidBroadcast #курс #coroutines
👍40👎17❤6
Getting Started With CameraX in building Camera Apps on Android (7 мин)
Руководство по старту работы с Jetpack CameraX и базовой настройке
#jetpack #camera
Руководство по старту работы с Jetpack CameraX и базовой настройке
#jetpack #camera
👍18👎12
movableContentOf and movableContentWithReceiverOf
Отслеживание композиции в Jetpack Compose, перенося сохраненное состояние и узлы внутри из предыдущего в новый вызов.
Например, когда у вас может происходить переключение между горизонтальным и вертикальным размещением контента, сохраняя при это состояние элементов внутри
Отслеживание композиции в Jetpack Compose, перенося сохраненное состояние и узлы внутри из предыдущего в новый вызов.
Например, когда у вас может происходить переключение между горизонтальным и вертикальным размещением контента, сохраняя при это состояние элементов внутри
👍40👎14🔥3
My Most Used Android Studio Shortcut Keys
Подборка различных полезных горячих клавиш Android Studio с демонстрацией результата их работы
#androidstudio
Подборка различных полезных горячих клавиш Android Studio с демонстрацией результата их работы
#androidstudio
👍45👎20😁4
📺 Корутины в Android. Специальные API || Курс по корутинам #8 (8 мин)
Собираем все полученные знания, чтобы узнать как их адаптировать к Android разработке и какие специальные API сделали в Jetpack
Весь курс, который сделан при поддержке компании Revolut, можно найти здесь
#AndroidBroadcast #курс #coroutines
Собираем все полученные знания, чтобы узнать как их адаптировать к Android разработке и какие специальные API сделали в Jetpack
Весь курс, который сделан при поддержке компании Revolut, можно найти здесь
#AndroidBroadcast #курс #coroutines
👍30👎14🔥2❤🔥1
📺 Много графиков в WebView на Android. TradingView (~1 час)
Обсуждаем построение трейдингового Android приложения, где важно доставлять данные как можно быстрее. Интересный факт - все графики рисуются в WebView.
#AndroidBroadcast #раннийдоступ #интервью
Обсуждаем построение трейдингового Android приложения, где важно доставлять данные как можно быстрее. Интересный факт - все графики рисуются в WebView.
#AndroidBroadcast #раннийдоступ #интервью
👍44👎14
Курс по Gradle (английский язык)
Хотите прокачаться в Gradle? Этот набор видео поможет вам. Лично я считал документацию Gradle очень хорошей и учился по их руководствам.
Хотите прокачаться в Gradle? Этот набор видео поможет вам. Лично я считал документацию Gradle очень хорошей и учился по их руководствам.
👍63👎9🔥8
How to change system bar colors using Jetpack Compose (4 мин)
Изменение цвета системных панелей (статус и навигация) из Compose функций
#compose #systemui
Изменение цвета системных панелей (статус и навигация) из Compose функций
#compose #systemui
👎25👍9
Вышел Compose 1.2.0
👉 Поддержка Kotlin 1.7
👉 Стибальные LazyHorizontalGrid и LazyVerticalGrid
👉 Поддержка WindowsInsets из коробки. Переехала из Accompanist с улучшениями
👉 Интероп nested скролла с View
👉 Обновление анимаций
👉 Улучшена поддержка управления мышью
👉 Анимации Compose теперь реагируют на их настройки в Dev Options
👉 Независимое версионирование библиотек Compose
👉 Исправление багов
Обновленный roadmap можно посмотреть здесь
#compose
👉 Поддержка Kotlin 1.7
👉 Стибальные LazyHorizontalGrid и LazyVerticalGrid
👉 Поддержка WindowsInsets из коробки. Переехала из Accompanist с улучшениями
👉 Интероп nested скролла с View
👉 Обновление анимаций
👉 Улучшена поддержка управления мышью
👉 Анимации Compose теперь реагируют на их настройки в Dev Options
👉 Независимое версионирование библиотек Compose
👉 Исправление багов
Обновленный roadmap можно посмотреть здесь
#compose
👍48👎6
Вышел стабильный Compose 1.0 для Wear OS
Разработка приложения для Wear OS переходит на Compose и теперь это официально рекомендуемый Google подход для разработки приложения для фирменной ОС для носимых устройств.
В релизе есть:
👉 Material компоненты
👉 Интероп с View
👉 Поддержка различных форм часов
👉 Поддержка всех стандартных элементов для создания UI
👉 Поддержка Kotlin 1.7
👉 Android Studio Dolphin включает поддержку работы с Wear OS на Compose
Также представили Horologist - группу библиотек с открытым исходным кодом, которая поможет разрабатывать приложения для Wear OS на Compose (аля Accompanist for Wear OS). Пока в Beta
Если вы занимаетесь разработкой приложений для Wear OS, то я как раз ищу эксперта для интервью. Отзовитесь на почту kirill@androidbroadcast.dev или @ab_manager.
#compose #wear
Разработка приложения для Wear OS переходит на Compose и теперь это официально рекомендуемый Google подход для разработки приложения для фирменной ОС для носимых устройств.
В релизе есть:
👉 Material компоненты
👉 Интероп с View
👉 Поддержка различных форм часов
👉 Поддержка всех стандартных элементов для создания UI
👉 Поддержка Kotlin 1.7
👉 Android Studio Dolphin включает поддержку работы с Wear OS на Compose
Также представили Horologist - группу библиотек с открытым исходным кодом, которая поможет разрабатывать приложения для Wear OS на Compose (аля Accompanist for Wear OS). Пока в Beta
Если вы занимаетесь разработкой приложений для Wear OS, то я как раз ищу эксперта для интервью. Отзовитесь на почту kirill@androidbroadcast.dev или @ab_manager.
#compose #wear
👍18👎7🎉1
Вышел Accompanist 0.25.0
Главное изменение - миграция на стабильную версию Compose 1.2, а все остальное про минорные улучшения и исправления багов.
#compose
Главное изменение - миграция на стабильную версию Compose 1.2, а все остальное про минорные улучшения и исправления багов.
#compose
👍15👎9
Обновление политик Google Play от 27 июля 2022
⏰ Новый permission USE_EXACT_ALARM (Android 13) будет доступен не всем
🔈Новые правила показа полноэкранной рекламы (fullscreen interstitials)
🔒Требования к соблюдению FLAG_SECURE
🚇 Класс VPNServices теперь может использоваться только VPN сервисами
💰 Отмена подписок из приложений и игр
👉 Запрет на публикацию приложения с ложной информацией о здоровье
👉 Запрещено выдавать себя за другое лицо
👉 Уточнение о показе рекламе
#googleplay
⏰ Новый permission USE_EXACT_ALARM (Android 13) будет доступен не всем
🔈Новые правила показа полноэкранной рекламы (fullscreen interstitials)
🔒Требования к соблюдению FLAG_SECURE
🚇 Класс VPNServices теперь может использоваться только VPN сервисами
💰 Отмена подписок из приложений и игр
👉 Запрет на публикацию приложения с ложной информацией о здоровье
👉 Запрещено выдавать себя за другое лицо
👉 Уточнение о показе рекламе
#googleplay
Telegraph
Обновление политик Google Play от 27 июля 2022
Свежее обновление политик Google Play и задевает множество аспектов приложений: показ рекламы, подписки, ограничения на permission, правила реализации VPN, использование логотипов и пр. В этой статье вы найдете обзор базовых изменений политик ⏰ Разрешение…
👍31👎6
📺 Как добавить оплату телефоном в Android. Интервью (~1 час)
Интервью с разработчиком функционала платежей в "Кошелёк". Разбираюсь как устроена оплата, какие требования по безопасности для такого рода приложений и какие сложности работы с NFC на устройствах различных вендоров.
Патроны уровня Middle на Boosty и выше смогли посмотреть это интервью раньше на 2 недели. Поддержи Android Broadcast и посмотри новые видео в раннем доступе уже сейчас
Интервью с разработчиком функционала платежей в "Кошелёк". Разбираюсь как устроена оплата, какие требования по безопасности для такого рода приложений и какие сложности работы с NFC на устройствах различных вендоров.
Патроны уровня Middle на Boosty и выше смогли посмотреть это интервью раньше на 2 недели. Поддержи Android Broadcast и посмотри новые видео в раннем доступе уже сейчас
👍27👎17🔥10🤔2
Brushing up on Compose Text coloring (6 мин)
Подходы к тому как можно разукрасить текст в градиент на Compose до релиза 1.2.0 и с появлением Brush API и такой эффект уже стал часть стандартного набора в Compose.
Это конечно все круто, но где мой быстрый LazyColumn, чуваки?
#compose
Подходы к тому как можно разукрасить текст в градиент на Compose до релиза 1.2.0 и с появлением Brush API и такой эффект уже стал часть стандартного набора в Compose.
Это конечно все круто, но где мой быстрый LazyColumn, чуваки?
#compose
😁57👎7👍3🥰2
Как мы ускоряли сборку Android-приложения из двух миллионов строк кода
Разработчики Яндекс делятся своими советами оптимизации Gradle сборки:
👉 Начинайте с измерения скорости
👉 Настраиваем флаги Gradle и Android Gradle Plugin (AGP)
👉 nonTransitiveRClass
👉 Не используйте flavor
👉 Для дебага используйте версию minSdk как можно выше
👉 Отключайте плагины и шаги, которые не нужны в дебаге
👉 Настройте configuration cache
👉 Настройте Gradle Build Cache (там нужно делать правки чтобы работало в Android)
👉 Многомодульность
Также авторы делятся другими проблемами, которые тормозили сборку
#performance #gradle
Разработчики Яндекс делятся своими советами оптимизации Gradle сборки:
👉 Начинайте с измерения скорости
👉 Настраиваем флаги Gradle и Android Gradle Plugin (AGP)
👉 nonTransitiveRClass
👉 Не используйте flavor
👉 Для дебага используйте версию minSdk как можно выше
👉 Отключайте плагины и шаги, которые не нужны в дебаге
👉 Настройте configuration cache
👉 Настройте Gradle Build Cache (там нужно делать правки чтобы работало в Android)
👉 Многомодульность
Также авторы делятся другими проблемами, которые тормозили сборку
#performance #gradle
🔥55👎14👍5
Поучаствовал в подкасте "Кем ты стал". Выпуск назвали довольно громко, но по делу - "Android-разработка. Как превратить работу в личный бренд" (1 час)
Обсудили:
👉 когда появилась мобильная разработка, и почему в неё не сразу поверили;
👉 зачем обновлениям Android ОС давали «сладкие» имена: Эклер, Донат, Oreo и другие;
👉 почему AR и голосовые помощники —будущее мобильной разработки
👉 нужно ли Android-разработчику знать Java (успел быстрее Гладкова)
👉 что должно давать разработчикам высшее образование и нужно ли оно вообще
👉 ради чего и какой ценой можно развивать личный бренд и его минусы для разработчика
Обсудили:
👉 когда появилась мобильная разработка, и почему в неё не сразу поверили;
👉 зачем обновлениям Android ОС давали «сладкие» имена: Эклер, Донат, Oreo и другие;
👉 почему AR и голосовые помощники —будущее мобильной разработки
👉 нужно ли Android-разработчику знать Java (успел быстрее Гладкова)
👉 что должно давать разработчикам высшее образование и нужно ли оно вообще
👉 ради чего и какой ценой можно развивать личный бренд и его минусы для разработчика
🔥35👎9👍6👏2💩1
Адаптация Jetpack Compose в hh.ru
HeadHunter делятся своей историей и выбранному пути миграции на Jetpack Compose и дают советы как начать. Ждем продолжения "100% Compose HH"
#compose
HeadHunter делятся своей историей и выбранному пути миграции на Jetpack Compose и дают советы как начать. Ждем продолжения "100% Compose HH"
#compose
👍34👎14🔥4💩1