Android Broadcast
14.2K subscribers
3.49K photos
335 videos
11 files
5.87K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Podcast #Kotlin #Multiplatform

Android Broadcast Podcast #8: "Kotlin Mobile Multiplatform"

Mobile имеет огромное значение для Kotlin, причем настолько, что появилась отдельная команда - Kotlin Mobile MultiPlatform. Они сделали свой сайт и двигаются только вперед, чтобы показать Flutter и React Native, как шарить код правильно! Упустить шанс сейчас нельзя, и я позвал в гости представителей команды: Анастасию Капанину и Кирилла Шмакова.

Мы обсудили множество тем:
- Kotlin MPP vs Flutter
- Большие компании, которые уже используют Kotlin MPP
- Что можно сделать с Kotlin MPP, но не получится с Flutter или ReactNative
- Как продавать Kotlin MPP iOS команде
- Когда Jetpack Compose станет Multiplatform?
- Как Kotlin/Native сейчас тормозит MPP
- Плагины для Kotlin компилятора
- Kotlin Mobile MPP плагин для Android Studio
- Что Kotlin 1.4 принесёт для Multiplatform разработки?
- Какие библиотеки с поддержкой Kotlin MPP нам ждать в этом году
#Security #Biometric

Using BiometricPrompt with CryptoObject: How and Why

Практически все современные смартфоны имеют встроенные сканеры отпечатка пальца и распознавание лица. Последнее не у всех реализовано хорошо, но что имеем. Наличие таких сканеров позволяет нам шифровать данные, используя уникальный пользовательский ключ - отпечаток пальца или лицо.

В статье разбирается как в Android связать системный KeyStore и биометрическую авторизацию.
Есть ли у вас в коде свой класс BaseFragment? BaseActivity/BaseService/BaseBroadcastReceiver тоже считаются
Final Results
84%
Да
7%
Нет
4%
Только в Legacy
1%
Не знаю
3%
Не скажу, ведь это сверхсекретно
#Database #SQLite #NoSQL

Mobile Databases in Android

Сравнение разных БД, которые вы можете использовать на Android. Также вы найдете описание того, почему мобильная БД важна.

Для тех кто хочет увидеть только таблицу сравнения, то смотрите здесь
#Jetpack #ArchitectureComponents #Lifecycle

Optimizing Android ViewModel with Lifecycle 2.2.0

Обзор последних возможностей библиотек Lifecycle (LiveData, ViewMode, Lifecycle), ktx расширений и лучших практик:
👉 Делегаты ViewModel
👉 Почему не стоит использовать AndroidViewModel
👉 Какие данные не стоит передавать в ViewModel
👉 Сохранение данных ViewModel
#KotlinVocabulary #Kotlin #AndroidDev

Collections and sequences - Kotlin Vocabulary (5:17)

Google решила что вместо создания нового контента, лучше снять видео на свою старую статью
Say no to BaseActivity and BaseFragment

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

Но Android ушел дальше и вы можете заменить их с помощью ActivityLifecycleCallbacks и FragmentLifecycleCallbacks. Также можете обратить внимание на Lifecycle
#Kotlin

Вышел Kotlin 1.3.70

Вышла новая версия Kotlin. Не 1.4, но тоже сладко:
👉 Расширена функциональность StringBuilder, но на JVM не почувствуете, так как сделали перенос функционала с JVM в Common
👉 Часть функционала в KClass теперь не требует зависимости kotlin-reflect
👉 Аннотации Experimental и UseExperimental переименованы в OptIn и RequiresOptIn
👉 Clock и ClockMark переименованы в TimeSource и TimeMark
👉 Добавлена kotlin.collections.ArrayDeque
👉 Collection Builders: buildList(), buildSet() и buildMap()
👉 Новые функции для коллекций: scan(), scanReduce()
👉 Возможно генерации аннотаций типов в байткода для target 1.8+
👉 Улучшение поддержке *.gradle.kts
👉 Улучшение отладчика
👉 Улучшение Kotlin скриптов и примеры
#GoogleIO

Google I/O 2020 отменён

В этом году конференции Google I/O не будет. Точнее в привычном формате для горстки избранных, кто смог получить туда билет. В этом раз вся конференция будет только онлайн. Причиной всему китайский коронавирус.

