← All projects
FlutterBLoC / Hydrated BLoCDioAutoRouteGetItpro_image_editorFirebase Remote ConfigShorebird OTA 2025+

Selfie Time Kiosk Tablet

Native Android kiosk app powering physical photo booths — real-time editor canvas, hardware integration, and over-the-air deployment.

Overview

The Selfie Kiosk Tablet is a custom Android kiosk application deployed across hundreds of physical photo booths. It guides users through photo scanning, image manipulation, frame customization, real-time checkout, and printing pipelines.

Built as a complete rewrite of a legacy, resource-heavy Meteor.js tablet client, I architected this Flutter-based replacement using the BLoC pattern for predictable state management, dramatically reducing boot times and runtime crashes on budget kiosk hardware.

Key Features

Real-time Canvas & Image Editor

  • Interactive image editor powered by pro_image_editor, customized with custom rendering canvases for photo collage layouts.
  • Advanced photo controls including scaling, rotation, filtering (custom shaders), layout flipping persistence, and real-time canvas overlays.
  • Prevention of UI-size mismatches on layout previews to guarantee print-ready high-resolution file generation.

Robust Offline-First Export Pipeline

  • Defensive rendering strategies preventing memory-related hangs during multi-canvas high-resolution image compilation (RC1-RC4 fixes).
  • Intelligent decode constraints and rasterization caps controlled dynamically via Firebase Remote Config based on hardware profiles.
  • Custom export telemetry integrating watchdog timer warnings and Crashlytics breadcrumbs to capture pipeline issues in the field.

Hardware & POS Integration

  • Local network discovery using multicast_dns to communicate with the Electron edge kiosk server.
  • Seamless camera interface and QR code scanning for transaction verification.
  • Order configuration, user input forms, and payment method flows (cash, card, QR) integrated with local POS receipt printing.

Kiosk Hardening & Remote Deployment

  • Kiosk-mode Android hardening preventing escape loops, secure settings locks, and admin password protection.
  • Over-the-air (OTA) code pushes using **Shorebird** for live bug patches without requiring store review or physical device maintenance.
  • Robust local state recovery via HydratedBLoC, ensuring the kiosk can restore active user sessions after power fluctuations or hardware restarts.

Role

Lead developer for the client refactor. Wrote the state architectures, image cropping validations, remote telemetry reporting, local Express backend synchronization, and the offline export compilation pipelines.