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
#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 месяцев там было проделано много работы, как результат - библиотека уже стабильна.
#R8 #Optimization #Kotlin

"R8 Optimization: Null Data Flow Analysis" by Jake Warton|Google

Продолжение статей о том какие оптимизации выполняются в R8. В новой статье вы узнаете о том как оптимизируется работа с null.
#GooglePlay

"За что Android-разработчики ненавидят Google" от Евгения Трифонова

Рассказ о том что автоматизация процессов не есть всегда хорошо на примере удаления приложений из Google Play и того какие муки проходят разработчики, чтобы восстановить свои приложения там.
#GooglePlay

"Создаем инструменты для глубокого анализа рейтинга приложений в Google Play Store" от Skillbox

История о том как ребята решили создать модель предсказания рейтинга приложения, на основе чего выводили данные и что из этого вышло.

Результат исследований - делайте игру в категорию "Семейные" для всех возрастов 😁
В последнее время на канале я стал писать о Flutter на канале, так как это тема стала интересной в сообществе. Я хочу узнать ваше мнение о контенте по Flutter. За обсуждением предлагаю перейти в @android_broadcast_discussions.
anonymous poll

За Flutter – 30
👍👍👍👍👍👍👍 54%

Только Android SDK – 18
👍👍👍👍 32%

Без разницы – 8
👍👍 14%

👥 56 people voted so far. Poll closed.
#Kotlin #Dart #Flutter

"From Kotlin to Dart — an Android developer’s perspective" от Łukasz Wasylkowski|Tooploox

Flutter создает все больше хайпа в мире мобильной разработки, но один из самых популярных вопросов в сообществе - "Почему Dart?". В ответе на это даже есть целый развернутый ответ на FAQ Flutter. С другой стороны, я как Android разработчик уже давно наслаждаюсь всеми возможностями Kotlin и отсутсвие какого-то функционала в Dart меня смутило, например extension функций, null safety, sealed классов и прочего. В статье вы найдете сравнение Dart и Kotlin.

Я очень надеюсь, что появится поддержка Kotlin/Dart, JetBrains услышьте призыв!
#Kotlin #Coroutines #LibUpdates

KotlinX.Coroutines 1.1.0 Released

Вышла новая версия библиотеки корутин. Апдейт направлен на улучшения дебага, производительности и стабильности корутин, а именно было сделано следующее:
👉 Читабельные стектрейсы корутин 🎉 - используйте системное свойство kotlinx.coroutines.debug
👉 Новый модуль kotlinx-coroutines-debug 🎉 - теперь можно получить дамп работы корутины
👉 Новый модуль kotlinx-coroutines-test 🎉 - тестировать становится удобнее, появилась функция Dispatchers.setMain() для подмены Dispatchers.Main в тестах
👉 Dispatchers.Default теперь потребляет меньше CPU ресурсов в JVM
👉 MainScope() и CoroutineScope.cancel() позволят вам в 1 строку создавать CoroutineContext для корутин
👉 Корутины теперь собираются в progressive режиме
👉 Множество других улучшений, исправлений багов и обновлений в документации