Также было объявлено об отмене конференции Microsoft MVP Summit. Интересно отменят ли Kotlin Conf в сентября?

Как по мне, то даже лучше. Спикер будет говорить прямо в камеру и показ слайдов заточен будет под онлайн формат.
#AppBundle #DynamicFeature

Local development and testing with on-demand modules

Возможность загрузки модулей вашего приложения динамически - прекрасная возможность Google Play, но тестировать ее можно было только через публикацию App Bundle через Google Play Console ☹️.

В утилите bundletool 0.13.0 появилась возможность тестировать эту фичу локально. Все подробности в статье
#UI

How to implement skeletons and shimmering effects on layouts and recyclerViews for Android

Вместо того чтобы показывать прогресс посередине экрана или вообще ничего (надеюсь так не делаете) можно рассмотреть модный вариант - skeleton + анимация с эффектом Шиммера.

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

В статье разбирается как это реализовать при помощи библиотеки AndroidVeil
Think before using BuildConfig.DEBUG

Я уверен, что в большинстве проектах, если не во всех используется константы из BuildConfig, а в особенности BuildConfig.DEBUG.

Хорошо это или плохо - вы сможете найти в статье, но уже в название автор спойлерит что не всегда это удачное решение. Суть проста - константа не дает гибкости (
#Material #Animation

Implementing Motion

Google показала новую утилиту, которая позволит упростить коммуникацию между разработчиками и дизайнерами для создания прекрасных анимаций - Direct.
#Meetup #НижнийНовгород

Материалы с нижегородского Android-митапа компании Avito

Стали доступны записи докладов с Android совместного митапа Avito и GDG Gorky в Нижнем Новгороде, который прошёл 29 февраля.

Я рассказал о том, почему стоит выбрать Kotlin Coroutine для выполнения асинхронных задач в Android.

Жители Львова не смотрите, я еду к вам! В конце марта я выступлю на митапе Kotlin User Group, расскажу этот доклад с добавлением нового контента. Анонс совсем скоро
#Conference #Минск #Flutter

FlutterConf.by - первая конференция по Flutter в Беларуси

18 апреля 2020 (сб) пройдет первая конференция по Flutter в Беларуси. Мы хотим собрать всех Flutter энтузиастов и компании, которые хотят развивать это направление или уже сделали это и ищут специалистов. В программе вас ждут доклады, воркшоп и возможность пообщаться с коллегами.

Уже среди заявленных спикеров (список пополнится):
👉 Remi Rousselet, автор пакетов Provider and Flutter Hooks
👉 Геннадий Евстратов, Lead первого проекта на Flutter в Яндекс
👉 Александр Денисов, возглавляет Flutter компетенцию в EPAM

До 20 марта есть шанс купить билеты по сниженной цене - 20 рублей!

На тему воркшопа вы можете повлиять - пишите свои пожелания в чате конференции и чтобы вам в целом хотелось увидеть на конференции.

Организаторами выступают Android Broadcast и SUP.
Принимайте участие в розыгрыше билетов на FlutterConf.by.

Условия участия простые:
1️⃣ Подписаться на Telegram канал
2️⃣ Подписаться на YouTube канал Android Broadcast (тут появятся записи докладов)
3️⃣ Заполнить анкету участника розыгрыша

Розыгрыш состоится 12 марта в 21.00
#ProGuard #R8 #Navigation

How to generate Proguard/R8 rules for Navigation component arguments

Navigation Architecture Component не имеет поддержки работы с ProGuard/R8, точнее параметры, которые вы указываете в XML графе не добавляет в исключения типы, которые указываются как аргументы.

Исправляется это добавлением всех этих типов в proguard-rules.pro вашего проекта, но будет правильнее автоматизировать этот процесс, что и приводится в статье.
#OkHttp #Networking

OkHttp Interceptor - Making the most of it

Популярная библиотека для работы по сети по протоколу HTTP OkHttp используется во всех проектах на Android, где есть выход в сеть.

Библиотека имеет одну удобную возможность - перехват любого запроса (Intercepting). С помощью нее можно логировать любой запрос (например, OkHttp Logging Interceptor).

В статье показывается пример как вы сможете использовать мощь Interceptor в своем коде.