RVFD App · Information Architecture
Six tabs, fourteen modal sheets, forty routes. Every tool a firefighter needs is already in the app; the problem is guessing which drawer it is in. This is a restructure proposal. No code was changed.
Today the tab bar is Home, FOG, Apparatus, Incident, Radio, Admin. Two of those are reference libraries, one is the call, one is comms, one is a dashboard, and one is settings wearing a tab costume.
The fix is not new features. It is deciding what each door is for, moving the tasks out of the reference screens, and making the way back the same on every screen.
Seven findings, each with the file and route behind it. Two of them cost taps on every call.
02Today, Incident, Reference, Radio. Settings moves behind the gear, Admin moves inside it.
03Five screens drawn at 402 × 874, in the app's own palette and type.
04One back rule, one exit position, no modal stacked on a modal.
05Eleven jobs, before and after tap counts. Two get slower, five get faster, four stay.
06Keep FOG as its own tab, or go task-first with a launcher home.
Screenshots are the signed-out state: Home, FOG and Apparatus are the only visible tabs until a member signs in, and the officer panels inside Incident, Radio and Admin were reviewed in source rather than on screen.
1. Six tabs, and one of them is settings.
Home · FOG · Apparatus · Incident · Radio · Admin. Admin is not a place firefighters work, it is a settings area with a member list, and it duplicates things the Settings sheet already does. iOS shows five before it starts collapsing.
app/(tabs)/_layout.tsx:105-146 · app/(tabs)/admin.tsx:253-266 · app/settings.tsx:171-190
2. Tasks are hidden inside reference screens.
A truck check is not a reference page, but it is only reachable by expanding a rig card, scrolling past every pump-ops step, and finding the button at the bottom. Equipment manuals sit beside it. Hazmat lookup only exists as a card inside FOG.
app/(tabs)/trucks.tsx:235-236, 950-959 · app/(tabs)/sops.tsx:189-208
3. The same tool has two front doors at different depths.
IRPG is a Home card and a FOG card. Pipeline config is a button in the Admin tab and a row in Settings. Two doors means two mental maps, and they drift.
app/(tabs)/home.tsx:117-121 · app/(tabs)/sops.tsx:189-201 · app/settings.tsx:171 · app/(tabs)/admin.tsx:261
4. Incident is four jobs in one scroll.
Dispatch card, crew scan, the accountability board, and the report queue (pending uploads, pending syncs, ready to review, drafts, submitted) all live on one 3,782-line screen that branches on role. An officer working a live board scrolls past the report lists to reach it.
app/(tabs)/incident.tsx:1-70
5. Fourteen screens are sheets.
Settings chains to three more sheets. Calendar chains to Event, which chains to Edit. Some screens exit with an X, some with a back chevron, some with a swipe. Which gesture gets you out depends on how you arrived, and a sheet on a sheet only dismisses the top one.
app/_layout.tsx:151-389 · app/calendar.tsx:95-131 · app/event-detail.tsx:62-81
6. Home is a twelve-block scroll.
Weather, restriction banner, SPC, roads, out-of-service, officer alerts, fire danger, events, tasks, links, IRPG, Department SOPs. Status and reference are stacked in the same column, so the reference sits below the fold on the screen everyone opens first.
app/(tabs)/home.tsx:99-130
7. Names describe the data, not the job.
"FOG" is internal shorthand. "Apparatus & Pump Ops" is a file name with a title. "Helpful Links" is a drawer holding the roster and three external map sites. A firefighter has to learn the app's vocabulary before they can use it.
app/(tabs)/_layout.tsx:106-146 · src/lib/helpfulLinks.ts:22-61
Each tab answers one question a firefighter actually asks. Nothing needs two doors.
| Today | Moves to | Why |
|---|---|---|
| Admin tab (members, invites, pipeline, voids) | Settings › Department, admin only | Settings is where a person looks for it, and it frees the tab slot. Pipeline config stops existing twice. |
| Settings sheet (gear on every tab) | Settings as a pushed screen | A destination should not be a sheet. Back becomes a chevron like everywhere else. |
| Truck Checks button inside a rig card | Today action, plus a rig picker | A check is a task with a rig, not a property of the rig page. |
| Ask the Manuals inside a rig card | Reference › Equipment Manuals, filtered by rig | Same destination, found by looking it up instead of by expanding a card. |
| Hazmat and IRPG cards inside FOG | Reference index rows | They are references. They belong beside the other references, not inside one of them. |
| Helpful Links card on Home | Reference › Outside links | Roster is a reference. The three map sites are references. Neither is a daily action. |
| Emergency Radio Shutdown in Settings | Radio screen, officer row | An emergency action belongs with the thing it shuts down, not two levels inside settings. |
| IRPG card on Home | Removed (single door) | One entry point per tool. |
Drawn at 402 × 874 with the app's own tokens: paper #F5F1E8, clay #C2553A, serif headings. Content is sample data, not a claim about current records.
Status first, then the three things a member actually opens the app to do. No reference cards below the fold.
One screen, three panes. Board holds the roster and PAR. Reports holds uploads, syncs, ready, drafts, submitted. A member sees Dispatch only, with no role branching in the layout.
The two most-used libraries stay as large tiles at the top, so on-scene reach is tab plus one tap, the same two taps the FOG card already costs today from Home.
Same screen as today, plus the shutdown control where the radio is, behind a confirm. Members never see that row.
Pushed screen, chevron on the left, no tab bar. Department section is admin-only; everyone else sees Account, Audio, Appearance, About.
Five rules. Applied together they make "how do I get out of here" a question nobody has to ask twice.
1. Destinations push. Tasks may be sheets.
Fourteen screens are sheets today. Only three should stay: Record Incident, Incident Report, and Enroll Tag. Each holds unsaved work and each is a focused task. Everything else is a place you go and come back from.
2. Top-left is always the exit, same size, same place.
Chevron on a pushed screen, X on the three task sheets. 44pt target. Never an X in one screen and a chevron in the one behind it.
3. No sheet on a sheet.
Two chains cause the clunk today. Both become straight lines:
4. The tab bar stays on the four doors, and hides only for a task.
A member mid-check or mid-report sees one labeled exit, not a tab bar they can accidentally tap away from their work.
5. Back returns where you came from.
Not to a tab root. The screen you left is the screen you land on, which matters most for an officer moving between Board and a report.
Tap counts from the app's current routing. "Scroll" means the target is below the fold on the entry screen.
| Job | Today | Proposed | Delta |
|---|---|---|---|
| Start a truck check | Apparatus → rig → scroll → Truck Checks | Today → Truck check → rig | 2 faster |
| Equipment manual for a rig | Apparatus → rig → scroll → Manuals | Reference → Manuals → rig | 1 faster |
| Report queue (officer) | Incident → scroll past board | Incident → Reports | no scroll |
| Accountability board (officer) | Incident → scroll | Incident → Board | no scroll |
| Hazmat lookup | FOG → Hazmat | Reference → Hazmat | same |
| Radio | Radio tab | Radio tab | same |
| Settings | gear | gear | same |
| Open a FOG procedure | FOG tab → entry | Reference → FOG tile → entry | 1 slower |
| Pump ops for a rig | Apparatus → rig | Reference → Apparatus → rig | 1 slower |
| Members and invites | Admin tab | gear → Department | 1 slower |
| Pipeline config | Admin → Pipeline, or Settings → Pipeline | gear → Department → Pipeline | 1 slower, one door |
Today · Incident · Reference · Radio, Settings behind the gear. The version mocked up above. Best if the goal is "one place for each kind of thing". Cost: one extra tap into FOG and Apparatus.
Today · FOG · Apparatus · Incident · Radio. Admin folds into Settings exactly as in A, so the tab bar drops to five without merging the two reference tabs. The buried tools get fixed in place instead:
Keeps FOG and Apparatus at one tap. Does not fix the "two reference tabs" split, and Today gets one more row than in A.
Today becomes a symmetric grid of six large tiles: truck check, report, scan crew, reference, radio, incident. Everything is one tap from one screen and the tab bar mostly disappears.
It reads well in a mockup and is worse in the field: a firefighter on a scene has to read six tiles and choose, where a tab bar lets them hit a known position without looking. Symmetry is not the same as clarity.
Each step is independently shippable. If the first one is wrong, the rest never happen.