Testing 🔬
Dependency | URL | What's this? | Why Use? |
---|---|---|---|
Mockk | https://mockk.io/ | This is a Mocking library for Kotlin | To help isolate testing one component |
Junit 4 | https://junit.org/junit4/ | This is a unit testing framework | To write and run units repeatable automated tests |
Junit 5 | https://junit.org/junit5/ | This is a unit testing framework | To write and run units repeatable automated tests |
Espresso | https://developer.android.com/training/testing/espresso | This is a testing framework | To write concise, and reliable UI test |
Truth | https://truth.dev/ | This is a library for performing assertions in tests | - Easier to read assertion failure messages - Easy to write code, make it clear to view, edit and add to |
Data Persistence 💿
Dependency | URL | What's this? | Why Use? |
---|---|---|---|
Room | https://developer.android.com/jetpack/androidx/releases/room | Persistence library for Android | Persist data offline, so that when the user’s device cannot access the network, the user can still browse that content while they are offline |
Image Loading/Handling 🌁
Dependency | URL | What's this? | Why Use? |
---|---|---|---|
Glide | https://github.com/bumptech/glide | Media management and image loading framework for Android | For fetching, decoding, and displaying video stills, images, and animated GIFs within an app |
Picasso | https://github.com/square/picasso | This image downloading and caching library for Android | Image loading in an app. To help resize and transform remote or local sources of images within an app. Additionally, to help with memory and disk caching of images and how images are viewed within a list a the app |
Deserialization 🤖
Dependency | URL | What's this? | Why Use? |
---|---|---|---|
GSON | https://github.com/google/gson | This is a Java library, that converts Java Objects into their JSON representation and vice versa | To help remove writing boilerplate code to parse JSON responses yourself. - To map all fields in the Java object to the JSON file it creates and vice versa. |
Networking 🚧
Dependency | URL | What's this? | Why Use? |
---|---|---|---|
OKHttp | https://square.github.io/okhttp/ | Http client | - exchange data & media via HTTP requests. - caching, requests and responses manipulation. - sending different types of HTTP requests, receiving and interpreting HTTP responses |
Retrofit | https://square.github.io/retrofit/ | Type-safe HTTP client for Android and Java | Turns your HTTP API into a Java interface. - easy to retrieve and upload JSON (or other structured data) via a REST based webservice |
Coroutines | https://github.com/Kotlin/kotlinx.coroutines | Library for Kotlin coroutines | Make Asynchronous network calls |
Dependency Injection 🧟
Dependency | URL | What's this? | Why Use? |
---|---|---|---|
HILT | https://developer.android.com/training/dependency-injection/hilt-android#setup | Dependency injection library for Android | Reduces the boilerplate of doing manual dependency injection in your project |