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

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#ArchitectureComponents #MVVM #Architecture

"MVVM with architecture components: a step by step guideline for MVP lovers" by Antonio Leiva

Давным давно в мире Android до Google I/O 2017 в архитектуре Android приложений преимущественно использоваться паттерн MVP, но появление Architecture Component (Arch Comp) начало склонять часу весов в сторону MVVM.

Если вы хотите перейти с MVP на MVVP в вашем приложение, то вам поможет стать от Antonio Leiva, в которой он описал способ миграции на Arch Comp.
#DependencyInjection #Koin #Performance

"News from the trenches — What’s next for Koin?" by Arnaud Giuliani

Я большой фанат Dependency Injection (DI) решения на Kotlin - Koin. Почему он мне нравится? Как много расширенного функционала из Dagger 2 вы используете? Из личного опыта я видел много проектов где это не было нужно. Так зачем использовать ракету чтобы перейти улицу 🤔? Поэтому я и предпочитаю Koin для простых проектов.

Я делал доклад по Koin, запись которого вы можете найти здесь.

В статье описывается, что нас ждет в Koin 2.0 🔥. Основные изменения будут:
👉Улучшение производительности на Android 🚀
👉Более удобное API для инициализации
👉Движение в сторону поддержки работы Kotlin Multiplatform Project (финальная поддержка ожидается в Kotlin 2.1)
👉Будет убрана часть функционала в объявление модулей для упрощения работы с ними: вложенные модули, имена модулей и др.
👉Разделение на глобальный (приложение) и локальный (модули/библиотеки) контексты для работы с Koin в многомодульных приложения и SDK.
Какую Dependency Injection/Service Locator библиотеку используете вы?
anonymous poll

Dagger 2 – 28
👍👍👍👍👍👍👍 54%

Koin – 17
👍👍👍👍 33%

Другое – 5
👍 10%

Kodein – 2
👍 4%

Dagger 1 by Square
▫️ 0%

Custom
▫️ 0%

👥 52 people voted so far. Poll closed.
#Flutter #Dart #Android

MythBuster : 10 Rumors about Flutter, why it’s not worse than Android+Kotlin?

Flutter набирает все большую популярность, формируется сообщество, любители ну и без хейтеров не обходится. В статье автор разрушает самые популярные мифы о Flutter, а именно:

1️⃣ Пользователь заметит, что приложение нативное либо нет
2️⃣ Dart странный язык
3️⃣ Иерархия виджетов во Flutter трудночитаемая
4️⃣ На Flutter вы не можете использовать Gson или Moshi
5️⃣ На Flutter нет корутин 😢
6️⃣ На Android мы реализуем MVVM с LiveData-ами
7️⃣ На выходе у Flutter получается APK большого размера
8️⃣ На Flutter у вас не будет популярных библиотек
9️⃣ Мое SDK не работает на Flutter
🔟 Crashlytics недоступна на Flutter

На мой взгляд автор расписал все хорошо. Flutter - молодая технология. Она использует диковинный язык, имеет свой взгляд на архитектуру приложения, и требования, которые накладываются устройствами, где работают приложения.

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

Но после прочтения статьи у меня все также остаются вопросы:
Читабельны ли будут стектрейсы крешей в Crashlytics?
Можно ли сейчас сделать Instant App с Flutter?
Что с взаимодействием с железным API: камера, датчики, модули связи и пр. ?
Как решаются проблемы с разным видом стандартного UI в ОС? Например, уведомления в системной панели.
Насколько быстро добавляется поддержка свежих версий ОС (Android Q и iOS 13)?
#Library

Valigator

Полезная библиотека, позволяющая удобно писать валидаторы, для EditText на Kotlin.
#Git

"Ungoing Thing with Git" by Tower GIT

Полезный cheetsheet с откатом изменений в GIT
👍1
#Library #Span

Rialto by Mark Allison

В Android есть поддержка парсинга HTML текста с форматированием, например:
```<string name=”noscript”>Best practices for <b>text</b> on Android</string>```
с помощью android.text.Annotation вы можете кастомизировать существующие стили или вовсе добавлять новые. Например:
```<string name=”noscript”>Best practices for <annotation font=”noscript_emphasis”>text</annotation> on Android</string>```
Также важным является то, что таким образом любой ваш кастомный Span может быть сериализован и передан в другое приложение и восстановлен.

Но не все так сладко, так как чтобы все это заработало необходимо добавить много кода вокруг для обработки Annotation. Mark Allison решил упростить эту задачу и сделал библиотеку Rialto для этого. Подробности найдете в документации на Github и из серии статей:

AnnotationSpans – Part 1
AnnotationSpans – Part 2

Rialto – Getting Started
Rialto – Advanced Usage
Rialto: V1.1.0
#R8 #Optimization #Kotlin

"R8 Optimization: Staticization" by Jake Wharton|Google

Новая часть статей о компиляции Java кода в Android. В новой статье рассматривается R8 - замена ProGuard от Google. R8 - это не отдельная утилита, а расширение D8, либо более простая формула R8 = D8 + оптимизации.

В статье рассматривается первая оптимизация, которую выполняет R8 - конвертация обычных методов в статические. Вы можете узнать о том, как это выполняется для Companion Object классов в Kotlin.
#Dagger #Modularization #Architecture

"Using Dagger in a multi-module project" by Marcos Holgado

Последний тренд в архитектуре Android приложений - это модуляризация (разбиение на Gradle модули). Ее преимущества:
👉 изоляцию функционала друг от друга
👉 более высокая скорость инкрементальной сборки проекта
👉 возможность поддержки Instant Apps и Dynamic Features
👉 меньше конфликтов при работе нескольких разработчиков над проектом.

Преимущества этого подхода прекрасны, но проблема в том, что интеграция подхода в проект непроста, особенно если в уже существующий.

Одна из трудных задач при миграции в многомодульный проект - это разделение графа зависимостей Dagger. В статье вы найдете путеводитель, как пройти путь от одного модуля в множество и нигде не заплутать.

Хорошее видео о модуляризация вашего приложения от Денис Неклюдов — "Как не состариться во время сборки: Kapt и другие приключения"
#Google Play

In reviews we trust — Making Google Play ratings and reviews more trustworthy

В Google Play провели тотальную чистку отзывов и рейтингов, которые посчитали неприемлемыми: фейковые, нарушающие политику Google Play или специально предназначенные для занижения или завышения рейтинга приложения.
#Gradle #Kotlin

Gradle Site plugin was updated to 5.0

Не так давно вышел Gradle 5.0 и вот только сейчас Gradle полностью обновила пример по написанию своих собственных плагинов, добавив все новые функции. и теперь пример полностью на Kotlin 🎉.
#Kotlin #Performance #Benchmark

"Kotlin performance on Android" от Александра Смирнова

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

Спойлер результатов - все примерно одинаково, но если вы еще включите R8/Proguard то результаты будут лучше, так что используйте их для релизных сборок вашего приложения.
#System

"Как работает SystemUI в Android" от @miproblema

Задумывались ли вы что происходит для отображения UI чтобы сделать ваше видео потише? А как работает отображение последних приложений? В статье автор разобралась покопалась в нутрах того, что происходит для запуска системного UI.
#WorkManager #ArchitectureComponents

https://developer.android.com/jetpack/docs/release-notes#december_19_2018

Под новый год Google радует нас подарками - вышел первый beta релиз WorkManager. Так что можно начинать интегрировать его в ваши приложения: API меняться не будет, за исключением критических багов, да и за последние 6 месяцев там было проделано много работы, как результат - библиотека уже стабильна.