Ее pod для android

10 библиотек, о которых должен знать каждый Android-разработчик

В 2015 году мы уже публиковали статью о пяти лучших библиотеках, которые мы использовали в то время. Однако платформа Android значительно выросла с тех пор. Как вы знаете, в такой быстро развивающейся области, как разработка программного обеспечения, всё меняется и развивается с молниеносной скоростью. Именно поэтому мы решили, что пришло время обновить список наиболее эффективных Android-библиотек.

Давайте без долгих предисловий перейдем прямо к нашему списку. Сначала мы рассмотрим одну из самых старых, но, по моему убеждению, и одну из самых эффективных Android-библиотек.

1. Retrofit

Retrofit — это типобезопасный HTTP-клиент, позволяющий представить ваш REST API в виде интерфейса. Вы сможете управлять телами, заголовками, параметрами API-запросов и многим другим с помощью аннотаций, что сделает этот процесс простым и понятным. Retrofit также позволяет выполнять синхронные и асинхронные вызовы API.

Ко всему прочему, Retrofit предоставляет отдельный Rx-модуль. Если вы используете Rx, этот модуль вернёт Observable при обращении к API, что позволит связать его с остальной частью вашего приложения. И это лишь некоторые из множества причин, по которым мы по-прежнему любим и используем Retrofit.

2. Moshi

Moshi — это библиотека для конвертации JSON в Java и Kotlin-объекты. Многие воспринимают Moshi как GSON 3.0. Однако эта библиотека превосходит GSON в нескольких аспектах: она быстрее, она поддерживает Kotlin, она обновляется, генерирует предсказуемые исключения и не использует испорченный адаптер DateTime по умолчанию. Кроме того, используя Moshi, процесс конвертации JSON в Java-объекты (и наоборот) становится максимально простым и понятым.

Мы также любим Moshi за поддержку JSON API. JSON API — это спецификация построения API, и многие API, с которыми мы работаем, написаны с использованием этой спецификации. Moshi JSON API облегчает нашу жизнь, поскольку JSON API ответ преобразуется в значимые Java-объекты. Retrofit ещё поддерживает Moshi, и вместе они просто отлично работают.

3. Chuck

Chuck — это HTTP-инспектор для Android, позволяющий «покопаться» в HTTP-истории вашего приложения на мобильном телефоне. HTTP-лог отображается в виде уведомления, которое можно развернуть, чтобы зайти в Chuck и посмотреть детальную информацию. Использование Chuck невероятно обрадует специалистов QA-отдела, поскольку они смогут увидеть, где находится проблема: на стороне Android или на стороне сервера. Эта библиотека иногда может помочь вам больше, чем logcat. Это связано с тем, что ваша HTTP-история сохранится даже в случае непредвиденного закрытия приложения, в то время как logcat время от времени самоочищается после перезапуска.

4. Glide

Вы скорее всего знаете, что загрузка изображений в Android вызывает большие трудности. Даже изменение размера изображения может обернуться катастрофой с OutOfMemoryException . Glide — это библиотека загрузки изображений, которая предоставляет качественный API, позволяющий изменять изображение как вам угодно.

Библиотека позволит вам легко загрузить удалённое изображение в ImageView, определить стабовые изображения, кэшировать и масштабировать изображения и т.д. Просто попробуйте проделать всё это без помощи Glide, и вы сразу поймёте, почему он находится в нашем списке ключевых библиотек. Glide даже поддерживает некоторые распространённые изменения по умолчанию, например, создание изображения круглой формы.

5. ThreeTen

ThreeTen — это библиотека для работы с датой и временем в Android. Это портированная версия JSR-310, который был включен в Java 8 в качестве стандартного пакета java.time.* . Мы любим эту библиотеку, потому что стандартный Android Calendar API превращает работу в сущий кошмар.

Читайте также:  Увеличение громкости звонка для андроид

ThreeTen сильно уступает JodaTime с точки зрения количества методов и бинарного размера. API данной библиотеки также меньше, чем API JodaTime. Если вы уже используете JodaTime, то, вероятно, вам не стоит переходить на ThreeTen. Тем не менее, я настоятельно рекомендую попробовать ThreeTen, если вы только начинаете работать над новым проектом.

6. Timber

Timber — мощная, но простая библиотека логирования, построенная на базе Android-класса Log . С её помощью вы сможете легко включать и выключать отображение логов. Также библиотека предлагает отличную поддержку логирования форматированных строк и исключений. Благодаря этим преимуществам Timber и входит в наш список ключевых библиотек, которые мы используем практически на всех Android проектах.

7. Room

Room — это официальный ORM для Android, и этот статус оправдывается рядом причин. Эта библиотека отличается удобным API, похожим на Retrofit. Room также в значительной степени опирается на аннотации и стандартный SQL-синтаксис.

