Code Monkey home page Code Monkey logo

argus-android's Introduction

Argus- Onboarding Simplified

Argus Android makes it hassle free of managing all onboarding related tasks such as Signup/Login/Forgot Password and Social Logins.

Gradle

compile 'com.moldedbits.argus:argus:0.2.0'

Maven

<dependency>
    <groupId>com.moldedbits.argus</groupId>
    <artifactId>argus</artifactId>
    <version>0.1.0</version>
    <type>pom</type>
</dependency>

Screenshots

Login/Sign In Sign Up/Register Forgot Password
Login/Sign In Sign Up/Register Forgot Password

Features

1. Built in Login/Signup Providers

Argus comes with built in social login providers as well as an EmailLoginProvider which can be easily integrated with your custom APIs. Adding different providers is as simple as this

 List<BaseProvider> loginProviders = new ArrayList<>();
 loginProviders.add(new GoogleOnBoardingProvider());
 loginProviders.add(new FacebookOnBoardingProvider())

and then supply these providers to Argus object

   new Argus.Builder().loginProviders(loginProviders)

2. Custom Layouts for Signup and Login

If you don't like Argus default UI you can provide your own layout and Argus will take care of rest

new Argus.Builder().signupLayout(R.layout.custom_signup_layout)

3. Adaptive Look and Feel

Argus is built keeping Material design in mind it automatically adapts colors defined in your styles.xml

4. Customizable Look and Feel

Argus can be customized as per your needs using ArgusTheme

ArgusTheme argusTheme 
    = new ArgusTheme.Builder()
    .buttonColor(R.color.com_facebook_blue)
    .logo(R.drawable.app_logo)
    .build();

Usage

Argus exposes ArgusActivity which can be set as launcher activity in AndroidManifest or started using an Intent. Currently it redirects to Login screen by default but in future we would let developer choose where he want to start.

A basic configuration of Argus looks like this

// initialize Argus
        ArrayList<BaseProvider> loginProviders = new ArrayList<>();
        ArrayList<BaseProvider> signupProviders = new ArrayList<>();
        PlaygroundSignupProvider playgroundSignupProvider = new PlaygroundSignupProvider(false);
        playgroundSignupProvider.getValidationEngine()
                .addPasswordValidation(new LengthValidation(4, 8, getString(R.string.password_length)));

        loginProviders.add(new PlaygroundLoginProvider());
        signupProviders.add(playgroundSignupProvider);

        ArgusTheme.Builder themeBuilder = new ArgusTheme.Builder();
        themeBuilder.logo(R.drawable.logo_3x);

        new Argus.Builder()
                .argusStorage(new DefaultArgusStorage(getApplicationContext()))
                .nextScreenProvider(new SimpleNextScreenProvider(ProjectListActivity.class))
                .signupProviders(signupProviders)
                .loginProviders(loginProviders)
                .theme(themeBuilder.build())
                .build();

Please feel free to contribute or report issues.

License

Copyright 2013 moldedbits

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

argus-android's People

Contributors

abhishekbansal avatar anujmiddha avatar therealshabi avatar vishaltayal avatar

Watchers

 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.