Skip to content

ainulbedjo/local-forge

Repository files navigation

LocalForge Mobile

A privacy-first, offline-capable suite of utility tools for designers, developers, and content creators — built with Kotlin Multiplatform for Android and iOS.

Kotlin Compose Multiplatform Android iOS

Overview

LocalForge Mobile brings the delphitools utility suite to mobile with native performance and offline capabilities. No login required, no data collection, and no cloud dependencies for core features.

Key Principles

  • Privacy First: No login/registration, no mandatory telemetry, all processing happens on-device
  • Offline Capable: Core tools work without internet connection
  • Native Performance: Image processing, PDF handling, and ML inference performed natively
  • Cross-Platform: Single Kotlin Multiplatform codebase for Android and iOS

Tech Stack

Category Technology
Framework Kotlin Multiplatform (KMP) with Compose Multiplatform
UI Jetpack Compose / Compose Multiplatform
Architecture MVVM + Clean Architecture
Async Kotlin Coroutines + Flow
DI Koin (planned)
Storage DataStore Preferences
ML ML Kit (Android) / Vision (iOS)
Image Processing Bitmap API (Android) / Core Image (iOS)
PDF PdfRenderer (Android) / PDFKit (iOS)

Project Structure

localforge/
├── composeApp/               # Shared Compose Multiplatform module
│   └── src/
│       ├── commonMain/        # Shared business logic, UI, ViewModels
│       ├── commonTest/        # Shared tests
│       ├── androidMain/       # Android-specific implementations
│       └── iosMain/           # iOS-specific implementations
├── iosApp/                    # iOS app entry point (Xcode project)
├── docs/                      # Documentation
│   ├── PRD_DelphiTools_Mobile.md  # Product Requirements
│   └── TRD_DelphiTools_Mobile.md  # Technical Requirements
├── gradle/
│   └── libs.versions.toml     # Version catalog
├── build.gradle.kts           # Root build configuration
├── settings.gradle.kts        # Project settings
└── README.md

Architecture

UI Layer (Compose)
       ↓
ViewModel (StateFlow)
       ↓
UseCase (Business Logic)
       ↓
Repository (Data Abstraction)
       ↓
DataSource (Platform-Specific)
  • commonMain: Shared code including domain logic, presentation layer, and UI components
  • androidMain: Android-specific implementations (ML Kit, PdfRenderer, file system)
  • iosMain: iOS-specific implementations (Vision, PDFKit, FileManager)

Build Requirements

  • Android: API 24+ (Android 7.0+)
  • iOS: 14.0+
  • JDK: 17 or higher
  • Android Studio: Koala (2024.1.1) or newer with Kotlin Multiplatform plugin
  • Xcode: 15.0+ (for iOS builds)

Build & Run

Android

# Build debug APK
./gradlew :composeApp:assembleDebug

# Install and run on connected device/emulator
./gradlew :composeApp:installDebug

# Run tests
./gradlew :composeApp:testDebugUnitTest

iOS

Open /iosApp directory in Xcode and run from there, or use the run configuration in Android Studio.

Available Tools

Phase 1 (MVP)

Tool Description Offline
Image Converter Convert between formats (PNG, JPG, WebP, HEIC)
Image Splitter Split images into grids
Watermarker Add text/image watermarks
Background Remover ML-powered background removal Partial*
Artwork Enhancer AI upscaling via Real-ESRGAN Partial*
Color Converter Convert between color spaces
Contrast Checker WCAG compliance checking
PDF Viewer View and navigate PDFs
Scientific Calculator Full-featured calculator
Unit Converter Length, weight, temperature, etc.
QR Generator Generate QR codes and barcodes

* Requires on-device ML model download on first use

Planned (Phase 2+)

  • Palette Generator
  • Social Media Cropper
  • Typography tools
  • Text utilities (Word Counter, Regex Tester)
  • PDF Preflight & extraction
  • Image Tracer (vectorization)

Development

Code Style

  • Follow Kotlin Coding Conventions
  • Use Compose best practices
  • Prefer StateFlow for UI state management
  • Repository pattern for data access

Testing Strategy

Layer Testing Approach
Domain/Use Cases Unit tests (kotlin-test)
Color Conversion Golden tests
Image Processing Reference image tests
UI Compose UI tests

Running Tests

# Unit tests
./gradlew :composeApp:testDebugUnitTest

# Connected Android tests
./gradlew :composeApp:connectedDebugAndroidTest

Documentation

License

MIT License - See LICENSE for details.

Contributing

This project is currently in active development. Contributions, issues, and feature requests are welcome.


LocalForge Mobile is a mobile adaptation of the delphitools web utility suite.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors