Skip to content

moldedbits/argus-android

Repository files navigation

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.