A comprehensive utility application built with Kotlin Multiplatform Mobile
Report Bug
Β·
Request Feature
Click to expand
X Smart is a modern, feature-rich utility application designed to simplify everyday calculations and conversions. Built with Kotlin Multiplatform Mobile (KMM), the app demonstrates clean architecture principles and modern Android development practices.
The application features a clean, intuitive user interface inspired by modern design principles, providing users with quick access to essential tools including health metrics calculation, currency conversion, and Vietnam salary calculations.
Design Inspiration: X Smart Mobile App on Behance
- Feature Overview showing all available tools
- Quick Access to commonly used features
- Modern UI with Material Design 3 components
- Dark Mode Support for comfortable viewing
- Net Salary Calculation based on gross income
- Tax Breakdown with detailed calculations
- Insurance Deductions (Social, Health, Unemployment)
- Regional Salary Support with area-specific calculations
- Configurable Tax Brackets and deduction rules
- Multiple Calculation Modes (Standard and Custom)
- Detailed Results View showing all deduction components
![]() |
![]() |
![]() |
- Vietnamese (VI) - Default language
- English (EN) - Full translation support
- Easy Language Switching in app settings
The project follows Clean Architecture principles with a modular structure:
βββββββββββββββββββββββββββββββββββ
β Presentation Layer β
β (Jetpack Compose + MVVM) β
βββββββββββββββββββββββββββββββββββ€
β Domain Layer β
β (Use Cases + Models) β
βββββββββββββββββββββββββββββββββββ€
β Data Layer β
β (Repositories + Data Sources) β
βββββββββββββββββββββββββββββββββββ
- MVVM Pattern: UI state management with ViewModel
- Unidirectional Data Flow: Using MVI-inspired patterns with UiState, UiIntent, and UiEffect
- Dependency Injection: Koin for DI across all layers
- Kotlin Multiplatform: Shared business logic across platforms
- Repository Pattern: Abstraction over data sources
- Use Case Pattern: Single responsibility for business operations
- Kotlin Multiplatform Mobile (KMM) - Share business logic between Android and iOS
- Jetpack Compose - Modern declarative UI for Android
- Material Design 3 - Latest Material Design guidelines
- MVVM - Model-View-ViewModel architecture pattern
- Clean Architecture - Separation of concerns with distinct layers
- MVI-Inspired State Management - Predictable state management
- Koin - Kotlin-first dependency injection framework
- Ktor Client - Type-safe HTTP client for Kotlin Multiplatform
- SQLDelight - Type-safe SQL database library for KMM
- Kotlin Coroutines - Asynchronous programming
- Kotlin Flow - Reactive streams for Kotlin
- Gradle with Kotlin DSL - Type-safe build configuration
Before running the project, ensure you have the following installed:
- Android Studio (latest stable version - Arctic Fox or later recommended)
- JDK 11 or higher
- Kotlin 1.9.0 or higher
- Android SDK with minimum API level 24
- For iOS development (optional):
- macOS with Xcode installed
- CocoaPods for dependency management
-
Clone the repository
git clone https://github.com/phatndt/xsmart-kmm.git cd xsmart-kmm -
Open the project in Android Studio
- Launch Android Studio
- Select "Open an Existing Project"
- Navigate to the cloned directory and open it
-
Sync Gradle dependencies
- Android Studio will automatically prompt you to sync
- If not, click on "File" β "Sync Project with Gradle Files"
- Connect an Android device or start an emulator
- Select the
androidAppconfiguration - Click the "Run" button or press
Shift + F10
Note: iOS implementation is currently not available but is planned for future releases.
xsmart/
βββ androidApp/ # Android application module
β βββ src/main/
β β βββ java/ # Android-specific code
β β βββ res/ # Android resources
β βββ build.gradle.kts
β
βββ feature/ # Feature modules
β βββ dashboard/ # Dashboard feature
β βββ salarycalculator/ # Vietnam salary calculator feature
β
βββ share/ # Shared KMM modules
β βββ data/ # Data layer (repositories, data sources)
β βββ domain/ # Domain layer (use cases, models)
β βββ di/ # Dependency injection modules
β
βββ iosApp/ # iOS application (future)
βββ buildSrc/ # Build configuration
βββ build.gradle.kts # Root build configuration
androidApp: Android application entry point with UI implementationfeature/*: Modularized features following single responsibilityshare/data: Data sources, repositories, and data modelsshare/domain: Business logic, use cases, and domain modelsshare/di: Koin modules for dependency injection
- Dashboard with feature overview
- Vietnam Salary Calculator
- Dark mode support
- Vietnamese and English localization
- BMI Calculator with history tracking
- Currency Converter with real-time rates
- Unit Converter (length, weight, temperature, etc.)
- Compass feature
- User authentication and cloud sync
- iOS application implementation
- Offline mode improvements
- Export calculation results
- Widget support
- Customizable themes
- More language support
See the open issues for a full list of proposed features and known issues.
Contributions are what make the open source community amazing! Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Phat Nguyen
- LinkedIn: @phatndt
- Email: phatndt2109@gmail.com
- GitHub: @phatndt
Project Link: xsmart-kmm
Special thanks to the following resources and tools that made this project possible:
- Kotlin Multiplatform Mobile - Cross-platform development
- Jetpack Compose - Modern UI toolkit
- Koin - Dependency injection
- SQLDelight - Type-safe database
- Ktor - HTTP client
- Kotlin Coroutines & Flow - Asynchronous programming
This project is available for personal and educational use.



