Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.
Guava is a set of core libraries that includes new collection types (such as multimap and multiset), immutable collections, a graph library, and utilities for concurrency, I/O, hashing, primitives, strings, and more. Guava comes in two flavors; the JRE flavor requires JDK 1.8 or higher, if you need support for JDK 1.7 or Android, use the Android flavor. You can find the Android Guava source in the android directory.
Glide is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface. Glide includes a flexible API that allows developers to plug in to almost any network stack.
Zxing is a multi-format 1D/2D barcode image processing library. This opensource pluggin even though presently in development mode, still is a great option for developers. The pluggin is optimized with JRprofilerand implemented in Java, with ports to other languages
Protocol Buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. The protocol compiler for Protocol Buffers is written in C++ with pre-built binaries only provided for released versions.
EventBus is an open-source library for Android and Java using the publisher/subscriber pattern for loose coupling. EventBus enables central communication to decoupled classes with just a few lines of code – simplifying the code, removing dependencies, and speeding up app development.
Jackson is a suite of data-processing tools for Java (and the JVM platform), including the flagship streaming JSON parser / generator library, matching data-binding library (POJOs to and from JSON) and additional data format modules to process data encoded in Avro, BSON, CBOR, CSV, Smile, (Java) Properties, Protobuf, XML or YAML. Jackson suite has two major branches: 1.x is in maintenance mode, and only bug-fix versions are released; 2.x is the actively developed version.
Squares dagger presently deprecated by googles dagger allows you to focus on the interesting classes, declare dependencies, specify how to satisfy them, and ship your app. To contrast, the worst classes in any application are the ones that take up space without doing much at all: the BarcodeDecoderFactory, the CameraServiceLoader, and the MutableContextWrapper. These classes are the clumsy duct tape that wires the interesting stuff together. Dagger is a replacement for these FactoryFactory classes.
Apache Commons Codec (TM) software provides implementations of common encoders and decoders such as Base64, Hex, Phonetic and URLs. Apache commons codec was formed as an attempt to focus development effort on one definitive implementation of the Base64 encoder. At the time of Codec's proposal, there were approximately 34 different Java classes that dealt with Base64 encoding spread over the Foundation's CVS repository.
Joda Time provides a quality replacement for the Java date and time classes. The design allows for multiple calendar systems, while still providing a simple API. The 'default' calendar is the ISO8601 standard which is used by XML. In Joda-Time the Gregorian, Julian, Buddhist, Coptic, Ethiopic and Islamic systems are also included. Supporting classes include time zone, duration, format and parsing.
Commons Lang provides a host of helper utilities for the java.lang API, notably String manipulation methods, basic numerical methods, object reflection, concurrency, creation and serialization and System properties. Commons Lang contains basic enhancements to java.util.Date and a series of utilities dedicated to help with building methods, such as hashCode, toString and equals.
Commons IO is a library of utilities to assist with developing IO functionality. Commons IO consists of six main areas, namely; Utility classes (with static methods to perform common tasks), Input (useful Input Stream and Reader implementations), Output (useful Output Stream and Writer implementations), Filters (various implementations of file filters), Comparators (various implementations of java.util.Comparator for files), File Monitor (a component for monitoring file system events)
Annotate fields with @BindView and a view ID for Butter Knife to find and automatically cast the corresponding view in your layout. Calls to ButterKnife.bind can also be made anywhere you would otherwise put findViewById calls.