В этом небольшом обзоре я поделюсь с вами информацией о библиотеках, которые могут пригодиться при разработке мобильных приложений. В своей повседневной работе Android разработчик вынужден решать множество разноплановых задач: выполнять запросы в соответствии с restful API, осуществлять сериализацию данных, загружать и обрабатывать изображения, разрабатывать и оптимизировать структуру проекта, вести журнал событий. Решение этих задач убивает огромное количество времени, если вы пытаетесь решать их с чистого листа, но зачем изобретать велосипед? Использование описанных ниже библиотек позволяет не только улучшить качество кода, но и на порядок повысить Вашу производительность как разработчика.
Gson - простая и компактная библиотека для работы с JSON объектами в Java. С ее помощью можно проводить сериализацию и десериализацию Java объектов в JSON. Gson использует Java Generic и может использоваться непосредственно вашими Java модулями или вызываться из сторонних библиотек.
По большому счету вся работа с Gson сводится к использованию двух методов: fromJson() и toJson(). Первый из них преобразует Json строку в Java модель, которая задается вторым параметром метода. Второй метод решает обратную задачу преобразуя Java модель в Json строку.
Для того, чтобы использовать эту библиотеку в своем проекте, необходимо подключить ее в build.gradle:
dependencies{ compile 'com.google.code.gson:gson:2.8.2' }
Более подробную информацию о библиотеке можно найти здесь.
На сегодняшний день библиотека Dagger является, пожалуй, лучшим решением для реализации патерна Dependency Injection (DI) в android приложении. Среди альтернативных решений можно упомянуть Robo Guice, Butter Knife или Android annotations. Каждое из них имеет свои плюсы и минусы. По моему мнению, Google Dagger ver.2 является лучшим выбором для реализации надежного и хорошо структурированого патерна Dependency Injection. Вторая версия библиотеки обеспечивает отличную разработку и повышение производительности в сочетании с постоянной проверкой графа объектов, полной отслеживаемостью, легкостью отладки.
Для подключения библиотеки в gradle нужно добавить следующие строки:
dependencies { compile 'com.google.dagger:dagger:2.x' annotationProcessor 'com.google.dagger:dagger-compiler:2.x' compile 'com.google.dagger:dagger-android-support:2.x' //if you use support libraries }
Изучение возможностей этой библиотеки потребует от Вас некоторых усилий. Вот ссылка на документацию.
Наиболее удобным способом осуществления Restful общения с удаленным сервером по http(s) является использование библиотеки Retrofit 2. Retrofit предоставляет в распоряжение разработчика type-safe Http Client на базе библиотеки OkHttp. Вы создаете экземпляр Retrofit с помощью его builder метода, после этого вы реализуете вызов метода и присоединяете callback объект. Внутри этого объекта нужно переопределить два стандартных метода: onResponse и onFailure. Retrofit позволяет модифицировать заголовок запроса, добавлять перехватчик для цепочки запросов, реализовывать собственный аутентификатор и model converter factory.
Для использования Retrofit необходимо модифицировать файл build.gradle
dependencies { compile 'com.squareup.retrofit2:retrofit:2.3.0' }
Более подробную информацию о библиотеке можно получить здесь
С помощью этой библиотеки можно организовать асинхронное скачивание изображений из сети и их загрузку в ImageView. Все Ion операции возвращают Future Object и могут быть изящно отменены. Фактически, Ion объединяет функции нескольких библиотек Android в одну. Это отличный способ для решения задач асинхронных запросов, загрузки изображений, загрузки файлов, отмены запросов и многое другое.
Для подключения библиотеки используйте
dependencies { compile 'com.koushikdutta.ion:ion:2.+' }
Более подробную информацию о работе библиотеки можно найти в GitHub репозитории проекта.
Crashlytics очень мощный инструмент мониторинга и предоставления отчетов о сбоях. Веб-панель администратора предоставляет исчерпывающую информацию о сбоях и пользователях вашего приложения с сохранением стека при ошибке, типом устройства, версии ОС и географической информацией о пользователе.
Чтобы использовать Crashlytics в своем приложении, необходимо установить Fabric plugin в Android studio. Зайдите в меню File -> Settings -> Plugins, затем в окне поиска введите "Fabric", выберите в результатах поиска "Fabric for Android Studio" и щелкните Install. После этого у вас пояится панель в Android Studio, где можно нажать "Sign up" и создать новый аккаунт на fabric.io, после чего можно завершить установку. Как только вы подтвердите свою учетную запись, введите свои учетные данные, а затем из списка продуктов выберите Crashlytics.
Подробную информацию о работе с инструментом можно найти на сайте fabric.io.
Вместо того, чтобы загружать изображения напрямую в ImageView, можно сделать это асинхронно. Picasso позволяет загрузить изображение из сети, а затем показать его в ImageView без блокировки пользовательского интерфейса. В процессе загрузки на месте изображения будет отображаться картинка-заглушка. Picasso также предлагает загрузку адаптеров, трансформацию изображений.
Для использования Picasso необходимо добавить в build.gradle строки
dependencies { compile 'com.squareup.picasso:picasso:2.5.2' }
Фреймворк для проведения юнит тестирования непосредственно в JVM, а не на эмуляторах или реальных устройствах. Robolectric тесты могут охватывать многие операции, такие как view inflation, загрузка ресурсов, которые вы не можете проверить с помощью обычных JUnit тестов. Таким образом, вы получаете возможности, близкие к тестированию на реальных устройствах.
Для запуска Robolectric юнит тестов, прежде всего нужно включить библиотеку Robolectric в gradle файл. Если вы используете Android Studio 3 или выше, необходимо включить слияние ресурсов в gradle.
testImplementation "org.robolectric:robolectric:3.6.1" android { testOptions { unitTests { includeAndroidResources = true } } }
Аннотируйте свой тест с помощью Robolectric test runner:
@RunWith(RobolectricTestRunner.class) public class AccountActivityTest { }
Для изучения возможностей фреймворка изучите Robolectric.org.
Мы живем в очень быстрый век. Каждый день в Google Play появляются сотни новых приложений, и скорость разработки очень важна для современного программиста. Чтобы не отстать от поезда современных технологий, необходимо быть проактивным разработчиком и постоянно находиться в поиски лучших библиотек и инструментов, которые повысят вашу производительность и обогатят ваш опыт. Не замыкайтесь в себе, используйте инструменты, SDK и библиотеки. Можете почитать мою статью "9 Bulletproof ways to become a better developer", где рассказывается приемах улучшения профессиональных навыков. В этой статье я рассказываю о семи очень полезных библиотеках. Возможно, я забыл что-то важное, поделитесь в комментариях.
Источник: 7 Android Libraries Every Developer Should Know About