Набор полезных, но не очень известных инструментов и библиотек Android.

Работая над статьями о 30 лучших библиотеках и проектах Android 2019 г. и 25 лучших библиотеках и проектах Android 2020 г., я наткнулся на множество замечательных инструментов и проектов, которые могут пригодиться в разработке приложений для Android ниже они приведены в случайном порядке. Пользуйтесь.
1. AinD Android (Anbox) в Докере
AinD запускает приложения Android, помещая контейнеры Anbox в Докер.

В отличие от аналогичных проектов на основе виртуальных машин,
AinD может выполняться на экземплярах IaaS без поддержки вложенной
виртуализации. Docker Hub: aind/aind
.
Предназначение:
-
Защита от кражи (см. часто задаваемые вопросы)
-
Совместимость с Android (через облако) для планшетов на iOS и Windows
2. Booster
Booster очень интересный инструмент: это простой в использовании, легкий, функциональный, расширяемый набор инструментов для повышения качества, предназначенный специально для мобильных приложений. Основная задача проекта решать вопросы качества, связанные с повышением сложности приложения например, проблемы производительностью, стабильностью и размером пакета.

Booster это набор модулей для оценки производительности, оптимизации многопоточности, встроенного индекса ресурсов, сокращения числа избыточных ресурсов, сжатия ресурсов, исправления системных ошибок и т. д. Booster позволяет повысить стабильность приложения на 1525% и снизить размер пакета на 110 МБ.
Документация очень хорошая, лицензия Apache 2.0.
3. Shake
Shake один из лучших инструментов для обнаружения ошибок, изучения действий пользователя для воспроизведения ошибки и сбора скриншотов или видео с ошибками. Благодаря ему работа с ошибками при бета-тестировании и в публичной версии сильно упрощается инструмент определенно стоит того, чтобы попробовать.

Как показано на гифке выше, если встряхнуть устройство, появится запрос с шаблоном для отправки отчета об ошибке. Пользователь может пометить ошибку, замаскировать конфиденциальные данные, описать проблему и отправить вам отчет.
Устанавливается эта штука просто, в документации всё отлично описано. Кроме того, есть интерактивная демонстрация, которая показывает работу инструмента изнутри.
4. Scabbard
Scabbard помогает с визуализацией и анализом графика зависимостей Dagger 2.

Scabbard визуализирует точки входа, схемы зависимостей,
взаимосвязи компонентов и области действия. Добавить этот
инструмент в проект очень легко: он хорошо интегрирован с Gradle, а
также с Android Studio и IntelliJ (нажав значок на левом поле в
редакторе, можно просмотреть схему для @Component
или
@Subcomponent
).
Документирован проект отлично: есть множество примеров и подсказок.
Лицензия Apache 2.0.
5. Can I Drop Jetifier?
Как известно, иногда перейти со старой библиотеки поддержки на AndroidX не так просто, особенно в крупных проектах с большим количеством устаревшего кода. Успех перехода во многом зависит от использования инструмента Jetifier (преобразует зависимости, которым для работы с классами AndroidX всё еще требуются старые артефакты), который замедляет сборку.
Всё больше и больше библиотек переходят на AndroidX, поэтому в какой-то момент необходимость включать этот инструмент отпадает. Этот плагин определяет, какие из используемых библиотек нужно перенести на AndroidX или избавиться от них, если уже вышла новая версия, Can I Drop Jetifier?

Документация понятная, проект выпущен под лицензией Apache 2.0. Очень рекомендую!
6. ADB Event Mirror
ADB Event Mirror позволяет отражать события касания экрана, нажатия клавиш и кнопок одного устройства на одно или несколько других устройств в реальном времени.

Этот сценарий не адаптирует разрешение, плотность пикселей, ориентацию и макет приложения. Поэтому лучше всего он работает с эмуляторами, созданными с одинаковой конфигурацией, ADB Event Mirror
Инструмент дает возможность протестировать приложение одновременно на эмуляторах различных типов.
7. Android Emulator Container Scripts
Android Emulator Container Scripts набор небольших сценариев для запуска эмулятора в контейнере для различных систем (например, для Докера) с целью внешнего использования. Сценарии совместимы с Python версий 2 и 3. Этот репозиторий довольно популярен и пригодится, если нужно запускать много эмуляторов на удаленных машинах.
Проект выпущен под лицензией Apache 2.0 и хорошо документирован.
8. Autoplay
Autoplay это плагин для Gradle, предназначенный для публикации артефактов Android в Google Play.

Его можно считать очень простой альтернативой Gradle Play Publisher или
Fastlane. Опубликовать
приложение можно как apk
или набор App Bundle.
Особенности Autoplay:
-
Оптимизирован для использования в CI/CD.
-
Удобен для разработчиков.
-
Надежен и перспективен.
У проекта хорошая документация, версия на момент написания
статьи 1.3.0
, лицензия Apache 2.0.
9. Плагин Gradle для статического анализа
Плагин статического анализа Gradle комплексная замена для всех значимых инструментов статического анализа кода, включает в себя следующее:
-
FindBugs [ПОДДЕРЖКА ПРЕКРАЩЕНА] [удален в Gradle 6.0]
Смысл в том, что вам не нужно будет настраивать все эти инструменты самостоятельно их можно без особых усилий включить в свою кодовую базу. Плагин выпущен под лицензией Apache 2.0 и отлично документирован (есть даже пример проекта).
10. AndroidUtilCode
AndroidUtilCode функциональная и простая в использовании библиотека для Android, которая инкапсулирует функции, обычно используемые при разработке Android с демонстрационными версиями и модульными тестами. Инкапсулированные API позволяют значительно повысить эффективность разработки.
Проект состоит в основном из двух модулей: utilcode (используется в разработке часто) и subutil (используется редко, но позволяет упростить основной модуль).

