Quiz Platform is a Open Source knowledge testing platform for Android based on Jetpack Compose and Google solutions. The project is based on the latest Android development solutions and can act as a sample for other developers.
Coming soon app "Quiz Platform" on Google Play.
500K+ downloads (total for 5 apps)
The project is developed strictly within the framework of the Google way, only Google solutions are used. For novice developers to dive into android development.
- Language: Kotlin
- Architecture: MVVM (Google), clean, multi-module
- UI: Compose, Material 3
- Navigation: Jetpack Compose Navigation
- Threading: Coroutines + Flow
- DI: Hilt
- DB: Room
- Image: Coil
- Firebase: Analytics, AppIndexing, Crashlytics, Cloud Messaging, Remote Config
- Logging: Timber
- Testing: Coming soon
The devDebug build option can be built and run. The release option is used on internal projects and is not publicly available, you need a real Firebase project to access it.
Debug - Logging, debug mode, proguard off.
Release - No logging, no debug mode, proguard enabled.
Use environment variable FIREBASE_APP_ID
. Set your app id value from Firebase.
https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_environment_variables
./gradlew clean assembleDevDebug
./gradlew clean bundleDevDebug
./gradlew appDistributionUploadDevDebug
./gradlew clean bundleDevRelease
./gradlew appDistributionUploadDevRelease
./gradlew clean bundleProdRelease
- Manual upload to Google Play
- Switch the
isProductFlavorFilterEnabled
property tofalse
in the BuildTypeAndroidApplicationPlugin.kt - Switch the
IS_BASED_ON_PLATFORM_APP
property totrue
in the build.gradle file. - Add the path to the google-services.json file to
the
isGoogleServicesExists
method in the build.gradle file. - Add the product flavor
implementation in the build.gradle file. For example,
dev
, which comes by default, can be made following its example. - Add the Firebase App Distribution credential file
firebase-credentials.json
to the secret directory. For example, firebase-credentials.json. This step is optional.
- Add a new directory with the flavor name to build.gradle. For example, dev, the same name will be used in the examples below.
- Add the database file to your flavor's
assets
. Note that the file name must becontent-encode-pro.db
. For example, assets - Add
strings.xml
tores/values
of your flavor. This file contains string values specific to your application. For example, res/values - Add
ad-ids.xml
tores/values
of your flavor. This file contains ad identifiers for your app. For example, res/values. This step is optional. - Add category images to your flavor's
assets
. Note that the file format must bejpg
orpng
. Example, assets folder. This step is optional. - Add a
google-services.json
file to connect to Firebase services in the flavor name directory. For example, google-services.json. This step is optional.
Copyright 2023 Roman Likhachev
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.