Giter VIP home page Giter VIP logo

github-search's Introduction

github-search

This Application is build on a Multi modules using MVVM, Clean Architecture, MVI design pattrens

The Approach to write this software is pretty much in an isolated way. Below are the brief description of the modules in the software

Core Libs

  1. Koin for DI
  2. Jetpack Architecture components
  3. Kotlin DSL for Gradle dependencies

App

This is the Gateway to the whole application containing DI Initialization and in our case it contain MainActivity to host the application. On top of that this module have all the dependency which are present in our application

Purposes
  1. Initializing Dependency Injection
  2. Hosting the Application Root

Business

This module kept all the use cases belong to the application, on top of that this is UI agnostic module.Having all the business information of the app. This is utilizing repository module in order to get the business and populate their respective DTOS

Purposes
  1. To keep the business in a separate module agnostic of UI

Common

In this module common classes are kept to provide support to the other modules

Purposes
  1. Base classes for Fragments & Activities
  2. Application Common classes like (Styles,colors,Extensions)
  3. This module don't have any dependency from the project

Dtos

This is providing the binding capabilities to the UI layer in order to show the data. This is kind of the bridge between Repositories and business module with out having cyclic dependency.This module dont have any dependency from the application

Purpose
  1. Displaying the Actual data to the UI layer

Network

This module is on the bottom layer of the project. Dealing with repository $ DataSource to get the data from the Network API client. And it can access the DTOS & common module

Purpose
  1. Dealing with the Retrofit client to get the data

featureGithubSearch (Main Functionality Resides Here)

In this module we are presenting the applications main functionality where we are showcasing the github search list and its detail. This module have dependency on business, common, repositories

Purpose
  1. Display repos details and the list of searched repos

Repository

In this module the repositories of all the application is embedded

Purpose
  1. populating business module

Gradle's Kotlin DSL

Gradle’s Kotlin DSL is an alternative syntax to the Groovy DSL with an enhanced editing experience.

buildSrc

A special module within the project to manage dependencies and whatnot.

github-search's People

Contributors

qasimrider avatar

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.