Android дайджест #21: Firebase, Machine Learning, RxJava
А также: Material Design, App Shortcuts, работа с батареей, Kotlin Anko, трекинг приложений, аутентификация, In-App billing и еще много интересного!
Новости и аналитика
Google Play Services 10.0.1. Последний крупный релиз, который поддерживает Android 2.3.x (Gingerbread). Начиная с версии 10.2.0 минимальным станет API 14 (Android 4.0.1, Ice Cream Sandwich).
Android Studio 2.3 Canary. Новые проверки для Lint, конвертация в формат WebP, очередное ускорение сборки приложения.
Победители Material Design Awards 2016.
Google запустил новый сайт по Material Design и инструменты для совместной работы дизайнеров.
Google научился фильтровать фальшивые установки в Play Store.
Почитать/посмотреть/попробовать
Exploring Android Nougat 7.1 App Shortcuts. Изящное расширение UI, но без портируемости на старые версии.
Как всё-таки работают ссылки в Android и Java. Классический вопрос из Java с примерами жизненного цикла Activity.
Machine Learning is Everywhere: как и в каких SDK имплементируют ML.
Как создавать стикеры в стиле Snapchat для вашего приложения. Пример включает в себя вращение, изменение размеров и перемещение.
Mastering the Terminal side of Android development. Сборка, тестирование и отладка приложений из правильно настроенной консоли.
Как рисовать custom view. Жизненный цикл, необходимые методы и атрибуты.
Почему старые способы аутентификации sucks, и как сделать её стильно, модно и молодёжно. Используется Android Keystore System.
Как должно вести себя приложение после kill process.
Эксперимент в Яндексе: измеряем потребление батареи на мобильных устройствах.
The Ultimate Pre-Release Checklist for Android App Success On Play Store.
Запускаем свою игру на Android TV.
Android In-app Billing: от мобильного приложения до серверной валидации и тестирования.
RxJava
Детально про изменения в RxJava 2.0 от ключевого контрибьютора — David Karnok.
State propagation in Android with RxJava Subjects. Как можно передавать состояние и почему лучше это делать с Rx.
Reactive Views: делаем повторный вызов при ошибке.
Pierre-Yves Ricau об особенностях дизайна класса Throwable и проблемах, которые этот дизайн создал в RxJava and Retrofit.
Как заставить Espresso ждать background schedulers из RxJava.
Kotlin
Как Kotlin стал главным языком нашей команды для Android.
Our Experiment Building a Multiselection Solution for Android in Kotlin.
400% faster layouts with Anko. Сравнивали с XML Layouts на различных устройствах.
Инструменты
Get access to raw profiling results with plugins for Pury. Можно экспортировать данные даже в Google Analytics.
Genymotion: Android OS теперь доступна как Amazon Machine Image.
Очередные 50 Android Studio Tips, Tricks & Resources.
Wojtek Kaliciński: Как выжать максимум из Android Studio APK Analyzer.
Аналитика в приложениях и Firebase
Ключевые принципы трекинга приложений для разработчиков. Почему данные нужно трекать, с помощью каких инструментов, как передавать и как отлаживать.
Organize your analytics code. Простые истины, о которых умолчала официальная документация.
Firebase Dev Summit: записи докладов и блог. Рекомендую обратить внимание на части про аналитику, приложения без инфраструктуры и crash reporting.
Push notification in Android using Firebase Cloud Messaging.
Как делать поэтапное развертывание (staged rollout) функциональности приложения с Firebase Remote Config.
Полезные инструменты и библиотеки
Android-proguards: Use one line to apply almost all famous libraries of proguard configurations.
Depth-LIB-Android: Объемное рисование.
LongPressPopup: Настраиваемый Switch View с двумя и тремя состояниями.
Blurkit-android: Быстрый blur эффект.
Tinker: Добавление hot-fix в приложение. Поддерживает обновление dex, библиотек и ресурсов без переустановки apk. С установками из Google Play не работает.
ChipsLayoutManager: Custom layout manager для RecyclerView с анимацией и перемещением элементов между строками.
Хорошего вам настроения и стабильного приложения! :)
Какие темы/материалы/ивенты стоит добавить в дайджест — пишите в комментариях, твиттер @sergiizhuk или воспользуйтесь специальной формой.
← Предыдущий выпуск: Android дайджест #20