Size: a a a

Android Broadcast

2018 November 22
Android Broadcast
#Emulator

На конференциях в Google я видел много докладов с нериметным именем и спикерами не из первого эшелона, но получал от них много информации. В этот раз доклад о Android эмуляторах не подвел! Ребята изложили материал очень доступно и сделали демо.

Что нового и полезного я узнал из видео
* ВОзможность работы с гироскопом, акселерометром и пр. сенсорами в эмуляторе
* Разрабатывается интеграция с большей интеграцией аппаратного ускорения на  macOS
* Возможность поддержки OpenGL 2 & 3
* Поддержка GPU Snapshot
* Несколько экземпляров одного эмулятора с возможностью загрузки различных Snapshot в них
* Поддержка ARCore - библиотека с Google в дополненной реальности
* Сохранение Snapshot уменьшено с 5-10 секунд (Macbook Pro 15" 2015) до < 1 секунды (прогресса в UI не увидел)

https://youtu.be/lL2nKEVmMjc
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
2018 November 23
Android Broadcast
#FiresideChat

https://youtu.be/FV3iN4PIB5U

Один из моих любимых форматов на Google конференциях - это Fireside Chat, когда вы можете услышать интересные ответы от гуглеров, разрабтывающих Android.

Для вас я подобрал выборку самых интересных вопросов/ответов из этого общения:

👉🏻 Вопрос: Kotlin довольно популярен и разработчики активно на на него переходят, но довольно тружно порой убедить в переходе менеджмент более консервативных компаний таких как финансовые или страховые, у которых IT не является направлением сферы. Есть ли какие-то презентации или другие материалы чтоыб презентовать необходимость в переходе на Kotlin?
👌 Ответ: Материалов нет. Рекомендую использовать презентацию Christina Lee (как я понял разговор был о этом выступление "Life is Great and Everything Will Be Ok, Kotlin is Here (Google I/O '17)")

👉🏻 Вопрос: Android Lint очень классная тулза, но для больших проектов анализ выполняется очень долго даже при наличие небольших изменений. Возможно ли сделать инкрементальным и ускорить его работу?
👌 Ответ от Tor Norbye: Ускорять работы не планируется. Даже планируется сделать наоборот проверки более глубокими и работать они будут медленее. Android Lint полностью использует Gradle Cache API, но в силу сложности анализов не представляется сделать эффективным инкрементальный анализ. Как решение предложено было делать анализ Lint каждую ночь.
Лично я задумался над тем чтобы прогонять только проверки уровня Error на каждом ПР, а все остальные выполнять ночью 🌙.

👉🏻 Вопрос: Instant Run часто выполняет перезапуска приложения и работает неэффективно. Ведутся ли работы над его улучшением?
👌 Ответ: Проблема известная и работе Instant Run будет исправляться и улучшать в рамках будущего объявленного багфикса и ускорения Android Studio (Project Marbel).

👉🏻 Вопрос: Android разработка сейчас слабо представляется на устройстве в котором нет 4 или более ядерного Core i5/i7, 16 Гб оперативной памяти и SSD с хорошей скоростью. Есть ли движения в плане разработке на слабых устройствах и компиляции кода на mainframer-е?
👌 Ответ: Этот вопрос обсуждалась и до сих пор обсуждается, но решение этой задачи очень сложное, поэтому пока движений в этом направление нет. Будет проводиться улучшение по минимизации необходимых ресурсов для работы в Android Studio.
источник
Android Broadcast
👉🏻 Вопрос: * Code Coverage отчет через Gradle с использованием JaCoCo некорректен: не игнорируется генерируемый код, нет корректной интеграции с Kotlin. Это особенно огорчает на фоне того что Coverage Report встроенный в Android Studio выдает корректныке резульатты. Также печалит что нет никаких руководств по настройке. + боль того что нельзя запускать JUnit тесты по одному классу/методу из Android Stduio.
👌 Ответ: Эти проблемы известные и будут решаться в рамках Project Marbel в ближайших релизах Android Studio.
От себя добавлю что я смог запускать отдельные классы/методы тестов в AS 3.2 с помощью запуска JUnit 4 тестов как JUnit 5 + Vintage

👉🏻 Вопрос: Будет ли добавлена поддержка JUnit 5 для тестов в Android, тем более поддержка со стороны Gradle уже есть несколько релизов.
👌 Ответ: Да, это важный функционал и он будет взят на заметку.

👉🏻 Вопрос: Контрибьютить в AOSP довольно непросто. Мало кто кроме гуглеров знает как это делать (опрос прямо в зале был). Особенно печально стало когда AndroidKtx убрали из Gtihub и продолжили разрабатывать в AOSP. Почему не происходит хостинг проектов в Github?
👌 Ответ: Команда старается делать процесс котрибьюшена в код AOSP как можно более простым. Разработчики из Android команды очень ожидают что сообщество будет предлагать изменения и улучшения в бибилиотеки, но не платформу, так как ее разработа ведется закрыто до релизов.

👉🏻 Вопрос: Работа с Camera в Android непростая. У каждых OEM производителей свой реализация в силу чего в коде появялется много разветвление для того чтобы заставить работать приложение с камерой. Почему Google не возьмет под контроль API и не заставит производителей стандартизировать реализацию? + будет ли убрана полностью поддержка Camera 1 API ?
👌 Ответ: Реализация API камер проиводителя очень разнится из-за подходов. Ведутся работы по созданию библиотеки в рамках Jetpack, которая сделает общий интерфейс для работы с камерой между Camera 1 и Camera 2 и решит проблемы по реализации камера у различных OEM.  Camera 1 все также будет пристуствовать по причине того, что Android поддерживает слабые устройства, железо которых просто не может работать с Camera 2.
источник
2018 November 24
Android Broadcast
#Kotlin #Coroutines #RxJava

https://youtu.be/1lEG1CPkRaw

Владимир Иванов на прошедшей конференции AppsConf рассказал о том как затянуть корутины в продакшен, особенно если вы увязли в Rx и потеряли надежду что для вас есть другой путь.

Для тех кто не хочет длинной презентации может почитать статью с текстовым описание доклада
https://habr.com/company/oleg-bunin/blog/429908/
источник
2018 November 25
Android Broadcast
#Testing #Tools

Google аквтино разрабтывает новый инструментарий - Nitrogen, который позволяет вам легко масштабировать тесты и управлять ими.

https://youtu.be/-_kZC29sWAo
источник
Android Broadcast
Основные преимущества нового инструмента:
* Поддержка  различных систем для запуска тестов (CI, Gradle, Bazel и пр.)
* Абстрагирование от устрйоства на котором происходит выполнение тестов: реальное, Robolectric, эмулятор, Firebase Test Lab
* Кроссплатформенная: macOS, Linux, Windows
* Единая конфигурация
* Возможность написания собственных плагинов
* Единый отчет
* Выполнение на одном устройстве, нескольких (например телефон + телефон либо телефон + часы) либо параллельный запуск
* Множества оптимизаций для ускорения запуска устройств
* Интеграция в Firebase и Android Stuiod

Пока утилита недоступна 😔, первую альфа планируют показать только в Q1'19
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник
Android Broadcast
источник