А также: обсуждение анонсов Google I/O, победа Google в патентном споре, анализ приложения с ClassyShark, динамический blur-эффект, программирование на Go, Kotlin и Gradle, защита приложений, GDG DevFest и ещё много интересного.
Новости и аналитика
Google побеждает Oracle в суде после шестилетней тяжбы на миллиарды долларов. Камнем преткновения были 11500 строк java кода в ОС Android.
Доля Androidна рынке существенно выросла по всему миру.
Google готовится добавить Raspberry Pi 3 в AOSP, теперь это будет официально поддерживаемое устройство.
Google Nearby: платформа для гиперлокации для Android. Будет доступна как часть Google Play Services, начиная с версии KitKat.
Google будет брать только 15%от суммы, которую платит пользователь за подписку на приложение/сервис.
RxAndroid 1.2.0. Улучшена работа с планировщиками.
Архитектура приложений
Designing Offline Application Case Studies. Доклад с Droidcon San Francisco от разработчика из Google.
Retaining Presenter on configuration change with minimal overhead. Находим скрытые возможности в FragmentActivity.
SOLID: Principles for Android Developers. Серия статей от Donn Felker.
Little stories about Android application architecture. 27 страниц печатного текста, всё обо всём, прилагается пример на GitHub.
Шаблон MVP архитектурыдля Android Studio.
Google Agera: новый подход к реактивному программированию для Android от команды Google. Комментарийпо поводу связи с RxJava. Сравнительный анализс ReactiveX.
Инструменты разработчика
Как поделитьсявашими настройками Android Studio с другими членами команды.
8 ways to analyze your app with ClassyShark. Слайды от Boris Farber — автора приложения.
Мониторинг сетевого трафика при отладке приложенийс помощью логирования и внешних прокси.
Строим графики размера APK файла и dexcountв Jenkins.
Автоматизация снятия скриншотовдля Play Store и дополнительного тестирования.
10 Things You (Probably) Didn’t Know You Could do in Android Studio.
Уменьшение размера APK с asset minification.
Android-go: пишем нативные (NDK) приложения на языке Go. До продакшен-пригодности еще очень далеко.
Instant Run & JRebel: продолжаем ускорять сборку приложений
Reto Meier рассказывает об Instant Runиз первых уст и иллюстрирует разные варианты запуска приложения.
Getting started with JRebel for Androidв блоге JRebel.
Долгожданное сравнение функциональности JRebel и Instant Runв блоге JRebel. Несложно догадаться, кто же в этом сравнении победил :)
Оптимизация и быстродействие UI
RenderThread: отдельный поток для выполнения анимаций, который появился в API 21.
Простая и быстрая обработка изображений с RenderScript. Задействуем GPU телефона без работы с OpenGL.
Уменьшаем размер PNG файлов, рассказывает Colt McAnlis.
Как работает VectorDrawable.
Kotlin
Gradle Meets Kotlinи Kotlin Meets Gradle. Пишем скрипты на Kotlin начиная с Gradle 3.0.
Подборка из 7 полезных фич Kotlinот Dan Kim.
Generics в Kotlin vs. Generics в JAVA: сходства, различия, особенности.
Больше об Android N и новинках с Google I/O
Random Musings on the N Developer Preview 3 от Mark Murphy.
Using ConstraintLayout to design your views: пошаговый учебник от Google.
Готов ли ConstraintLayoutк продакшен-проектам и какие есть баги.
Be Careful of Drag-and-Drop on Android N. Drag-and-drop из другого приложения без дополнительных разрешений может привести к непредсказуемым результатам.
The new Firebase Crash Reporting.
Push уведомления в Android с помощью Firebase Cloud Messaging.
Обновлённая документация: Design Principles for Android Wear.
Как приготовить ваши приложенияк работе на ChromeOS.
Designing for Multi-Windowот Ian Lake.
Multi-Window в Android N: что нужно знать разработчику.
И еще почитать/посмотреть/попробовать
Improving the Security and User Experience of your Google Sign In Implementation.
Async Injection in Dagger 2 with RxJava.
Notes about protecting HTTPS for Android/Java apps.
A beginners guide to an effective Android testing strategy.
Why Is ClassLoader.getResourceAsStream So Slow in Android?
Пример работы с RxJava: конвейерная линия.
GCM Network Manager: уменьшаем расход батареи при работе с сетью.
Исходные кодыприложения конференции Facebook F8 2016 на React Native. Детальное описание — в серии статей на makeitopen.com.
AndroidAudit: набор вопросов, которые стоит задать, когда вы принимаете проект у другой команды или фрилансера.
Performance Problems in Libraries and SDKs.
Understanding Android Naming Conventions. Почему и зачем были выбраны именно такие названия для Activity, Fragment, AsyncTask, Context. Настоятельно рекомендуем новичкам.
The absolute minimum Android developers need to know about UX. Серия из 5 статей.
Secure those bits: несколько новых инструментов для защиты данных от команды Android Security.
О выборе правильного Background Scheduler. Рассмотрены AlarmManager, JobScheduler, GCM Network Manager, Sync Adapters и Doze Mode.
Восемь способов сделать memory leakв вашем приложении.
Retrofit 2: Code walkthrough. Что под капотом у новой версии самого популярного HTTP клиента.
The Annotated Programmer. Chet Haase остроумно рассказывает о тех аннотациях, которые иногда хотелось бы использовать каждому разработчику.
Полезные инструменты и библиотеки
BlurView: динамический blur эффект.
VectAlign: инструмент для создания сложных перетекающих анимаций VectorDrawables. Позволяет сделать переход между любой парой SVG изображений.
Android-Job: библиотека для работы с фоновыми задачами от команды Evernote.
Google Flexbox Layout: новый ViewGroup для наилучшего заполнения пространства с динамическими размерами. Концептуально повторяет flexbox из CSS.
Dryrun: устанавливаем open-source приложения или библиотеки прямо из командной строки.
ReDex: Android Bytecode оптимизатор от Facebook.
RxJavaProGuardRules: RxJava настройки для ProGuard в виде библиотеки.
Google Error Prone: обнаруживаем стандартные ошибки в java-коде на этапе компиляции.
PiracyChecker: защита вашего приложения от реверс-инжиниринга и взлома с помощью Google Play Licensing (LVL), подписи APK и других приёмов.
Анонс
Какие темы/материалы стоит добавить в дайджест — пишите в комментариях или твиттер @sergiizhuk.
← Предыдущий выпуск: Android дайджест #16