Skip to content

phatndt/xsmart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Logo

X Smart

A comprehensive utility application built with Kotlin Multiplatform Mobile

Report Bug Β· Request Feature


πŸ“š Table of Contents

Click to expand

🎯 About The Project

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

(back to top)


✨ Features

πŸ“Š Dashboard

  • 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
Logo

πŸ’° Vietnam Salary Calculator

  • 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

🌐 Localization

  • Vietnamese (VI) - Default language
  • English (EN) - Full translation support
  • Easy Language Switching in app settings

(back to top)


πŸ—οΈ Architecture

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)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Architectural Decisions

  • 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

(back to top)


πŸ› οΈ Tech Stack

Mobile Development

Architecture & Patterns

  • MVVM - Model-View-ViewModel architecture pattern
  • Clean Architecture - Separation of concerns with distinct layers
  • MVI-Inspired State Management - Predictable state management

Dependency Injection

  • Koin - Kotlin-first dependency injection framework

Networking

  • Ktor Client - Type-safe HTTP client for Kotlin Multiplatform

Database

  • SQLDelight - Type-safe SQL database library for KMM

Asynchronous Programming

Build System

  • Gradle with Kotlin DSL - Type-safe build configuration

(back to top)


πŸš€ Getting Started

Prerequisites

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

Installation

  1. Clone the repository

    git clone https://github.com/phatndt/xsmart-kmm.git
    cd xsmart-kmm
  2. Open the project in Android Studio

    • Launch Android Studio
    • Select "Open an Existing Project"
    • Navigate to the cloned directory and open it
  3. Sync Gradle dependencies

    • Android Studio will automatically prompt you to sync
    • If not, click on "File" β†’ "Sync Project with Gradle Files"

Running the Project

Android

  1. Connect an Android device or start an emulator
  2. Select the androidApp configuration
  3. Click the "Run" button or press Shift + F10

iOS (Future Support)

Note: iOS implementation is currently not available but is planned for future releases.

(back to top)


πŸ“ Project Structure

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

Module Overview

  • androidApp: Android application entry point with UI implementation
  • feature/*: Modularized features following single responsibility
  • share/data: Data sources, repositories, and data models
  • share/domain: Business logic, use cases, and domain models
  • share/di: Koin modules for dependency injection

(back to top)


πŸ—ΊοΈ Roadmap

Current Version Features

  • Dashboard with feature overview
  • Vietnam Salary Calculator
  • Dark mode support
  • Vietnamese and English localization

Planned Features

  • 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.

(back to top)


🀝 Contributing

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:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)


πŸ“§ Contact

Phat Nguyen

Project Link: xsmart-kmm

(back to top)


πŸ™ Acknowledgments

Special thanks to the following resources and tools that made this project possible:

Frameworks & Libraries

Design & Inspiration

Community

(back to top)


πŸ“„ License

This project is available for personal and educational use.

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors