Row Smarter Rowing computer for iPad and iPhone

ROWFILE/1

A .rowfile keeps one complete rowing session in one file. Row Smarter exports and imports it today. It carries the lossless session record alongside the CSV and TCX exports meant for spreadsheets and training sites.

Sharing this file directly is available now. A web link that hands off the same archive is built for the coming release but is not in the current TestFlight build.

Container framing

The container is a deterministic concatenation, not a zip file. ASCII framing surrounds each entry's raw bytes:

ROWFILE/1\n
>> <name> <size in bytes, decimal>\n
<size raw bytes>\n
...repeated per entry...

manifest.json is written first. Readers must accept entries in any order, skip names they do not know and reject a name that appears twice.

Entry names

Row Smarter writes these fixed names:

The CSV and TCX entries are byte for byte the same as the loose exports. A stitched archive may have no session.json; in that case the importer recovers what it can from those entries.

manifest.json

formatVersion is the only required key. The other values may be absent when a tool stitches an archive from loose files.

session.json

The session schema is version 1. Values are not rounded. Required keys are marked below; every other key is optional.

Session

Duration object

Sample object

Stroke object

Force-curve object

Beat object

Race object

Provenance object