Skip to content

leoallvez/overview

Repository files navigation

Overview

Android Kotlin Badge in development


Index

About

Overview allows easy navigation across different streaming services. You can favorite your content, filter by genre, and search across all platforms.

Main features

  • Search efficiently and conveniently for content across multiple streaming platforms.
  • Filter content by type and genre across various streaming services.
  • Search for content everywhere, not restricting yourself to streaming services
  • Save your favorite content and visualize it in a collection.
  • View detailed information, including which streaming service offers each piece of content.

Goals

The main goal of this project is to build an app using the most important libraries of the Android platform.

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 (HMG and PRD) for the Overview Android project. These variables encompass the API key, signature flags, and key storage information for different environments.

Environment Variables Description
OVER_API_KEY API key for TMDB API
OVER_ACTIVE_SIGNING Boolean Flag to activate or not App Signing, value is true or false
OVER_HMG_KEYSTORE Homologation keystore file path
OVER_HMG_PASSWORD Password for homologation keystore
OVER_HMG_KEY_ALIAS Key alias for homologation keystore
OVER_PRD_KEYSTORE Production keystore file path
OVER_PRD_PASSWORD Password for production keystore
OVER_PRD_KEY_ALIAS Key alias for production keystore

Script

You can create a script to configure all environment variables in your operating system. Using scripts offers significant advantages in terms of automation and reproducibility. In the following sections, we will demonstrate how to create such scripts for both Windows and Linux operating systems.

Script Windows

setx OVER_API_KEY "f0d4ff18152fd5ff09fb0b86f20f5d4f"
setx OVER_ACTIVE_SIGNING true

setx OVER_PRD_KEYSTORE "C:\\keystores\\overview\\prd\\prd_keystore.jks"
setx OVER_PRD_PASSWORD "set_here_your_password_value"
setx OVER_PRD_KEY_ALIAS "alias"

setx OVER_HMG_KEYSTORE "C:\\keystores\\overview\\hmg\\hmg_keystore.jks"
setx OVER_HMG_PASSWORD "set_here_your_password_value"
setx OVER_HMG_KEY_ALIAS "alias"

Windows .bat script to set environment variables.

Script Linux

#!/bin/bash

export OVER_API_KEY="f0d4ff18152fd5ff09fb0b86f20f5d4f"
export OVER_ACTIVE_SIGNING=true

export OVER_PRD_KEYSTORE="~/keystores/overview/prd/prd_keystore.jks"
export OVER_PRD_PASSWORD="set_here_your_password_value"
export OVER_PRD_KEY_ALIAS="alias"

export OVER_HMG_KEYSTORE="~/keystores/overview/hmg/hmg_keystore.jks"
export OVER_HMG_PASSWORD="set_here_your_password_value"
export OVER_HMG_KEY_ALIAS="alias"

Linux .bash script to set environment variables.

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