Useful tools to use in every Android Project (Part 1)

Useful tools to use in every Android Project (Part 1)

A set of helpful tools and libraries that you need to use when developing an Android app.

This is the first part of a group of articles where I will talk about some tools and libraries that can help you develop and maintain better Android apps and projects, as well as the UI/UX.
I will start by mentioning some that are barely common (but could be new ones for some people) and others that I think aren't too familiar and can boost our stack of Android tools.

1. Dagger

Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is an adaptation of an earlier version created by Square and now maintained by Google.

This library is probably one of my favourite ones, and I use it in almost every app that I make. Like the quote says, it allows you (among plenty of other stuff) to manage all dependency injections in your app.

One of the most significant advantages of Dagger is that it runs in compile-time, using Java annotation to inspect and generate all the classes and code that you need, which will increment the app performance when compared with similar solutions that do the same but in runtime.

Using a dependency injection solution in your app have an enormous set of advantages, and in my opinion, the Dagger is the go-to solution to do it.

You can see here how to start using Dagger in your app.

[Dagger
Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is an…dagger.dev](dagger.dev "dagger.dev")

2. Fastlane

Fastlane is an open source platform aimed at simplifying Android and iOS deployment. Fastlane lets you automate every aspect of your development and release workflow.

Fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.

This is a library that I can't live without; it saves me hours of sending app releases to multiple environments, updating screenshots, the content of the application in the store, and many other cool features.

Its installation is straightforward, and with excellent documentation, you can automate every task (you can include this in your CI/CD pipelines and automatically send new versions of your app to multiple environments like debugging, developing, production or others).

Check here the list of actions that Fastlane allows you to automate (and on top of that, you can add plugins like Firebase App Distribution and others).

[fastlane - App automation done right
Generate localized app store screenshots in minutes.fastlane.tools](https://fastlane.tools/ "fastlane.tools")

3. Timber

A logger with a small, extensible API which provides utility on top of Android’s normal Log class.

This is an elementary but elementary library that allows you to better approach when logging in to your app. And it's a great way to manage your logs in debug mode and obscure easily all the logs when the app goes to production.
Its syntax's very simple, and believe me, when you start using it, you will never use Log.e(TAG,”message”) again.

[GitHub - JakeWharton/timber: A logger with a small, extensible API that provides utility on top of…
This is a logger with a small, extensible API which provides utility on top of Android's normal Log class. I copy this…github.com](https://github.com/JakeWharton/timber "github.com/JakeWharton/timber")

4. Event Bus

Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.

Event Bus is a library that allows you to communicate data inside your Android app with a few lines of code and a straightforward approach.

I think that everyone, at one point in time, has trouble finding the best way to communicate data between a Service and an Activity, or between Services, or another kind of scenario. Event Bus with a logic similar to publish/subscribe allows you to subscribe to be listening to a specific type of object in some thread, and when the event is published you receive your data where you want.

It's a very light library and an excellent solution to have in your arsenal of tools because it can sometimes resolve complex problems with a straightforward approach.

[GitHub - greenrobot/EventBus: Event bus for Android and Java that simplifies communication between…
Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc…github.com](https://github.com/greenrobot/EventBus "github.com/greenrobot/EventBus")

5. Lottie

Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile!

Lottie is a very helpful library that allows you to add awesome animation to your Android app with just a few lines of code. So if you think that your app is very unappealing, this is the library that will take your app to another level, with an easy way of installing and manipulating.

Example of a Lottie animation

You can create your animation or find existent ones on the Lottie Files website to find free animation (you also have paid ones). You can manipulate online the colours and other aspects of the animation before downloading it.
Give it a try to make your application a lot prettier (even if it's to make that loading view much more appealing).

[GitHub - airbnb/lottie-android: Render After Effects animations natively on Android and iOS, Web…
Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations exported as json with…github.com](https://github.com/airbnb/lottie-android "github.com/airbnb/lottie-android")

Conclusion

I hope you enjoyed it!
And some of these tools can be helpful, and stay tuned to Part 2.