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
Как правильно работать с MutableStateFlow внутри ViewModel и из вне

Если вы пишите под Android и используете MVVM и корутины, то у вас будет подобный код

class YourViewModel() : ViewModel() {
val state = MutableStateFlow<State>(State.Initial)
}


По всем рекомендациям мы не должны давать наружу изменяемое состояние и все изменения должны делать только через методы. Самый простой вариант - указание отдельного публичного типа.

class YourViewModel() : ViewModel() {
private val _state = MutableStateFlow<State>(State.Initial)

val state: StateFlow<State>
get() = _state
}


В Kotlin есть возможность указать разного типа для свойства и его field, но пока доступна только как экспериментальная. Использовать её в продакшен коде на текущем этапе жизни не рекомендуется
С таким подходом мы закрыли через приведение типа на уровне свойства. Авторы Kotlin Coroutines позаботились о нас и сделали нашу жизнь проще с помощью функции asStateFlow(), который под капотом обернет MutableStateFlow в ReadonlyStateFlow и вернёт его как StateFlow. Применяя оператор мы получим следующий код:

class YourViewModel() : ViewModel() {
private val _state = MutableStateFlow<State>(State.Initial)

val state: StateFlow<State>
get() = _state.asStateFlow()
}


Каждое обращение к свойства state будет приводить к созданию новому экземпляру StateFlow, что является лишним, так как один StateFlow может иметь несколько коллекторов (подписчиков) на данные и никак не повлияет на работу, то можно сразу задавать свойство безе перегрузки get()

class YourViewModel() : ViewModel() {
private val _state = MutableStateFlow<State>(State.Initial)

// Создаем StateFlow, предназначенный для получения
// состояния из вне ViewModel
val state = _state.asStateFlow()
}


Больше подобных моих материалов и подборка интересных статей, книг, видео есть в
Базе Знаний Android разработчика

#android #kotlin #coroutines #jetpack #viewmodel #AndroidBroadcast #БазаЗнаний
👍7113🤯51
📹 Что не так с мобильными сервисами в Android и iOS. Кирилл Розов. Mobius Осень 2024

Стала доступна запись моего доклада с Mobius где я рассказал про проблему монополии мобильных сервисов и предложил своё решение для светлого будущего новых мобильных ОС

#mobius
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍9
Forwarded from AvitoTech
«Как поздравить наших подписчиков с Новым годом?»

Этим вопросом мы задались еще в ноябре. «Крутили» с командой разные идеи, но одна вдохновила больше всех — сделать адвент-календарь для тех, кто создает продукты и сервисы. И вот, мы выкатываем его в прод!

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

Тапайте на ячейки, забирайте нужное, улучшайте разработку и инженерную культуру вместе с нами.

Поздравляем с наступающим Новым годом
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍5
🔴 Начался прямой эфир с подведением итогов 2024 года

В прямом эфире буду подводить итоги 2024: Android, Kotlin, блог

Конечно же отвечу на ваши вопросы по тебе разработки и не только

Запись будет доступа на каналах после эфира

Подключайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
Google Play объявила лучшие приложения и игры 2024 года
🏆Лучшее приложения - планировщик событий Partiful
🏆 Лучшая игра - AFK Journey
🏆 Лучшее приложение для разных устройств - онлайн-кинотеатр Max
🏆 Лучшая играя для разных устройств - Clash of Clans

Остальных победителей смотрите в статье

#googleplay
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Оптимизация под контролем: инструменты и метрики для Аndroid-приложений (11м)

В статье рассказывается про оптимизацию времени запуска Android-приложения, разбираются основные метрики старта и инструменты, с помощью которых можно анализировать производительность.

#android #производительность
👍17
Пример разработки плагина для Android Studio (10м)

Подробное руководство от создания проекта до публикации в магазин JetBrains. Автор показывает всё на примере проверки грамотности в сообщениях к коммитам в Git. Результат - плагин PreCommitSpellChecker

#androidstudio
👍182🤯1🎉1
Inure App Manager - Android приложение с открытым исходным кодом для управления другими приложения, получением информации и их модификацией

Установить из Google Play, а полная версия уже за деньги

#android #пример #opensource
👍11
Всем привет! Подготовили для вас последний в текущем году релиз. Что нового:
1⃣ Артефакты для xctestrun конфигов обрабатываются еще быстрее;
2⃣ улучшили механизм дискаверинга нативных iOS тестов;
3⃣ пофиксили баг, при котором очередь могла внезапно потерять бакет из-за перезапуска воркера;
4⃣ добавили возможность использования env- переменных в emceeplan файле для чувствительных данных - вроде пароля для artifactory user;
5⃣ добавили ресурсов в облако и сделали его работу еще быстрее.

Напоминаем, что попробовать Emcee можно бесплатно на 10 воркерах при регистрации в облаке в января предоставляем 300 минут для прогона ваших тестов бесплатно! 🎁

Всех с наступающим Новым годом, до встречи в 2025! 🌲
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Я занимаюсь разработкой неофициального Kotlin Multiplatfrom клиента сервиса Frame.io под Android, Desktop и iOS.

Уже вышло 7 видео:
- О проекте
- Генерация клиента REST API через Open API схему
- Создание и настройка проекта в Android Studio
- Настройка GitHub Репозитория
- Что важно учесть на этапе дизайна. Дизайн приложения FrameIO
- Настройка UI Kit на основе Material3
- Реализация работы с Frame.io REST API

Вы также получите доступ к исходном коду на GitHub и дизайну на Figma! Всё обсуждение ведем в Telegram чате

Чтобы получить доступ надо оформить подписку уровня Senior или выше, либо за единоразовую оплату навсегда

#AndroidBroadcast #видео #frameio
👍23