Skip to content

leoallvez/overview

Repository files navigation

Overview

Android Kotlin Badge in development

About

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.

Main features

  • 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.

Goals

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.

Main libraries

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.

Setup

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

Script

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.

Script Windows

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"

Script Linux

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"

Contributing

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!

Author


Léo Alves