Overview is an easy-to-use app that consolidates content from major streaming services into a unified interface. It simplifies content discovery with easy search and filtering options, providing a comprehensive overview of movies and TV shows available across different platforms, all with real-time updates.
- Efficiently and conveniently search for content across various streaming services all in one app.
- Filter content by type and genre across various streaming services.
- Save and visualize your favorite content.
- Details of the content with which streaming service this media can be watched.
- Search for content everywhere, not restricting yourself to streaming services.
The main objective of this project is to serve as a dedicated testing ground for exploring and evaluating new Android libraries. It offers an environment that closely mimics real production settings, facilitating comprehensive testing and experimentation with the latest advancements in Android technologies.
In addition to this, the project aims to gather valuable insights into UI/UX and user behavior by leveraging Google Analytics. This dual focus on testing innovation and understanding user interactions enhances the project's potential to contribute to the advancement of Android development practices.
Library | Description |
---|---|
Compose | Modern Android UI toolkit for building native UIs with a declarative syntax. |
DataStore | Jetpack library for data persistence using Kotlin coroutines and Flow. |
Navigation Compose | Navigation library for Jetpack Compose, facilitating navigation between composables. |
Hilt | Dependency injection library for Android that is built on top of Dagger. |
Room | Persistence library that provides an abstraction layer over SQLite for offline data storage. |
AndroidX | Android extension libraries, part of Jetpack, offering backward-compatible versions of Android APIs. |
KTX Extensions | Kotlin extensions for Android development, enhancing code readability and conciseness. |
Live Data | Observable data holder class that is lifecycle-aware, part of the Android Architecture Components. |
Paging | Library for handling large datasets and paginated data sources efficiently. |
JUnit | Testing framework for Java and Kotlin, widely used for unit testing in Android development. |
Mockk | Mocking library for Kotlin, useful for creating mocks and stubs in testing. |
Retrofit | HTTP client for Android and Java that simplifies network requests and communication with web services. |
Timber | Logging library for Android, providing a simple way to log messages with additional context. |
Kluent | Fluent assertion library for Kotlin, improving the readability of assertions in tests. |
Gradle’s Kotlin DSL | Kotlin-based Domain Specific Language for Gradle build scripts. |
Gradle Version Catalogs | Centralized management of library versions in Gradle builds, improving dependency version consistency. |
Remote Config | Firebase service for remotely configuring your app's behavior without publishing app updates. |
Analytics | Analytics solution by Firebase, providing insights into user behavior and app performance. |
Crashlytics | Firebase service for crash reporting, helping developers identify and fix issues causing app crashes. |
Coil | Coil is a Kotlin-first image loading library for Android that prioritizes simplicity and performance. |
This project contains environment variables that streamline the compilation process in the homologation and production environments (HOMOL and PROD) for the Overview Android project. These variables encompass the API key, signature flags, and key storage information for different environments.
Environment Variables | Description |
---|---|
OVER_TMDB_API_KEY |
API key for TMDB API |
OVER_ACTIVE_SIGNING |
Boolean Flag to activate or not App Signing, value is true or false |
OVER_PROD_KEYSTORE |
Production keystore file path |
OVER_PROD_PASSWORD |
Password for production keystore |
OVER_PROD_KEY_ALIAS |
Key alias for production keystore |
OVER_HOMOL_KEYSTORE |
Homologation keystore file path |
OVER_HOMOL_PASSWORD |
Password for homologation keystore |
OVER_HOMOL_KEY_ALIAS |
Key alias for homologation keystore |
We recommend developing a script to systematically configure environment variables in your operating system. The use of scripts provides notable advantages in terms of automation, reproducibility, clarity, ease of modification, version control, batch execution, consistency, deployment efficiency, customization, and error handling when establishing environment variables. In the subsequent sections, we will illustrate the process of crafting such scripts for both Windows and Linux operating systems.
Example of a windows script .bat file to set environment variables.
setx OVER_TMDB_API_KEY "f0d4ff18152fd5ff09fb0b86f20f5d4f"
setx OVER_ACTIVE_SIGNING true
setx OVER_PROD_KEYSTORE "C:\\Keystores\\overview\\prod\\prod_keystore.jks"
setx OVER_PROD_PASSWORD "set_here_your_password_value"
setx OVER_PROD_KEY_ALIAS "upload"
setx OVER_HOMOL_KEYSTORE "C:\\Keystore\\overview\\homol\\homol_keystore.jks"
setx OVER_HOMOL_PASSWORD "set_here_your_password_value"
setx OVER_HOMOL_KEY_ALIAS "upload"
Example of a linux .bash script file to set environment variables.
#!/bin/bash
export OVER_TMDB_API_KEY="f0d4ff18152fd5ff09fb0b86f20f5d4f"
export OVER_ACTIVE_SIGNING=true
export OVER_PROD_KEYSTORE="~/Keystores/overview/prod/prod_keystore.jks"
export OVER_PROD_PASSWORD="set_here_your_password_value"
export OVER_PROD_KEY_ALIAS="upload"
export OVER_HOMOL_KEYSTORE="~/Keystores/overview/homol/homol_keystore.jks"
export OVER_HOMOL_PASSWORD="set_here_your_password_value"
export OVER_HOMOL_KEY_ALIAS="upload"
Thank you for considering contributing to this project! Follow these steps to contribute:
We strongly recommend using git flow and conventional commits practices
- Fork the repository.
- Create a new branch for your feature (git checkout -b feature/my-new-feature).
- Make your changes and commit them (git commit -m 'Add some feature').
- Push your branch to your fork (git push origin feature/my-new-feature).
- Create a new Pull Request to the
develop
branch of this repository.
Please make sure to provide a clear description of your changes when submitting a pull request. We appreciate your contributions!
Léo Alves |
---|