---
Recently, I started learning Kotlin for Android development, and I really like it. Kotlin’s syntax is very similar to Swift, which makes it convenient. I’m still just a beginner in Android development, so there are probably many useful libraries I haven’t had the chance to explore yet, but this list includes some that I’ve already successfully used or plan to try soon.
---
1. Kovenant
Kovenant is a promise library (for simplified asynchronous programming) for Kotlin. In most of my iOS projects, I use PromiseKit, so I wanted to find something similar for Android. Kovenant covers most of the functionality I need (the only gap I’ve noticed is the lack of an equivalent to PromiseKit’s recover function), so it works well for me.
---
2. Picasso
If you need to handle image loading and display in your app, Picasso makes it very easy. In addition to asynchronous loading and caching of images, you can also transform them, for example:
Picasso.get().load(url).resize(50, 50).centerCrop().into(imageView)
I also use the picasso-transformations library, which adds additional transformations to Picasso, such as circular cropping.
By the way, I recently learned that Google recommends using Glide for image handling instead of Picasso. I haven’t used Glide yet, but considering that Google also recommends the Volley networking library—which has almost no documentation and some really strange bugs—I’m not sure how much I trust that recommendation.
---
3. DressCode
I haven’t used this Kotlin library yet, but it offers a simple way to add theme-switching functionality to your app. I’ll probably save it for later when I need such a feature.
---
4. Anko
I kept hearing about Anko everywhere before I actually understood what it is and why people love it. Anko is essentially a set of helper functions that make Android development with Kotlin simpler and more readable.
It includes some really great features, like this super concise way to show a toast:
toast("Hi there!")
And for SnackBars:
longSnackbar(view, "Wow, such duration")
It also greatly simplifies creating intents:
startActivity<SomeOtherActivity>("id" to 5)
There are also built-in helper methods for common intents, such as browse(url) and share(text, [subject]).
Anko also provides a nice DSL for building layouts, though I haven’t used that feature yet. Here’s an example from the documentation:
verticalLayout {
val name = editText()
button("Say Hello") {
onClick { toast("Hello, ${name.text}!") }
}
}
There’s much more that this library offers, so it’s definitely worth checking out.
---
5. Fuel
After running into unusual bugs and a lack of documentation with Volley, I came across Fuel, which is now my favorite networking library for Android.
Fuel uses lambda expressions instead of listeners to handle responses. As an iOS developer, this feels more familiar to me. The library also works great with Kovenant if you want to wrap network calls in promises—which I always do.
---
6. Forge
I haven’t had to use a JSON parsing library yet, but when I do, I plan to try Forge. It’s written by the same developer as Fuel and seems nice and easy to use.
---
7. Result
I’m probably not discovering anything new with Result types, but I’ve only recently started learning about them in iOS, so I’m glad I found a similar library for Kotlin. The project’s README includes a good example of how Result types can improve your code.
Recently, I started learning Kotlin for Android development, and I really like it. Kotlin’s syntax is very similar to Swift, which makes it convenient. I’m still just a beginner in Android development, so there are probably many useful libraries I haven’t had the chance to explore yet, but this list includes some that I’ve already successfully used or plan to try soon.
---
1. Kovenant
Kovenant is a promise library (for simplified asynchronous programming) for Kotlin. In most of my iOS projects, I use PromiseKit, so I wanted to find something similar for Android. Kovenant covers most of the functionality I need (the only gap I’ve noticed is the lack of an equivalent to PromiseKit’s recover function), so it works well for me.
---
2. Picasso
If you need to handle image loading and display in your app, Picasso makes it very easy. In addition to asynchronous loading and caching of images, you can also transform them, for example:
Picasso.get().load(url).resize(50, 50).centerCrop().into(imageView)
I also use the picasso-transformations library, which adds additional transformations to Picasso, such as circular cropping.
By the way, I recently learned that Google recommends using Glide for image handling instead of Picasso. I haven’t used Glide yet, but considering that Google also recommends the Volley networking library—which has almost no documentation and some really strange bugs—I’m not sure how much I trust that recommendation.
---
3. DressCode
I haven’t used this Kotlin library yet, but it offers a simple way to add theme-switching functionality to your app. I’ll probably save it for later when I need such a feature.
---
4. Anko
I kept hearing about Anko everywhere before I actually understood what it is and why people love it. Anko is essentially a set of helper functions that make Android development with Kotlin simpler and more readable.
It includes some really great features, like this super concise way to show a toast:
toast("Hi there!")
And for SnackBars:
longSnackbar(view, "Wow, such duration")
It also greatly simplifies creating intents:
startActivity<SomeOtherActivity>("id" to 5)
There are also built-in helper methods for common intents, such as browse(url) and share(text, [subject]).
Anko also provides a nice DSL for building layouts, though I haven’t used that feature yet. Here’s an example from the documentation:
verticalLayout {
val name = editText()
button("Say Hello") {
onClick { toast("Hello, ${name.text}!") }
}
}
There’s much more that this library offers, so it’s definitely worth checking out.
---
5. Fuel
After running into unusual bugs and a lack of documentation with Volley, I came across Fuel, which is now my favorite networking library for Android.
Fuel uses lambda expressions instead of listeners to handle responses. As an iOS developer, this feels more familiar to me. The library also works great with Kovenant if you want to wrap network calls in promises—which I always do.
---
6. Forge
I haven’t had to use a JSON parsing library yet, but when I do, I plan to try Forge. It’s written by the same developer as Fuel and seems nice and easy to use.
---
7. Result
I’m probably not discovering anything new with Result types, but I’ve only recently started learning about them in iOS, so I’m glad I found a similar library for Kotlin. The project’s README includes a good example of how Result types can improve your code.