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
Почему только прокачка кодинга не сделает из тебя лучшего разработчика

Как быть крутым разработчиком? Многие программисты задавались таким вопросом. Я также всегда задавался этим вопросом, но мнение мое меняется с течением времени. В начале я делал большой упор на технические навыки, но со временем мои взгляды менялись и начали смещаться приоритеты. Статья очень подробно отразила их. В ней вы найдете навыки, которые важно иметь хорошему программисту, а главное почему.
#Coroutines

Using the synchronized keyword in coroutines?

Coroutine-ы отличаются по своему механизму работы от потоков, соответственно требует отличные от Java механизмы для решения стандартных задач, например synchronized или ReentrantLock. На замену им рекомендуется использовать Channel или Mutex.
Какую библиотеку для работы с JSON вы используете?
Final Results
81%
GSON
5%
Jackson
12%
Moshi
1%
JSON Java (org.json)
0%
Другое решение
1%
Не работаю с JSON
#SQLite #Tools

Android SQLite debug tools

Разбор инструментов для дебага SQLite:
👉 SQLScout (платная) - плагин для Android Studio и Intellij IDEA
👉 Facebook Stetho - дебаг Android приложений из Chrome консоли
👉 AppSpector (платная) - сервис для удаленного дебага Android и iOS
👉 SQLiteFlow (macOS, платная) - SQLite редактор

Самый богатая по возможностям из этих утилит - SQLScout. Она строится вокруг работы с SQLite БД и имеет следующие возможности:
👉 поддержка Room
👉 просматривать схему БД
👉 выполнять SQL запросы
👉 просматривать данные, редактировать и экспортировать
👉 визуализировать БД в виде диаграммы
#Gradle

Gradle Dependency: api vs implementation

Визуализация отличий между подключением зависимостей в Gradle через implementation и api
#AndroidX

AndroidX Versions

Наконец-то Google упростила способ понять какую версию библиотеки из AndroidX сейчас можно использовать: доступна таблица всех библиотек из AndroidX с текущей стабильной, rc, beta и alpha версиями.
#AndroidStudio #Emulator

Moving Android Studio and Android Emulator to 64-bit versions

Google убивает 32-битные версии Android Studio и эмулятора. В первую очередь это затронет пользователей Windows.

Android Studio 3.6 и Android Emulator 28.0.5 станут последними версиями, содержащие x32 варианты. До конца 2020 года их можно будет скачать, а после ссылки на них будут удалены с официального сайта

Google как всегда слишком мягкие 😔
#AnnotationProcessor #kapt

Making incremental KAPT work

Все мы хотим быструю сборку проектов, но современная Android разработка переполнена различными библиотеками с процессорами аннотаций: Dagger, Glide, AndroidX, Room, Butterknife и пр. Их проблема заключается в том, что каждое изменение кода приводит к повторной генерации кода всеми процессорами.

Эту проблему решили в Gradle 4.7, добавив поддержку инкрементальной компиляции в процессорах аннотаций. К сожалению, из коробки это не работает и требует усилий разработчиков библиотек.

В Kotlin 1.3.31 в kapt добавили поддержку инкрементальной компиляции. Руководство по настройке вы найдете в статье.

Замечание: Gradle модуль будет работать с инкрементальным процесингом аннотаций только если все процессоры, использующиеся в модуле, поддерживают эту возможность.
#Gson

Kson - генерация Gson TypeAdapter & Factory для Kotlin data классов

Большинство современных решения для сериализации/десериализации JSON используют рефлексию, которая несете в себе низкую производительность и невозможность оптимизации кода при компиляции. Kson - библиотека, которая была создана с целью чтобы избавить вас от этого.
#KotlinEverywhere

Kotlin/Everywhere Minsk уже 7 сентября

Последние пару сообщества GDG Minsk и Belarusian Kotlin User Group упорно трудились над тем чтобы сообщить - 7 сентября состоится конференция Kotlin/Everywhere Minsk. Этот ивент является часть большой программы Kotlin/Everywhere от Google и JetBrains. Сейчас мы в начале пути самого масштабного события для наших сообществ. Следите за новостями в @gdgminsk_news и @belarus_kug!

Для тех кто хочет стать спикером открыто CFP
#Room #SQLite #ArchitectureComponents

