Skip to content

fbn776/Tiny-trace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tiny-trace-landscape.webp

Tiny Trace

Tiny Trace is a focused Android utility designed to transform your smartphone or tablet into a portable lightbox for paper tracing. By utilizing high-intensity screen output and specialized image processing, the app allows artists, illustrators, and hobbyists to physically trace digital images onto paper with ease.

Motivation

The motivation behind this project was to create a streamlined tool for artists who need to quickly trace reference images onto physical paper. Most existing solutions are cluttered with ads or complex menus. Tiny Trace was built to provide a "one-task" experience: select an image, lock the screen at full brightness, and start tracing immediately without accidental touches or screen dimming.

How it Works: The Core Flow

Tiny Trace follows a simple, three-step architectural pattern: Select → Enhance → Trace.

  1. Select: Import any image from your device gallery.
  2. Enhance: Use the built-in editor to prepare the image. You can adjust contrast, brightness, and sharpness, or use the "Edge Detection" filter to turn photos into clean outlines that are easier to see through paper.
  3. Trace: Enter the dedicated Tracing Mode. The app automatically forces the screen to maximum brightness, hides all system bars (Immersive Mode), and allows you to "Lock" the screen. Once locked, the image is frozen in place, preventing accidental zooms or pans while your paper is on the display.

Tech Stack

The application is built using modern Android development practices and a lightweight architecture:

  • UI Framework: 100% Jetpack Compose with Material 3 for a modern, responsive, and "finger-friendly" interface.
  • Language: Kotlin using Coroutines and Flow for reactive data handling.
  • Database: Room Persistence Library to store trace history and user-defined image presets.
  • Preferences: Jetpack DataStore for managing application settings like auto-brightness and onboarding states.
  • Image Loading: Coil for efficient, asynchronous image decoding and caching.
  • Image Processing: Custom implementation using android.graphics (Bitmaps, ColorMatrix, and Sobel Convolution kernels) for real-time filter application.

Implementation Details

  • Immersive Tracing: Utilizes WindowInsetsController to hide system UI and WindowManager.LayoutParams to override system brightness and keep the screen awake.
  • Non-Destructive Editing: All image adjustments are calculated in a background thread to maintain 60FPS UI performance during slider movements.
  • State Management: Follows the MVVM (Model-View-ViewModel) pattern to ensure a clear separation between business logic and the UI layer.

Screenshots

Home Image Editor Tracing Mode
Home Image Selection Editor Tracing

About

Convert your smartphone or tablet into a portable lightbox for paper tracing

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages