Welcome to the DeXStudio Multi-App workspace. This repository houses a collection of 15+ powerful, specialized applications built on a shared Kotlin Multiplatform engine.
- AppHide: A secure vault for hiding your applications.
- Calculator: A multiplatform edge-to-edge calculation engine.
- Passport Picture Generator: An AI-powered tool to generate perfectly formatted passport photos.
- WhatsApp Status Saver: A quick utility to save and manage WhatsApp statuses.
- Resume & Cover Letter Builder: An AI-driven text generator with exportable templates for job applications.
- Reverse To-Do List: An app that logs what you accomplished today, rather than just what you need to do.
- Receipt Scanner & Organizer: Extracts data from receipts to track monthly spending.
- ...and many more to come!
This project uses a highly modular Kotlin Multiplatform (KMP) + Compose Multiplatform architecture. The structure is separated into a Core SDK and isolated App Repositories.
Contains the foundational, generic building blocks shared across all applications.
shared-ui: Design system tokens (colors, typography, spacing) and generic UI components (buttons, nav bars).shared-data: Core infrastructure (Ktor networking, Room databases, authentications).
Each individual app (e.g., apphide, calculator) is an isolated feature ecosystem.
To share logic across Android, iOS, and Desktop without polluting the Core SDK, an app should ideally contain:
android/: The Android execution shell (MainActivity.kt).ios/: The Xcode project for the iOS shell.desktop/: The JVM wrapper for Windows/Mac/Linux execution.shared/: (Optional but recommended) A specialized KMP library module containing the app's specific MVI Domain Logic and Compose UI screens (e.g., the Calculator math engine).
To install and launch an app on a connected device/emulator via terminal, use the following generic command pattern (replace <app_name> with the folder name of your app, e.g., apphide, calculator, todo-planner):
.\gradlew :apps:<app_name>:android:installDebug(Note: To get Hot Reload/Live Edit, you must run the configuration directly through the Android Studio Play button!)
To compile the Android APK without installing:
.\gradlew :apps:<app_name>:android:assembleDebugWe use Roborazzi for blazing-fast, automated UI snapshot testing on the JVM (no emulator required).
1. Record Baseline Screenshots (Run this when you intentionally change an app's UI):
.\gradlew :apps:<app_name>:android:recordRoborazziDebugScreenshots are saved locally in the app module's src/test/screenshots/ directory.
2. Verify UI against Baseline (Run this in CI to ensure no accidental UI regressions):
.\gradlew :apps:<app_name>:android:verifyRoborazziDebugPrerequisites: Android Studio (Latest Stable or Ladybug)
- Open Android Studio.
- Select Open and choose the
Android-IOS-APPsroot directory. - Allow Android Studio to run Gradle Sync and download dependencies.
- In the top toolbar, select your desired app from the Run Configurations dropdown (e.g.,
apps.calculator.android). - Hit the Play button to build and launch the app on your emulator or physical device!