- 7 библиотек для Android разработки на Kotlin
- 1. Kovenant
- 2. Picasso
- 3. DressCode
- 4. Anko
- 5. Fuel
- 6. Forge
- 7. Result
- 10 библиотек, о которых должен знать каждый Android-разработчик
- 1. Retrofit
- 2. Moshi
- 3. Chuck
- 4. Glide
- 5. ThreeTen
- 6. Timber
- 7. Room
- 8. RxJava
- 9. Android KTX
- 10. Dagger
- Заключение
- Публикация Android библиотеки
- Регистрация на Sonatype JIRA и создание Issue
- Создаем Android библиотеку в Android Studio
- Генерации GPG ключа
- Настройка библиотеки для публикации:
- Публикация
- Первый
- Второй
- Заключение
7 библиотек для Android разработки на Kotlin
Недавно я начал изучать Kotlin для Android-разработки, и мне это очень понравилось. Kotlin по синтаксису очень похож на Swift, и это удобно. Я всего лишь новичок в Android-разработке, поэтому скорее всего есть ещё много полезных библиотек, которые у меня ещё не было возможности изучить, но этот список — это некоторые из тех, которые я уже успешно использовал или планирую сделать это в скором времени.
1. Kovenant
Kovenant — это promise-библиотека (для упрощённого асинхронного программирования) для Kotlin. В большинстве своих iOS-проектов я использую PromiseKit, поэтому я хотел найти что-то похожее и для Android. Kovenant охватывает большинство функционала, который мне нужен (единственный пробел, который я заметил, — отсутствие эквивалента функции recover в PromiseKit), поэтому мне она подходит.
2. Picasso
Если вам нужно обрабатывать загрузку и отображение изображений в приложении, то с помощью Picasso сделать это очень просто. Помимо асинхронной загрузки и кэширования изображений, вы можете ещё и трансформировать их, например:
Я также использую библиотеку picasso-transformations, которая добавляет дополнительные трансформации в Picasso, например, обрезку в форме круга.
Я кстати недавно узнал, что Google рекомендует Glide для работы с изображениями, а не Picasso. Я ещё не использовал Glide, но учитывая, что Google также рекомендует библиотеку Volley для работы с сетью, в которой практически отсутствует документация и в которой есть несколько действительно странных багов, я не уверен, насколько я буду доверять этой рекомендации.
3. DressCode
Я ещё не использовал эту Kotlin-библиотеку, но она предлагает простой способ добавления функционала выбора темы в вашем приложении. Я пока отложу её и использую в будущем, когда мне понадобится такая фича.
4. Anko
Я видел, как об Anko говорят все вокруг, прежде чем я понял, что она из себя представляет и почему её все любят. Anko — это в основном набор удобных методов, которые помогут сделать Android-разработку на Kotlin проще и понятнее.
В ней есть несколько действительно замечательных вещей, таких как этот суперлаконичный метод для создания и показа toast-сообщений:
Также она сильно упрощает создание интентов:
Есть ещё встроенные удобные методы для популярных интентов, например
browse(url) и share(text, [subject]) .
Anko также предлагает красивый DSL для создания layout , но этот функционал я пока не использовал. Вот пример из документации:
Есть ещё много чего, что может предложить эта библиотека, поэтому она определенно стоит вашего внимания.
5. Fuel
После того, как я столкнулся с необычными ошибками и отсутствием документации для Volley, я наткнулся на Fuel, которая теперь является моей любимой библиотекой для работы с сетью в Android.
Для обработки ответов Fuel использует лямбда-выражения, а не слушателей. Как iOS-разработчику, мне это кажется более знакомым. Библиотека также отлично работает с Kovenant, если вы захотите обернуть работу с сетью в promise, что я всегда и делаю.
6. Forge
Пока мне ещё не приходилось использовать библиотеку для парсинга JSON, но когда мне это понадобится, то я попробую Forge. Она написана тем же разработчиком, который написал Fuel, и кажется приятной и простой в использовании.
7. Result
Я уже, наверное, не открою Америку с Result-типами, но я только начал изучать их в iOS, поэтому рад, что нашел такую библиотеку для Kotlin. В README этого проекта есть хороший пример того, как можно использовать Result-типы для улучшения кода.
Источник
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 — обрабатывает обновления приложения внутри приложения.
Источник
Публикация Android библиотеки
Недавно у меня появилось желание попробовать создать свою собственную Android библиотеку и выложить ее на Maven Central репозиторий.
Это оказалось не так просто, как я думал. В интернете полно непонятных статей на эту тему, в которых легко запутаться.
Я решил поделиться процессом публикации моей библиотеки Awesome-Buttons.
Ну что ж, приступим.
Регистрация на Sonatype JIRA и создание Issue
Перейдите на сайт Sonatype JIRA и создайте себе аккаунт.
Теперь войдите в аккаунт и создайте новый Issue :
Заполните всю необходимую информацию.
Обратите внимание на Group Id . Обычно в качестве его указывается доменное имя в обратном порядке.
Если у вас есть свой сайт или сайт библиотеки, то вы можете использовать его доменное имя (например: ru.freeit256 ), но для этого нужно будет дополнительно прописать запись в вашем регистраторе домена (после создания Issue вы увидите информацию как это сделать).
Я использовал другой подход: указал свой Github в качестве Group Id
Также для того, чтобы использовать Github в качестве Group Id вам нужно создать пустой репозиторий с именем OSSRH-74088
Не забудьте отправить ваше Issue на проверку и дождаться статуса CLOSED
Создаем Android библиотеку в Android Studio
Сначала создайте любое пустое приложение с app модулем.
Затем вы можете либо добавить модуль Android библиотеки, либо изменить текущий модуль на библиотечный. Читайте об этом на официальном сайте
Генерации GPG ключа
Перед публикацией необходимо сгенерировать пару GPG ключей.
Для генерации ключей выполните следующую команду:
Основные параметры при создании ключей:
формат шифрования: RSA and RSA
размер: 4096 бит
срок годности ключа можно указать 0 (никогда не истечет)
имя, email и комментарий укажите свои
Чтобы посмотреть все сгенерированные ключи выполните команду:
Обратите внимание, последние 8 символов это ID ключа:
Для подписи библиотеки мы будем использовать приватный ключ, а чтобы пользователи смогли удостовериться, что библиотека принадлежит нам, мы должны выложить публичный ключ на общедоступный сервер, например keyserver.ubuntu.com:
Чтобы получить приватный ключ для подписи нужно выполнить:
Вуаля! Позже он нам понадобится.
Настройка библиотеки для публикации:
Добавляем плагин io.github.gradle-nexus в корневой файл build.gradle :
Далее нам нужно создать два скрипта для модуля и корня нашей библиотеки.
Создадим в корне проекта папку scripts , и добавим новый скрипт publish-module.gradle :
Также нам нужно добавить скрипт publish-root.gradle :
Теперь нам нужно добавить maven-publish плагин и некоторые константы в начало build.gradle файла нашего модуля:
И самый важный момент, файл local.properties :
Публикация
После основных настроек, зайдите на Nexus Repository Manager и войдите под учетными данными JIRA Sonatype.
Далее переходим во вкладку Staging Profiles и выбираем необходимый профиль.
Копируем sonatypeStagingProfileId из адреса сайта и указываем его в local.properties файле:
Переходим к публикации.
Далее у вас есть два варианта зарелизить либу: вручную через графический интерфейс или с помощью gradle задачи.
Первый
Зайдите на сайт Nexus Repository Manager , перейдите во вкладку Staging Repositories и выберите необходимый репозиторий.
Чтобы выпустить релиз библиотеки нужно воспользоваться двумя командами close и release .
Для отмены релиза юзайте drop
Второй
Выполните команду, которая сама закроет и зарелизит вашу либу:
Заключение
Вы уже убедились, что процесс публикации Andorid либы весьма затратный и рутинный.
Я постарался изложить только основные моменты. Возможно у вас возникнут какие-либо ошибки, которые вам придется самим решать ну и конечно же гуглить!
Такова жизнь прогера: постоянно гуглить. 🙂
Надеюсь, что статья оказалась вам полезной.
Желаю всем хорошего кода и побольше успешных релизов! 🙂
Источник