Android Broadcast
13.8K subscribers
3.05K photos
209 videos
9 files
5.22K links
Подборка новостей и статей для Android разработчиков.

Обсуждение @android_broadcast_talks
Наши медиа https://taplink.cc/android_broadcast
Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
#архитектура

Modeling Android Screens as State

Шаринг опыта как организовали работу с экранами через состояния на основе собственной разработки - Mavericks
#compose #архитектура #jakewharton

The state of managing state (with Compose)

Интересный взгляд от Jake Wharton на архитектуру приложений, организация Presenter через Composable функции с помощью новой либы Molecule.
#архитектура #di #модуляризация

Модульность и DI в современном Android-приложении Яндекса

Автор рассказывает о реализации подхода работы с DI в Яндекс Картах, который отказывается от DI в Feature модулях и делает единую организацию с зависимостями из них. Рассматриваются подробно все случаи и навигация между фичами

🔗 Пример подхода модуляризации

Видео по теме от автора
📺 Как мы делаем Яндекс.Карты для Android: DI (~ 1 час)
📺 Школа мобильной разработк Яндекс. DI (~ 1 час)
#compose #архитектура

Build Single Activity Apps With Jetpack Compose (3 мин)

Как создать приложение на подходе Single Activity, с использованием новомодного стека. Нужно ли сейчас больше одной Activity?
#compose #архитектура

Every Composable deserves a ViewModel (6 мин)

Автор статьи рассказывает как связать ViewModel с Composable функцией, чтобы сделать их по-настоящему переиспользуемыми!
📺 Как пройти архитектурную секцию собеседования. Live Demo с Mobius (1 час)

За свою карьеру я провел много собеседований: редко какой кандидат может грамотно реализовать архитектуру Android-приложения с учетом всех требований, а еще сделать это наглядно в ограниченное время.

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

Из доклада вы узнаете:
👉 Что такое архитектурная секция
👉 Как к ней подготовиться
👉 Ожидания от кандидатов разного уровня
👉 Какие вопросы надо задавать
👉 Что от вас ожидают увидеть
👉 Какие моменты важно подсветить

Версия для платных подписчиков на YouTube тут

❗️ Доступ только для патронов. В публичном доступе доклад будет на канале Mobius весной 2023

#AndroidBroadcast #архитектура #mobiusconf
Forwarded from Kotlin Broadcast (Кирилл Розов)
Статья (EN, 20м) о безопасном обновлении состояния в Kotlin приложениях:
👉 Что такое состояние
👉 Как сделать его реактивным
👉 Унификация состояния
👉 Консистентность состояния
👉 Параллельное обновление состояния
👉 Сериализация изменений состояния

🔗 Альтернативная ссылка

#архитектура #mvi

Больше про Kotlin на канале @kotlin_broadcast
Написал статью о том почему плохо использовать подобный подход с when и как провести его правильный рефакторинг.

#AndroidBroadcast #лучшиепрактики #архитектура
В каждом приложение есть какие-то глобальные события: запуск приложения, появление доступа к интернету, выход пользователя из приложения. Можно просто прописать в эти события методы, которые надо вызвать.

Какие альтернативы:
1️⃣классы с событиями, на которые могут подписаться кто угодно.
2️⃣ рассылка событий в приложении например через BroadcastReceiver
3️⃣ Рассылка через EventBus

Подробнее в статье (24м)

#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
Я уже несколько месяцев веду Базу Знаний для Android разработчиков с актуальными материалами для развития Android разработчиков. Теперь База пополняется материалами моего авторства ‼️

Добавил статью про реализацию неявной загрузки реализаций интерфейса, что позволит сделать архитектуру вашего приложения гибче. Таким подходом пользуются в популярных библиотеках (например Kotlin Coroutines).

#AndroidBroadcast #БазаЗнаний #архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья (EN,6м) с описанием тех моментов когда вам надо насторожиться, если в коде UseCase встречается это (добавил от автора статьи, себя и из комментариев под постом):
1️⃣Вы не понимаете зачем он вам нужен, а сделали потому что так написали в умной/статье книге или
2️⃣ Из названия классы UseCase не понять что он делает, либо делает не то что в названии
3️⃣ Код UseCase небезопасен для вызова с Main потока
4️⃣ Имеет в зависимостях платформенный код (например из Android SDK это может быть Context)
5️⃣Класс UseCase имеет больше одной публичной функции
6️⃣ UseCase имеет состояние (сохраняет данные в поля)
7️⃣ Метод UseCase содержит 1 строчку кода (например вызов метода из репозитория или БД)
8️⃣UseCase вызывает другой UseCase. Возможно стоит реорганизовать логику так чтобы вынести общий код в утилитные классы

В комментариях добавляйте свои красные флаги в работе с UseCase

#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашел Jetmagic - фреймворк для построения отзывчивых приложений на основе Jetpack Compose для Android.

Что включает:
👉 Собственное решение по навигации
👉 Composable Resource Manager
👉 Image Manager
👉 Deep Linking

Надо будет изучить и понять что там такого сделали

#архитектура #compose
Forwarded from Compose Broadcast
CompositionLocal - механизм, обеспечивающий много гибкости для Compose и его можно использовать чтобы добавить гибкости вашей архитектуре. Например, так я получал из Composable функций DI Scope. Об этом статья (EN, 5м)

#compose #архитектура
Как мы разобрали монолитное приложение для бизнеса на модули - статья как в ПСБ разделяли свое приложение. Остался в шоке с каким стеком и подходами делали приложение ((( Как один все бизнесы сначала быстро напишут код в одном модуле, при росте не занимаются архитектурой и потом все как один начинают писать статьи на тему "как мы сделали модуляризацию из одного God модуля". Что сразу не дало закладывать нормальный фундамент архитектуры?

#архитектура #модуляризация
Статья (EN,8м) с разбором использования MVI в EventBrite:
👉 Базовые понятия MVI
👉 Короткое сравнение с MVVM
👉 Пример использования в продуктах

#mvi #архитектура
Легендарная книжка "Чистый код" попала под рефакторинг. Ждём второе издание с новыми вопросами для собеседований и подход 😁 Источник тут

#архитектура
Где запускать загрузку данных для показа UI на Compose? ViewModel? LaunchedEffect? Или может вызывать какую функцию в init блоке? Почитайте статью(6м, EN)

Я предпочитаю использовать Flow в ViewModel, которая отдаст мне данные, когда произойдет подписка на него. Загружать данные раньше, чем они нужны в UI, (прогрев) стоит явно и не через ViewModel, а через работу с источниками данных

#архитектура #compose
Серия статей про принятие архитектурных решений и как они влияют на финальное решение:
👉 Введение
👉 Обработка ошибок
👉 Маппинг данных
👉 Response/Result классы
👉 Структура проекта, разделение кода

#архитектура
Проблема UseCase-ов(4м): что нужно знать разработчикам Android

#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM