The list of common libraries we use in our apps

Some time ago we noticed that in our apps there are a lot of different libraries, often responsible for the same things, but with distinct APIs, for instance: Retrofit vs Volley, Dagger vs RoboGuice, Requery vs OrmLite. It became difficult to switch to another project or introduce minor changes because of the tools that were used, so we decided to organise and standardise this. It led to a creation of a list of common libraries that should be used in our projects.

Android

AutoGson

AutoValue Extension to add Gson De/Serializer support.

AutoParcel

AutoParcel is an AutoValue extension that enables Parcelable values generation.

AutoValue

AutoValue provides an easier way to create immutable value classes, with much less code and less room for error, while not restricting your freedom to code almost any aspect of your class exactly the way you want it.

Dagger

Dagger is a fully static, compile-time dependency injection framework for both Java and Android.

Glide

An image loading and caching library for Android focused on smooth scrolling.

GSON

A Java serialisation/deserialisation library that can convert Java Objects into JSON and back.

Guava

Guava is a set of core libraries that includes new collection types (such as multimap and multiset), immutable collections, a graph library, functional types, an in-memory cache, and APIs/utilities for concurrency, I/O, hashing, primitives, reflection, string processing, and much more.

Joda-Time

Joda-Time provides a quality replacement for the Java date and time classes.

JUnit

JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.

LeakCanary

A memory leak detection library for Android and Java.

Mockito

A mocking framework for unit tests in Java.

Requery

A modern SQL based query & persistence for Java / Kotlin / Android.

Retrofit

A type-safe HTTP client for Android and Java

RxJava

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

iOS

Alamofire

Alamofire is an HTTP networking library written in Swift.

Fabric / Crashlytics

Always integrated for crash analytics.

Kingfisher

Asynchronous image downloader with cache support and some additional utility methods.

RxAlamofire

RxSwift wrapper around the elegant HTTP networking in Swift Alamofire.

RxSwift

Reactive Programming in Swift.

SDWebImage

Asynchronous image downloader with cache support as a UIImageView category.

SwiftDate

The best way to manage Dates and Timezones in Swift.

SwiftyJSON

The best way to deal with JSON data in Swift.