Skip to content

GitStat is a simple android app designed to aggregate Github profile data into informative cards and graphs.

Notifications You must be signed in to change notification settings

alexandr7035/gitstat

Repository files navigation

GitStat

Description

GitStat is a simple android app designed to aggregate Github profile data into informative cards and graphs.

Major features:

  • Profile summary
  • Pie chart with programming languages of your repositories
  • List of your repositories with filters and sorting
  • Repository page
  • Contributions summary
  • Charts for contributions (types, count per day, contribution rate)
  • Contributions grid (Github-like)

Download from Google Play

Technology (some notes)

  • Used single activity approach and Navigation component (with SafeArgs) to navigate across fragments.
  • Used Hilt for dependency injection.
  • View binding is used to interact with views within fragments and recyclerview adapters.
  • Kotlin coroutines are used for asynchronous operations.
  • Apollo Android (Retrofit before v3.0) is used to perform Github API calls to obtain the data. Also use OkHttp Logging Interceptor to log requests.
  • Room database is used for cache implementation.
  • Google's FlexboxLayout as LayoutManager and custom checkable LinearLayout are used to implement languages filter (see third screenshot).
  • CircleImageView and Picasso libs are involved to obtain and display user profile image.
  • MPAndroidChart library is used for plots and diagrams in the application.
  • Use Timber logging in order to prevent log calls removal before every release building.
  • Use Firebase Crashlytics to catch and fix crashes.
  • Use Firebase Authentication to implement Github Oauth authorization.

Screenshots

Privacy Policy

  • We use Github Oauth (Firebase) for user authentication. As soon as you click the login button, system opens the browser. You have to enter the login and password from your Github account.
  • As Oauth method is used for authentication, even if you log out, you may be able log in again without entering your Github login and password. Clear your browser cache after logging out if you wish to change GitHub account.
  • We get access to read:user and repo access scopes. We do not perform any write operations on your github account. Full repo scope is used only to have access to your private repos data and not to perform malicious write operations.
  • We do not store your account data anywhere outside the device local storage.

Used tools

  • Used Avocado to optimize vector drawables drawn in Figma.
  • Used gh-md-toc to create table of contents for this README.