Pull to refresh

7 библиотек для Android разработки на Kotlin

Reading time3 min
Views13K
Original author: Belle

7 библиотек для Android разработки на Kotlin


Недавно я начал изучать Kotlin для Android-разработки, и мне это очень понравилось. Kotlin по синтаксису очень похож на Swift, и это удобно. Я всего лишь новичок в Android-разработке, поэтому скорее всего есть ещё много полезных библиотек, которые у меня ещё не было возможности изучить, но этот список — это некоторые из тех, которые я уже успешно использовал или планирую сделать это в скором времени.


1. Kovenant


Kovenant — это promise-библиотека (для упрощённого асинхронного программирования) для Kotlin. В большинстве своих iOS-проектов я использую PromiseKit, поэтому я хотел найти что-то похожее и для Android. Kovenant охватывает большинство функционала, который мне нужен (единственный пробел, который я заметил, — отсутствие эквивалента функции recover в PromiseKit), поэтому мне она подходит.


2. Picasso


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


Picasso.get().load(url).resize(50, 50).centerCrop().into(imageView)

Я также использую библиотеку picasso-transformations, которая добавляет дополнительные трансформации в Picasso, например, обрезку в форме круга.


Я кстати недавно узнал, что Google рекомендует Glide для работы с изображениями, а не Picasso. Я ещё не использовал Glide, но учитывая, что Google также рекомендует библиотеку Volley для работы с сетью, в которой практически отсутствует документация и в которой есть несколько действительно странных багов, я не уверен, насколько я буду доверять этой рекомендации.


3. DressCode


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


4. Anko


Я видел, как об Anko говорят все вокруг, прежде чем я понял, что она из себя представляет и почему её все любят. Anko — это в основном набор удобных методов, которые помогут сделать Android-разработку на Kotlin проще и понятнее.


В ней есть несколько действительно замечательных вещей, таких как этот суперлаконичный метод для создания и показа toast-сообщений:


toast("Hi there!")

И для SnackBar:


longSnackbar(view, "Wow, such duration")

Также она сильно упрощает создание интентов:


startActivity<SomeOtherActivity>("id" to 5)

Есть ещё встроенные удобные методы для популярных интентов, например
browse(url) и share(text, [subject]).


Anko также предлагает красивый DSL для создания layout, но этот функционал я пока не использовал. Вот пример из документации:


verticalLayout {
    val name = editText()
    button("Say Hello") {
        onClick { toast("Hello, ${name.text}!") }
    }
}

Есть ещё много чего, что может предложить эта библиотека, поэтому она определенно стоит вашего внимания.


5. Fuel


После того, как я столкнулся с необычными ошибками и отсутствием документации для Volley, я наткнулся на Fuel, которая теперь является моей любимой библиотекой для работы с сетью в Android.


Для обработки ответов Fuel использует лямбда-выражения, а не слушателей. Как iOS-разработчику, мне это кажется более знакомым. Библиотека также отлично работает с Kovenant, если вы захотите обернуть работу с сетью в promise, что я всегда и делаю.


6. Forge


Пока мне ещё не приходилось использовать библиотеку для парсинга JSON, но когда мне это понадобится, то я попробую Forge. Она написана тем же разработчиком, который написал Fuel, и кажется приятной и простой в использовании.


7. Result


Я уже, наверное, не открою Америку с Result-типами, но я только начал изучать их в iOS, поэтому рад, что нашел такую библиотеку для Kotlin. В README этого проекта есть хороший пример того, как можно использовать Result-типы для улучшения кода.


Также читайте: «10 библиотек, о которых должен знать каждый Android-разработчик»
Tags:
Hubs:
Total votes 12: ↑10 and ↓2+8
Comments3

Articles