Кроме того, Room по умолчанию включает в себя поддержку Rx и LiveData , поэтому вы сможете использовать его, как вам захочется. Основное преимущество Room перед различными ORM — простота. Многие ORM имеют гораздо более сложный API, для использования которого вам потребуется тщательно изучить всю документацию. Благодаря стандартному SQL-синтаксису Room предельно доступен для понимания, что позволяет приступить к работе сразу, не тратя много времени на чтение документации.

8. RxJava

RxJava — это Java-реализация ReactiveX API, которая позволяет связывать асинхронные задачи и события в наблюдаемые (англ. observable) последовательности. Пользователи рассчитывают на то, что современные приложения способны отображать данные в режиме реального времени. Другими словами, они хотят, чтобы информация обновлялась автоматически. Именно в этом аспекте вам и пригодится RxJava.

При получении данных в реальном времени становится чрезвычайно сложно объединить несколько запросов API, переключать потоки и обрабатывать ошибки. Именно здесь RxJava отменно проявляет себя, и именно по этой причине мы начали пользоваться этой библиотекой. Я согласен, что RxJava может показаться запутанной и трудной для изучения, но эта библиотека однозначно заслуживает вашего времени. Даже после перехода на Kotlin, мы продолжили использовать RxJava из-за её преимуществ. В сочетании с Kotlin API она становится ещё лучше благодаря дополнительным функциям-расширениям.

Попробуйте сделать что-то похожее на приведённый выше фрагмент с помощью простой Java. Ну же.

9. Android KTX

Android KTX — это набор расширений-обёрток для Android API в Kotlin, которые делают его более дружелюбным. Главная цель этой библиотеки — сделать Android API более удобным в использовании. Она содержит множество методов и отличных новых функций Kotlin, таких как именованные параметры, лямбда-функции и параметры по умолчанию.

Android KTX отличается наличием множества функций-расширений, и единственный способ узнать о них — погрузиться в код библиотеки, чтобы увидеть, каким образом функции улучшили Android API. Android KTX упрощает способ использования Android API, и по этой причине эта библиотека должна стать основой каждого Android приложения, написанного на Kotlin.

10. Dagger

Наш список 10 лучших библиотек был бы неполным без Dagger. Эта библиотека представляет собой полностью статичный фреймворк внедрения зависимостей во время компиляции. Dagger, так же как и RxJava, действительно сложен для понимания (мне пришлось потратить некоторое время, чтобы понять их пример CoffeeMaker), но определённо заслуживает потраченного времени и усилий.

Читайте также:  Телевизоры филипс с андроидом

Внедрение зависимостей (англ. dependency injection) — это способ, позволяющий добавлять небольшие компоненты к другим моделям с минимальными усилиями. Например, если у вас есть модель автомобиля, вы можете добавить к ней шины и с лёгкостью подменить имплементацию шин в будущем — не изменив при этом ни единой строчки кода в моделе автомобиля.

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

В прошлом году Google добавил отдельный модуль Android Dagger, который позволяет писать меньше шаблонного кода и упрощает внедрение зависимостей.

Заключение

Итак, вот и он: наш список 10 лучших Android-библиотек в 2018 году. Десять отличных библиотек, которые сделают процесс Android-разработки более приятным для каждого, кто решит их использовать. Хотите больше библиотек? Так вышло, что мы в нашей компании разработали несколько собственных Android-библиотек. Можете ознакомиться с ними:

  • MjolnirRecyclerView — добавляет в RecyclerView поддержку header, footer, пустых view-компонентов и DiffUtils;
  • Goldfinger — упрощает реализацию аутентификации по отпечаткам пальцев;
  • DBInspector — просматривает и обеспечивает доступ к базам данных приложения;
  • Complexify — простой способ проверить качество пароля пользователя;
  • Prince of Versions — обрабатывает обновления приложения внутри приложения.

Источник

Сравниваем 6 популярных музыкальных плееров под Android с поддержкой BitPerfect-доступа к USB ЦАПу. Кто победит?

Напоминаю, что в прошлом сравнении у нас схлестнулись 5 бесплатных музыкальных плееров под Android с поддержкой Hi-Res Audio. Кто пропустил, рекомендую почитать сначала первую часть. Теперь пойдет самая жара, так как сегодня в сравнении примут участие 6 музыкальных плееров, которые поддерживают BitPerfect доступ к USB ЦАПам. То есть через них можно напрямую выводит звук на тот самый «свисток», о которых так часто заходит речь в наших обзорах. Для примера можно вспомнить воистину народные ЦАПы: iBasso DC03, HiBy FC3, TempoTec Sonata HD II или E1DA 9038D. Это я привел по одному из разных ценовых категорий, еще больше вариантов можете посмотреть в соответствующей подборке на этом же ресурсе.

