Android дайджест #19: Nougat, RxJava, Dependency Injection
А также: сворачивание Project Ara, Gradle 3.0, Fuchsia OS, опыт перевода 100% кода на Kotlin, изменения в политике Play Store, глубокое погружение в ConstraintLayout, сборка из AOSP, onboarding библиотеки и еще много интересного!
Image source: technolat.com
Новости и аналитика
Android Nougat 7.0 шагает по миру, счастливые обладатели гуглофонов получают обновление первыми.
Google работает над новой ОС Fuchsia, подробностей пока мало, ядро Linux не используется.
Android Support Library revision 24.2.0. Прекращена поддержка API8 и ниже, v4 Support Library разбита на части, много изменений API и deprecations.
Обновление Material design guidelines. Notifications, Widgets, подтверждения действия пользователя, более детально о навигации в приложениях.
Google прекратил разработку Project Ara.
Проверка приложений в Play Store: при отказе теперь объясняют, что нужно исправить.
В Cyanogen уволили часть сотрудников, руководство опровергает слухи о смене курса компании.
Вышел Gradle 3.0. Ждем соответствующего обновления Android Plugin for Gradle.
Остались двое: альтернативы iOS и Android больше нет.
Программу Google Play Early Access открыли для всех разработчиков.
Почитать/посмотреть/попробовать
Уменьшаем размеры загружаемого пользователем файла APK — рекомендации от команды Google Play.
Как работает Doze Mode в Android Marshmallow и Nougat.
Наблюдения CommonsWare об усечении некоторых api в Android 7.0.
Как получить максимум от Crashlytics. «Хлебных крошки», тотальное логирование и хэши коммитов.
Уменьшаем число методов (methodcount) при работе с Dagger 2.
ConstraintLayout изнутри и снаружи. Варианты использования, алгоритмы и даже матмодель. Рассказывает Dave Smith.
Видео с Droidcon Berlin: Jon Reeve — Reverse Engineering is not just for hackers.
Как повысить продуктивность: 10 приёмов на каждый день. Android Studio, скрипты, аннотации, Gradle, Instant Run.
Репозиторий AndroidStudyGroup на GitHub: подборка слайдов и видео с конференции 360AnDev. Romain Guy, Chet Haase, Daniel Lew. Отдельно выделим Exploring Java’s Hidden Costs от Jake Wharton.
Анимированное «перетекание» векторных картинок с AnimatedVectorDrawables.
Lessons from converting an app to 100% Kotlin. Количество методов уменьшилось на 10%, количество строк кода — на 30%. Автор среди прочего описывает опыт миграции кода Retrolamda, RxJava, Guava и ButterKnife.
Цикл статей DI 101. Мало про саму концепцию Dependency Injection, зато есть практические примеры с Dagger 2.
Очередной вариант Android code style guideline — на сей раз от Buffer.
Android ImageView ScaleType: A Visual Guide.
The many flavors of commit(). Изучаем варианты использования FragmentTransaction.
Что нужно помнить о строках в Android.
Сборка и запуск ОС Android из исходников AOSP на Nexus 7.
DiffUtil is a must! В Support Library 24.2.0 добавлен класс для нахождения минимального числа элементов, которые нужно обновить в RecyclerView Adapter при изменении контента.
DOU Labs: як в GlobalLogic спроектували розумний Android для розумної дошки.
DOU Проектор: Android приложение для чтения Ленты DOU.
Тестування коду: об’єднання звіту покриття для android- та unit-тестів з Jacoco і SonarQube.
What 2 Years of Android Development Have Taught Me the Hard Way.
RxJava
Переходим на «реактивный» способ мышления на примере Donald Duck и его племянников.
Снова про основы Rx, на сей раз с набором простых ответов на стандартные вопросы новичков и примерами кода.
RxJava Backpressure в новом формате «Stackoverflow documentation».
Fragmented Episode 053: Jake Wharton on RxJava (2).
Репозиторий с примерами работы на RxJava 2.0 и миграции с версии 1.x.
Как загружать «тяжелые» библиотеки при показе Splash Screen. Dagger 2 and RxJava to the rescue!
Полезные инструменты и библиотеки
SlyceMessaging: A messaging library for Android. Воспроизведена идея iOS-библиотеки JSQMessagesViewController.
ReadMoreTextView: TextView с усекаемым текстом.
Tiger: The fastest java dependency injection framework. Неофициальная dependency injection библиотека от команды Google.
Сonfetti: UI библиотека для показа эффекта конфетти.
FrescoImageViewer: Полноэкранный просмотр изображений для библиотеки Fresco с поддержкой жестов «pinch to zoom» и «swipe to dismiss».
Onboarding: красиво знакомим пользователя с вашим приложением.
SlidingTutorial-Android: Еще один вариант тьюториала с анимацией.
Какие темы/материалы/ивенты стоит добавить в дайджест — пишите в комментариях, ЛС или твиттер @sergiizhuk.
← Предыдущий выпуск: Android дайджест #18