Skip to content

radusalagean/open-live-trivia-app-android

Repository files navigation

Latest Release

Open Live Trivia (Android)

app_icon

Client-side part of the Open Live Trivia project. For the server repository, please check this link.

Screenshots

screenshot screenshot screenshot screenshot

Features

Open Live Trivia is an online, real-time multiplayer trivia game. The game offers the ability to compete with other players by answering clues and questions provided by jservice. The main features are:

  • Quick authentication process (no password required)
  • Over 156k available questions and clues
  • Offline leaderboard persistence
  • Entries reported by players as invalid / incorrect can be reviewed and banned by moderators / admin in the app

Under the hood

For an in-depth look of how the client app and the server work together, please check the server documentation.

Why does this app exist?

The app was built for demonstrative purposes, it's the concrete result of the most recent development knowledge and skills I acquired in the first half of 2019.

Bug reports

Found a bug in the app? Please open an issue or send me an email. If you can provide a reproduction pattern and/or some screenshots, that would be helpful and appreciated.

Libraries

  • Socket.io - Real-time, bidirectional server-client communication
  • Retrofit - Networking
  • RxJava - Concurrency
  • Gson - Json serialization / deserialization
  • Dagger2 - Dependency Injection
  • Room - Abstraction layer over SQLite (data persistence for offline use)
  • Glide - Image Loading
  • Firebase Crashlytics - Metrics and crash reporting
  • Firebase Auth - Authentication
  • Kotlin Coroutines - Kotlin implementation of coroutines
  • Calligraphy - Custom fonts support lib
  • Shimmer - Shimmer effects on Android Views
  • Stetho (Debug variant only) - Debugging
  • Timber (Debug variant only) - Logging (Android Logcat wrapper)
  • JUnit4 (Test dependency) - Allows writing and running unit tests on the local machine
  • Mockito (Test dependency) - Mocking and stubbing dependencies in isolated unit tests
  • Mockito-Kotlin (Test dependency) - Mockito wrapper optimized for Kotlin
  • Robolectric (Test dependency) - Android-related framework components in unit tests
  • Mockk (Test dependency) - Mocks static Kotlin Objects (and more)
  • MockWebServer (Test dependency) - Testing network calls
  • Google Truth (Test dependency) - Improved assertions
  • Espresso (Test dependency) - UI tests

License

Apache License 2.0, see the LICENSE file for details.