ODS Flutter Local is a cross-platform native app framework that transforms JSON specifications into fully functional applications with local SQLite storage. It is the reference implementation of the One Does Simply (ODS) platform.
No internet, no server, no account required. Load a JSON spec and the app is instantly usable with persistent local data.
visibleWhen rules)[SECURITY] events)| Layer | Technology |
|---|---|
| Framework | Flutter 3.6+ |
| Language | Dart 3.6+ |
| State | Provider (ChangeNotifier) |
| Database | SQLite (sqflite + FFI) |
| Charts | fl_chart |
| Design | Material Design |
flutter pub get
flutter run # Run on current platform
flutter run -d windows # Run on Windows specifically
| Command | Description |
|---|---|
flutter run |
Run in debug mode |
flutter run -d windows |
Run on Windows |
flutter build windows |
Production build |
flutter test |
Run all tests |
flutter test --reporter compact |
Compact test output |
test/widget/_test_harness.dart.tool/coverage_check.dart — lib/engine
60%, lib/models 85%, lib/parser 80%.Each app gets its own SQLite database file at ~/.ods/ods_<appname>.db. Columns are TEXT type with auto-schema — tables and columns are created on demand, never dropped. Record IDs (_id) are 15-character alphanumeric strings, matching PocketBase’s format for cross-framework data portability.
lib/
main.dart — App entry point, Provider setup, framework shell
engine/ — Core services (state, auth, data, evaluators, logging)
models/ — Pure Dart interfaces for ODS spec types
parser/ — JSON parsing and validation
renderer/ — Flutter widgets mapping ODS types to Material UI
screens/ — Full-page screens (login, settings, admin, help)
widgets/ — Shared widgets (color picker, theme picker)
loader/ — Spec loading (file, URL)
debug/ — Debug panel overlay
test/
engine/ — Engine service tests
models/ — Model parsing tests
parser/ — Parser and validator tests
regression/ — Example spec validation
assets/
themes/ — 42 pre-built theme JSON files
build-helper-prompt.txt — AI Build Helper system prompt