Giter Site home page Giter Site logo

andreaht / igenius Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 286 KB

The user should be able to login to the app using his github account. Launch of the app could possibly show the webview to login. Once logged in, he should see a Loading screen with a big logo of github, at the end of loading, the logo shrinks and moves to the header of the new Home screen via smooth animation.

Kotlin 100.00%

igenius's Introduction

Github App

I've implemented the app trying to follow the provided guidelines. Here there is a recap of my work

Installation

Step by step explanation of how to get a dev environment running.

1. To enable Firebase Authentication:
        a. Go to the authentication tab at the Firebase console and enable Github Sign-in methods.
        b. download `google-services.json` and add replace it to the app.
        c. Add your package name and SHA-1 signing-certificate fingerprint.
2. Run the app on your mobile phone or emulator with Google Play Services in it.

Testing

Right click on the test or androidTest packages and select Run Tests. Testing the app doesn't require the firebase authentication.

Functionalities

  • User login is implemented with Firebase that logs in the user in his github account
  • Login requires "repo" permission to get acces to private repository
  • After login there is a basic motion layout that implements github icon animation (moves and shrinks)
  • A recycler view shows as many cards as many repository are present in the githhub account
  • Repository and user info are fetched with retrofit lib and info are stored in a room db, so the user can use the application offlie.
  • Cards shows the following info with text and icons: name, private, description (max 3 lines), stars count, language with github color.
  • Tapping a repository a bottom sheet dialog is presented with full descriprion and other elements.
  • In bottom sheet dialog there is a custom button that with an antimated view that stars/unstars the repository.

Guidelines

  • Developed entirerly in Kotlin
  • Used coroutines
  • Used dagger for DI
  • minsdk 23
  • Unit testing and instrumented testing with Dagger, Junit, Espresso and mocked objects.
  • Library used: Retrofit for github repos and user info and Glide to get profile image

igenius's People

Contributors

andreaht avatar

Watchers

James Cloos avatar  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.