В сравнении примут участие (о чем вы меня неоднократно просили) PowerAmp, Neutron, USB Audio Player, NePlayer, HiBy Music и FiiO Music. К сожалению, плееры от Shanling умеют работать только со своими устройствами. Исключались также программы не поддерживающие разрешение 24 бита 96 кГц, которое по определению является нижней границей Hi-Res Audio и на котором у нас происходят все измерения. Из аппаратуры использовался аудиоинтерфейс Motu M4, а в качестве источника я взял Hi-Res аудиоплеер на Android Shanling M3X и к нему USB ЦАП iBasso DC03. Уровень громкости составляет 100%, все приложения скачаны из Play Market, величина дополнительной нагрузки — 32 ома. В процессе я делаю ровно 4 замера, чтобы исключить случайные отклонения. Итак, все формальности учтены, пора представлять участников.

Участники

О HiBy Music и FiiO Music мы уже говорили в первой части сравнений. Это крупные производители аудиообрудования с которыми уже давно принято считаться у всего аудиофилского сообщества. Кроме того, HiBy Music много лет был известен как поставщик программного обеспечения для большого числа аудиодевайсов из Китая и не только. Возможностей у этих музыкальных плееров просто масса: разного вида эквалайзеры, поддержка Hi-Res форматов, MQA, DSD. В общем, довольно серьезные программы.

Читайте также:  Sai для андроид что это

PowerAmp, пожалуй что был первым нормальным плеером с поддержкой lossless форматов на Android. Он реально пионер в этой сфере, поэтому и количество скачиваний у него превосходит все возможные пределы. Звуковой движок менялся уже несколько раз, есть все необходимые настройки, эквалайзер и красивые эффекты визуализации. По умолчанию схема формирования сигнала у PowerAmp какая-то просто дичайшая, но ее можно настроить.

Следом за PowerAmp появился аудиофилский Neutron. Он также поддерживает USB ЦАПы, имеет целую кучу разнообразных настроек, есть даже тонкости для DSD сигнала. Интерфейс конечно тут на любителя, но то дело второе.

USB Audio Player изначально предназначался исключительно для воспроизведения музыки через USB ЦАПы, но по просьбе пользователей его функционал был расширен. Один из лучших в своем классе, не единичны случаи, когда производители аудиообрудования предустанавливали его на свои девайсы в качестве основного музыкального софта. Мой фаворит, думаю, что именно он превзойдет всех.

Следующий участник — NePlayer. Играет он только из плейлиста, причем к папкам доступа нет вообще. Родом, судя по всему, из Японии. Очень мало информации, однако USB ЦАПы он тоже поддерживает и умеет разделять музыку по качеству.

Тестирование

1. Начнем с неравномерности АЧХ в диапазоне 40 Гц — 15 кГц (Дб).

HiBy Music -0.06 -0.18
FiiO Music +0.04 -0.09
PowerAmp -0.05 -0.24
Neutron -0.06 -0.18
USB Audio Player -0.06 -0.17
NePlayer -0.06 -0.17

По цифрам видно, что все справились очень хорошо, но Neutron зачем-то обрезает частотный диапазон на 20 кГц. По этой причине он здесь оказался аутсайдером.

2. Следом идет уровень шума (Дб).

HiBy Music -108.8
FiiO Music -108.8
PowerAmp -108.2
Neutron -107.8
USB Audio Player -108.8
NePlayer -108.5

Тоже все в принципе молодцы, худший результат у Neutron.

3. Самый важный, на мой взгляд, параметр — динамический диапазон (Дб).

HiBy Music 109.0
FiiO Music 102.2
PowerAmp 108.2
Neutron 107.8
USB Audio Player 109.0
NePlayer 108.6

В этом случае сплоховал FiiO Music и чуть лучше результат у Neutron. Самый же топ показали HiBy Music и USB Audio Player.

4. Ну и последняя пара — уровень гармонических и интермодуляционых искажений в процентах.

HiBy Music 0.00080 0.00165
FiiO Music 0.00078 0.314
PowerAmp 0.00082 0.00323
Neutron 0.00080 0.010
USB Audio Player 0.00078 0.00168
NePlayer 0.00078 0.00166

Аутсайдеры опять FiiO Music и Neutron, все остальные почти ноздря в ноздрю.

Выводы

Какие можно подвести итоги? Если вы планируете использовать со смартфоном мобильный, ну или даже стационарный, USB ЦАП, то выбирать FiiO Music и Neutron не нужно, у них самые низкие показатели качества среди измеренных нами. На удивление неплохо себя показал PowerAmp на своем новом движке и неочень популярный NePlayer. От них, честно скажу, не ожидал. Ну а реальными лидерами оказались бесплатный HiBy Music и платный USB Audio Player. Разницы между ними в данном аспекте использования вообще никакой. Однозначно могу их рекомендовать и использовать по назначению. Тем более, что они к тому же еще и поддерживают стримминговые сервисы в режиме BitPerfect, а это вообще высший уровень качества.

На этом у меня все. Если понравилось, оставляйте свои комментарии, обсудим, а возможно и дополним сравнения новыми участниками. Предлагайте ваши варианты с коротким пояснением, почему именно его. Ну а выбрать себе хороший мобильный ЦАП можно, например, из моей подборки.

Источник

Оцените статью