GithubHelp home page GithubHelp logo

xmartlabs / bigbang Goto Github PK

View Code? Open in Web Editor NEW
51.0 15.0 11.0 1.21 MB

Android base project used by Xmartlabs team

License: Apache License 2.0

Shell 0.36% Kotlin 99.64%
android boilerplate rxjava2 rxjava database mvp dbflow base-project retrofit2 retrofit

bigbang's Introduction

BigBang

CircleCI codebeat badge Core DbFlow Retrofit CrashlyticsLogger

This is Xmartlabs Android base project. Architecturally composed of a set of libraries for building modern and scalable applications from the ground up.
The BigBang of our Android projects.

Our architecture divides the typical layers of an Android application into simple coherent modules, which are completely independent from one another:

  • UI
  • Services
  • Database
  • Crashlytics Logger

In order to keep modules independent, we decoupled the behavior required for each layer into a single module, where everything comes together smoothly, which we call core. This not only allows you to choose which modules to use, but also gives you independence from any service or database oriented libraries we use.

Learn more about the project on the BigBang Wiki or by reading the Javadocs.

Getting started

The first step is to include the Core library into your project as a Gradle compile dependency:

compile 'com.xmartlabs.bigbang:core:0.1.54'

Then, add jCenter to the buildscript repositories:

buildscript {
    repositories {
        jcenter()
    }
}

Also, you'll need to add the following repositories:

repositories {
    flatDir {
        dirs 'libs'
    }
    maven { url "https://jitpack.io" }
    maven { url 'https://maven.fabric.io/public' }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

Then, include any of the following compile dependencies to add an specific module to your app:

compile 'com.xmartlabs.bigbang:dbflow:0.1.54'
compile 'com.xmartlabs.bigbang:log-crashlytics:0.1.54'
compile 'com.xmartlabs.bigbang:retrofit:0.1.54'
compile 'com.xmartlabs.bigbang:ui:0.1.54'

The dbflow module is database related, while the retrofit module is service related.

Architecture

There are four main components. The core component exposes the interfaces needed to implement a certain type of service, like database or network related. Thus, the core component should always be included in any project that makes use of this architecture.

A component should encapsulate and provide a single functionality. If the component belongs to a certain category of services (like networking or database), then the functionality should be specified and described in the core component.

Project template

In order to start using the modules, you'll need to set up a few things, which are well explained in their respective Wiki. Therefore, to start a new project, we provide a template, which consists of the minimal setup required to get you going. You will find that in the bigbang-template repository.

Style guide

We strictly follow our style guide, which extends from the Google Java Style Guide but with some modifications. Please remember to follow it when contributing to this project.

Bugs and Feedback

When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible. Please also make sure your code compiles and try to cover your code with tests.
We welcome contributors!

For bugs, issues, feature requests, questions and discussions please use the Github Issues.

Authors

Changelog

This can be found in the CHANGELOG.md file.

bigbang's People

Contributors

bryant1410 avatar diegomedina248 avatar f7deleon avatar ferraribruno avatar m-revetria avatar mirland avatar

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

Watchers

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

bigbang's Issues

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.