Giter Club home page Giter Club logo

moviebox-compose's Introduction

MovieBox Compose ๐Ÿšง [Work in progress] ๐Ÿšง

Kotlin Version AGP Gradle Jetpack Compose CodeFactor codebeat badge

Project characteristics and tech-stack

Tech-stack

Architecture

Multi-module architecture

Multi-module architecture

  • App module: the entry point to the application, contains almost no code, depends on the feature-modules.
  • Feature module: contain specific functionality. By structure, these modules can contain all the layers of your architecture, but they can also just contain some feature without any layers. A feature module can have dependencies on other feature modules only through an API module or on the main module, if we are talking about an feature UI module. Feature modules can be divided into three types:
    • Feature UI module: contains a screen, a group of screens, views, resources, and other code to implement a specific UI. Feature UI modules are independent of other feature UI modules. For interconnection between feature UI modules, a helper module is usually used that contains specific code for their interaction (for example, a module that contains code for navigating between screens).
    • Feature module of implementation: contains implementations of interfaces from the API module, contains classes for working with the database and server, data models with JSON annotations for serializing/deserializing data. It resembles a data layer from a Clean architecture;
    • Feature API module: contains interfaces for working with data, data models without JSON annotations, business logic and usecases.
  • Core module: contains helper code that can be used in more than one module. These can be abstract classes, utilities, providing libraries through transitive dependencies, and so on. Core modules do not depend on any other modules.
  • BuildSrc: can contain application configuration, dependency versions and custom gradle tasks.

Future modules

Future modules

Getting started

The project has a set of githooks. In order for git to detect them, you need to add them to the config.

git config --local core.hooksPath .githooks

There are a few ways to open this project.

Android Studio

  1. Android Studio -> File -> New -> From Version control -> Git
  2. Enter https://github.com/majorkik/MovieBox-Compose.git into URL field an press Clone button

Command-line + Android Studio

  1. Run git clone https://github.com/majorkik/MovieBox-Compose.git command to clone project
  2. Open Android Studio and select File | Open... from the menu. Select cloned directory and press Open button

Project configuration

Add parameters in the locale.properties file as shown in the example below.

keyTmdb="Your TMDb Key"

Where can I get a TMDb API key?

  1. Open TheMovieDatabase -> Login/Join TMDb -> Profile -> Settings -> API -> Copy API Key (v3 auth)
  2. Paste copied key into local.properties file (keyTmdb)

Links

Here I will leave useful links to utilities, projects or articles that may come in handy when developing mobile applications.

Projects:

ToDo

  • Add git-hooks
  • Implement networking with Ktor
  • Try to implement a network layer in Rust (Experiment)
  • Write tests (unit/instrumental)
  • Update readme (naming and code conventions)
  • Add data caching
  • Add debug menu

Useful links:

Useful articles:

moviebox-compose's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

moviebox-compose's Issues

diagram module

What do you use to create diagrams module in your projects? :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.