SportNite Android app written in Kotlin and Jetpack Compose. Connects with GraphQL Server, uses Firebase for Authentication (with Oauth 2)
- written in Kotlin and Jetpack Compose
- data is fetched from GraphQL API and cached in memory
- apk is published on Google Play for testers
- Qodana code quality report: https://qodana.cloud/projects/3wwJW/reports/AYKR2
- Jetpack Compose
- Kotlin Coroutines
- Coroutines Flow
- Orbit MVI
- Apollo GraphQL
- Firebase Auth
- Firebase Storage
- Store
- Hilt
- Coil
- Google Acompanist
- Lottie
- Image Cropper
App is based on MVI pattern. It consists of 3 layers:
- Presentation (ViewModels implementing Orbit MVI containers, UI in Jetpack Compose) - handles interactions with user on particular screens and gets data from repository by use cases
- Domain (Repository) - responsible for business logic
- Data - responsible for accessing data from api or from local storage (in our project memory or SharedPreferences)
App is divided into modules:
Module with android app and navigation between features
...
...
Module with GraphqlService. It's responsible for all calls to GraphQL API
...
User can create offers for sport meetings. Other users than can explore existing offers and accept offer.
- ensure you are signed in, if not Login (2)
- go to "Moje spotkania" tab and press "+" button on bottom right corner
- enter date and time
- select sport
- select city
- optionally enter additional informations
- press "Dodaj ofertę"
- enter phone number
- at next screen, enter confirmation code from SMS and tap "Potwierdź"
- select avatar, type your name and birth date. Select sex and time availability
- next, select in what sports are you interested in
- confirm, and select level of advance in chosen sports
- tap "Home" tab
- now you can view incoming meetings
- tap "Szukaj ludzi tab"
- use filter to show people only interested in given sport
- after tapping user, you can see his level of advance, phone number and time availability
- tap "Moje spotkania"
- select offer
- tap "Akceptuj ofertę"
- tap "Moje spotkania"
- select offer
- tap "Usuń ofertę"
Easiest way to run SportNite Android app is to download apk from Github Releases
With qodana
installed:
qodana scan --show-report
Home Screen | My Meetings Screen | Sign In Screen |
---|---|---|
Choose Sports Screen | Choose Advance Level Screen | Account Details Screen |
---|---|---|
Find Players Screen | Sport Screen | Add Offer Screen |
---|---|---|
Project is licensed under the BSD 3-clause license. See LICENSE for more details.