This application is a simple "Connect 4" app that works on a 4x4 grid. Just as in Connect 4, a user drops tokens into columns in attempt to win. A win is achieved when 4 tokens of the same color are placed in an unbroken line; this can be vertically, horizontally, or diagonally (ascending or descending). If all columns are filled with tokens without the win condition criteria met, the game is a draw - no one wins.
This app currently supports only "single player" mode against an AI.
The Android Docs contain extensive instructions on how to build and run your app.
You can either build the source code into an APK and install the APK onto your device or you can run the app on a connected device/emulator using Android Studio.
If using Android Studio, pulling the source code onto your local machine with a default configuration of Android Studio will be sufficient. Sync the dependencies using Gradle using the instructions here, then use the default run configuration, selecting your emulator or device, to install and run the app.
This app relies on Android Room for persistence, Retrofit for RESTful network calls, and Kotlin Flow and Coroutines to back the LiveData in the Android ViewModel. It makes use of the blueprint and best practices described in the Android Architecture Components.
Unit test coverage is in place for the database and service layers. At this time no UI tests exist for this app.