# TallyFlow Assets for IoT

**Status:** New component (v0.1.0+1)  
**Primary Mobile App:** `tallyflow_mobile` remains the main TallyFlow Assets experience  
**Role:** Companion / specialized app for IoT remote reader workflows

## Overview

TallyFlow Assets for IoT is a Flutter-based mobile and desktop application that submits barcode and RFID tag reads directly to the TallyFlow IoT service using the remote reader API.

It is designed for scenarios where tag data needs to be delivered to a local or on-premise TallyFlow IoT instance rather than going through the main TallyFlow Core mobile app.

## Key Positioning

- **Complementary to `tallyflow_mobile`** — Not a replacement. `tallyflow_mobile` remains the primary app for general asset capture, enrollment, and mobile workflows.
- **IoT-focused** — Optimized for pushing reads to the TallyFlow IoT remote reader endpoint.
- **Hardware + Simulation** — Full hardware scanner support on Android; simulation mode on desktop for testing and demo purposes.

## Target Use Cases

- Fixed or semi-fixed IoT reader workflows where a mobile device acts as a remote reader
- Environments with local TallyFlow IoT deployments (on-prem or edge)
- Testing and validation of remote reader configurations
- Desktop-based simulation and automation of tag submissions during development or demos

## Core Features

- Hardware barcode and RFID scanning on Android (via `flutter_hardware_scanner`)
- Camera barcode fallback using ML Kit
- Barcode / RFID mode switching
- Local scan list with send status and retry
- Manual or automatic submission to TallyFlow IoT
- IoT service health monitoring with offline banner
- Desktop simulator with JSON tag group loading and automation

## Technical Notes

- Connects to TallyFlow IoT remote reader endpoints (`/reader/barcode` and `/reader/rfid`)
- Requires configuration of Base URL, Remote Reader Name, and optional API key
- Android builds require vendor AAR files for hardware scanner support
- Desktop platforms always run in simulation mode

## Marketing Angle

- Positions TallyFlow as having flexible ingestion paths (mobile app + dedicated IoT remote reader app)
- Supports both field mobility (`tallyflow_mobile`) and IoT/edge integration scenarios
- Simulation mode lowers the barrier for prospects and partners to test IoT connectivity without hardware

## Related Components

- `tallyflow-iot` (backend service)
- `tallyflow_mobile` (primary mobile app)
- `flutter_hardware_scanner` (shared scanning library)

## Next Steps / Open Questions

- How is this app discovered / distributed to customers?
- Is there overlap with existing remote reader support in `tallyflow_mobile`?
- Should this app eventually be merged, or does it serve a permanently distinct workflow?