Skip to content

Latest commit

 

History

History
63 lines (50 loc) · 2.72 KB

File metadata and controls

63 lines (50 loc) · 2.72 KB

Dashing Magnifier

A magnifier app for Google Pixel 10 (Android 16+) built with Kotlin, Jetpack Compose, and Material 3.

🤖 Built entirely with AI — This application was designed, coded, and documented entirely using AI-assisted development (Windsurf Cascade).

Download

⬇ Download APK (v1.0.0)

Sideload the APK onto a Pixel 10 (or any device running Android 14+). You may need to enable Install from unknown sources in your device settings.

Features

  • Live camera preview with CameraX (edge-to-edge, rear camera default)
  • Zoom — Material 3 slider (1x–10x) + pinch-to-zoom gesture
  • Flashlight toggle — CameraX torch mode (on/off)
  • Camera flip — front/rear lens switch
  • Capture / Freeze Frame — dedicated FAB; freezes live feed
  • Snapshot overlay — pinch-to-zoom frozen image, dismiss / save / share
  • Brightness / Exposure — slider adjusts camera exposure compensation
  • Color filters — Normal, High Contrast, Inverted, Grayscale, Warm Tint
  • Auto-focus lock — tap to focus, toggle to lock
  • Screen-as-light mode — full white screen at max brightness
  • Haptic feedback — vibration on capture, toggle, zoom limits
  • Quick Settings tile — launch from notification shade
  • Home screen widget — 1×1 one-tap launch

Tech Stack

Layer Choice
Language Kotlin 2.1
UI Jetpack Compose + Material 3 (Material You)
Camera CameraX
Widget Glance
Build Gradle Kotlin DSL, AGP 8.7
Min SDK 36 (Android 16)
Architecture Single-Activity, MVVM (ViewModel + StateFlow)

Getting Started

  1. Open the project in Android Studio Ladybug or newer
  2. Sync Gradle
  3. Connect a Pixel 10 or use API 36 emulator
  4. Run the app configuration

Project Structure

app/src/main/java/com/dashingmagnifier/app/
├── MainActivity.kt
├── DashingMagnifierApp.kt
├── ui/
│   ├── theme/        — Material 3 theme, colors, typography
│   ├── camera/       — CameraScreen, CameraViewModel
│   ├── snapshot/     — SnapshotOverlay
│   ├── filters/      — FilterBottomSheet, FilterType
│   └── components/   — ZoomSlider, BrightnessSlider, ToolbarButton, CaptureButton
├── util/             — MediaStoreHelper
├── service/          — MagnifierTileService (Quick Settings)
└── widget/           — MagnifierWidget (Glance)