Версия проекта 1.29.0
, лицензия Apache 2.0.
11. Hijckr
Hijckr вмешивается в инфляцию макета Android и перенаправляет названные элементы в другие классы.

Это довольно интересный инструмент. Например, если файл макета
содержит TextView
, Android обычно загружает
android.widget.TextView
, но вместо этого можно
перехватить xml
-теги и загрузить
com.myapp.TextView
.
Описание проекта довольно подробное и позволяет быстро начать работу с инструментом (который полностью написан на Java).
12. Roomigrant
Roomigrant это вспомогательная
библиотека для автоматической генерации миграций библиотеки Android
Room с использованием формирования кода во время компиляции. Она
использует созданные библиотекой Room файлы схемы и генерирует
миграции на основе разницы между ними то есть, создание схемы Room
должно быть включено в файле build.gradle
, что хорошо
описано в README.
Проект выпущен под лицензией MIT, версия 0.1.7
.
13. RoomExplorer
После переноса базы данных на Room неплохо бы просмотреть ее: RoomExplorer позволяет просматривать все данные таблиц в табличном формате, удалять таблицы, вставлять, изменять и удалять строки и т. д.

Инструмент хорошо документирован, лицензия Apache 2.0.
14. Android Framer
Инструмент android-framer добавляет рамки и заголовки к скриншотам в Google Play. Источник вдохновения fastlane frameit.

Инструмент написан на Python и использует ImageMagick. Настроить рамки (фоны) можно, например, с помощью Facebook Design. Также можно менять шрифт, кегль, размер рамки и т. д.
Лицензия Apache 2.0.
15. Dependency Tree Diff
Dependency Tree Diff это
интеллектуальный инструмент сравнения для вывода задачи
dependencies
Gradle, который всегда показывает путь к
корневой зависимости.

Можно установить инструмент через brew
или просто
использовать jar
-файл.
Лицензия Apache 2.0.
16. Gradle Doctor
Gradle Doctor это плагин для
сканирования сборки Gradle. Функциональность: настраиваемые
предупреждения о проблемах со скоростью сборки, измерение временных
затрат на инструменты обработки аннотаций Dagger, установка
переменной JAVA_HOME
и проверка ее соответствия
JAVA_HOME
в IDE, простое отключение кеширования
тестов, остановка сборки в случае, если найдены пустые каталоги
src
(поскольку это может быть причиной
несовпадений в кеше), и
многое другое.
У инструмента отличная документация, проект выпущен под лицензией Apache 2.0.
17. GloballyDynamic
GloballyDynamic это набор инструментов, направленных на обеспечение всеобщей доступности Dynamic Delivery, независимо от магазина приложений или платформы распространения, которые также предоставляют единый унифицированный клиентский API для Android и простой интерфейс для разработчиков.

Поддерживаются:
-
Google Play (Play Feature Delivery)
-
Huawei App Gallery (Dynamic Ability).
-
Большинство других платформ в сочетании с сервером GloballyDynamic (например, Amazon App Store, Samsung Galaxy Store, Firebase App Distribution или локальная разработка).
Рекомендую прочитать README и подробнее ознакомиться с этим инструментом.
Лицензия Apache 2.0.
18. Dagger Browser
Dagger Browser еще один инструмент (прогрессивное веб-приложение) для удобной навигации по схеме Dagger в проекте.

Данные схемы заполняются с помощью SPI-плагина Dagger, а средство просмотра написано с помощью CRA (create-react-app) и TypeScript, Dagger Browser
Есть и пример приложения, в котором показано, как инструмент работает. Всё это выпущено под трехпунктовой лицензией BSD.
19. Wormhole
Wormhole путешествующий во
времени инструмент преобразования байт-кода, добавляющий в
android.jar
будущие API-интерфейсы, которые можно
десахаризовать на все уровни API с помощью D8 и R8.
Wormhole обеспечивает обратную совместимость с более новыми API. Приведу пример.
В Android R есть новые методы из Java 9 например,
List.of
. Благодаря D8 и R8 они не являются эксклюзивными для API 30 и мгновенно превращаются в совместимые с API 1. В D8 и R8 есть набор методов десахаризации для API, которых еще нет вandroid.jar
. И можно не ждать, пока они появятся этот проект дает возможность использовать их сразу же.
20. MNML
MNML (произносится как minimal минимальный) простое бесплатное приложение для записи экрана в Android.

Конечно, приложений и инструментов, обеспечивающих такую функциональность, множество. Сегодня функция записи экрана встроена во все новые устройства, но если вам интересно посмотреть, как реализовать такое приложение, этот проект будет отличным примером.
Лицензия Apache 2.0.
Заключение
Вот и всё. Надеюсь, список вам понравился и какие-то инструменты смогли вас вдохновить. До встречи!
О переводчике
Перевод статьи выполнен в Alconost.
Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.
Мы также делаем рекламные и обучающие видеоролики для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.