Вышел Room 2.1.0

Вышла новая версия Room в которой появились следующие возможности:
👉 Поддержка FTS
👉 Поддержка AutoValue
👉 Улучшена поддержка RxJava
👉 Поддержка Kotlin Coroutines (пока только suspend функции, ждем поддержки Channel и Flow)
👉 SQL view на основе аннотации @DatabaseView
👉 Исправление багов
#DeepLink

How to manage a complex DeepLinks scheme on your Android App

Используете ли вы у себя deep link в приложениях? Когда у вас всего несколько ссылок, то объявление их простое, но с ростом их количества растет и сложность их описания. Android не поддерживает богатых регулярных выражений для описания deep link.

В статье рассматривается Gradle плагин manifestreplace-plugin, который упрощает описание deep link-ов.
#Koin #Dagger #DependencyInjection

KOIN for DEPENDENCY INJECTION on Android ► Is Dagger dead?

Актуален ли все еще Dagger 2 для Android разработки, когда Kotlin - основной язык для создания приложений под эту платформу и есть Koin? Разбор этого проводит Antonio Leiva - сертифицированный JetBrains тренер по Kotlin
#ArchitectureComponents #BestPractices

Распространенные ошибки при использовании Android Architecture Components

Повторение - мать учения. Поэтому рекомендую освежить или наоборот ознакомиться с рекомендациями по использованию Architecture Components:
1️⃣ Утечка LiveData Observer в Fragment
2️⃣ Повторная загрузка данных после смены конфигурации
3️⃣ Утечка ViewModel
4️⃣ Позволять View изменять LiveData
5️⃣ Создание зависимостей ViewModel после каждого изменения конфигурации
6️⃣ Хранение ссылки на View в ViewModel
#CleanArchitecture #Architecture #Kotlin #Multiplatform

Clean Architecture example with Kotlin Multiplatform

Хорошая архитектура - это неотъемлемая часть качественной разработки приложений. Поэтому все мы стараемся следовать Clean Architecture в разработке Android приложений. По ее правилам бизнес логика не должна быть привязана к платформе, а взаимодействие с платформенными частями должно осуществляться через абстракции - интерфейсы.

Что как не Kotlin Multiplatform (MPP) позволяет абстрагироваться от платформы и писать чистую БЛ. В статье рассматривается как это реализовать на примере разработки клиента для TMDb.

Замечание: Вы можете использовать аналогичные подходы без поддержки других платформ кроме как Android в MPP проектах
#Animations

Seamless Android app launch animations using Intent Source Bounds

Как кастомизировать анимацию запуска приложения из launcher, чтобы ваше приложение появлялось из иконки приложения с помощью различных анимаций: scale, circular reveal и др.?

Все это можно сделать при помощи Intent.setSourceBounds(Rect?). В статье вы найдете подробный разбор как реализовать анимацию запуска в своем приложении
#WorkManager #AndroidX

Workout your tasks with WorkManager — Intro

Первая статья из серии, включающих обзор модели памяти Android, существующих решениях для фоновых задач, что происходит под капотом и почему мы должны использовать WorkManager.

В первой статье рассматривается:
👉 Модель памяти Android
👉 Почему важная оптимизация расхода ресурсов (батарея, память и пр.)
👉 Существующие решения для работы приложения в фоне
👉 Почему и когда надо использовать WorkManager
TypedTextView

TextView c симуляцией набор текста
#Kotlin

Вышел Kotlin 1.3.40

Новинки минорного обновления языка:
👉 Новая система type inference развивается. В будущем она заменит текущую, но уже сейчас ее можно попробовать в IDE
👉 Новые функции для кодирования/декодирования строк в UTF-8
👉 Добавлена поддержка сторонних nullability аннотаций. Только в IDE 😞
👉 Появилась возможность получения reified типа с помощью рефлексии на JVM. Используйте функцию typeOf()
👉Оптимизированы trimIndent() и trimMargin(). Теперь для строковых констант они выполняются во время компиляции, а не во время выполнения кода.
👉 Улучшения в Multiplatform Project
👉 Улучшения в Kotlin/JS
👉 Улучшения в Kotlin/Native
👉 Исправление багов