Main stack
- Kotlin
- Jetpack Compose
- Material 3
- Navigation Compose
- Hilt
- Coroutines and Flow
- Room
- DataStore
This online documentation site covers installation, architecture, branding, localization, monetization and release steps for Qrivo. It is designed for non-expert buyers who need a simple path from first open to Play Store release.
Qrivo is a native Android QR scanner and generator built with Kotlin, Jetpack Compose, Material 3, Hilt, Room and DataStore. It includes scanning, generating, history, favorites, settings, localization and monetization support through AdMob and a one-time Google Play Billing purchase for Remove Ads.
The project follows a practical clean structure that is easy to maintain and easy to reskin.
app/src/main/java/com/madcat/smartsuite/
config/
core/
data/
domain/
features/
about/
app/
favorites/
generator/
history/
home/
onboarding/
premium/
scanner/
settings/
navigation/
ui/
Centralized branding, theme, Home content, onboarding, ads and billing.
Room, DataStore and repositories that keep persistence away from UI.
Screen-level UI and ViewModels grouped by function for easier long-term maintenance.
Open.gradlew.bat assembleDebug
Debug APK output:
app/build/outputs/apk/debug/app-debug.apk
Use this order for the fastest reskin process:
brand_strings.xml,
ThemeConfig.kt,
HomeContentConfig.kt,
OnboardingConfig.kt,
AdsConfig.kt,
BillingConfig.kt
Edit the base visible name in:
app/src/main/res/values/brand_strings.xml
You need to edit strings on every language.
Main keys:
app_namebrand_taglinebrand_short_descriptionabout_description
The app name is exposed through centralized config in
AppConfig.kt and BrandingConfig.kt.
Current package name:
com.yourdevname.smartsuite
"Compact Middle Packages": In the Project pane, click the Gear icon and uncheck Compact Empty Middle Packages. This breaks the package name (e.g., com.example.app) into individual folders.
applicationId in app/build.gradle.kts.
The FileProvider authority in the manifest uses
${applicationId}.fileprovider, so it follows the new application ID automatically.
Replace assets:
RES folder.
Path field.OK.
Finish.
The app brand mark is controlled by BrandingConfig.kt and currently points to
R.drawable.ic_brand_mark.
Splash appearance is controlled by SplashScreen.kt, theme colors and the brand mark resource.
(Just for reference)
All core palette values are centralized in:
app/src/main/java/com/yourdevname/smartsuite(name of your app)/config/ThemeConfig.kt
LightPrimaryLightSecondaryLightBackgroundLightSurfaceLightTopBarDarkPrimaryDarkSecondaryDarkBackgroundDarkSurfaceDarkTopBarThese are the main content sources:
app/src/main/res/values/brand_strings.xmlapp/src/main/res/values/strings.xmlapp/src/main/res/values/phase_strings.xmlChange the text values in these files and all files includes for every language you have. You can use default text (Branding text you should change it!)
app/src/main/res/values-de.strings.xml file for that language.AppLanguage.kt.Current supported languages: English, Spanish, Portuguese, French and Italian.
Main files:
config/AdsConfig.kt - You can change with true or false where to show ads and also the number of taps
res/values/monetization_strings.xml - Here you add yor own Admob ad codes, if you don't add app will use test ads, please use them all
adsEnabledbannerAdsEnabledappOpenAdsEnabledinterstitialAdsEnabledThis project includes a single non-consumable product for permanently removing ads.
removeAdsProductId in BillingConfig.kt.billingEnabled = true.
AAB output:
app/build/outputs/bundle/release/app-release.aab
.aab file.If you already customized Qrivo and later receive a new update, do not copy the new project over your edited project. The safest method is to keep both versions and move changes carefully from the new update into your customized app.
config/AppConfig.ktconfig/BrandingConfig.ktconfig/ThemeConfig.ktconfig/HomeContentConfig.ktconfig/OnboardingConfig.ktconfig/AdsConfig.ktconfig/BillingConfig.ktres/values/brand_strings.xmlres/values/strings.xml and other language folders
gradlew.bat --stopAdsConfig.ktIf you want to save time, we can customize the app for you and leave it ready to build.
We can handle the setup for you, customize the app, and deliver it ready for generation and release. We also include a free logo.
Special price: $75
Regular price: $120
If you want everything handled for you, contact us and we will review your request.
Thank you for purchasing the app. We truly appreciate your support.
If you enjoyed the product, we would be grateful if you leave a rating.
If you need help, contact us at hello@madcatdev.com.