Tabs
In the portal: Settings, then Configurations, on the nav.tabs row.
What it is
The bar along the bottom of the app has five tabs. You choose which of them a participant gets, in what order, under what words and with which icons.
The five destinations are built into the app, and a rename reaches the caption only. A tab named Wellbeing that goes to the Progress screen is still the Progress screen, because the destination is fixed to the key.
Five is the whole vocabulary. Content that needs a place of its own goes inside Explore, which holds up to eight tabs of its own.
What it looks like
The five, in the order they ship.
key | Default label | What it opens |
|---|---|---|
home | Home | The home screen |
explore | Explore | Content the participant can start themselves |
progress | Progress | What the platform has recorded about that person |
chat | Chat | Their conversations |
settings | Settings | Their profile and app settings |
All five ship visible, with no overrides.
When you would change one
You change the tabs when a screen does not belong in a particular deployment.
A worked example. A tenancy has no coaching staff, so the Chat tab opens on an
empty list every time. Setting visible to false on chat removes it from the
bar entirely, and the remaining four spread across the width. It is not greyed
out and it is not a locked tab. It is gone.
A second example. A tenancy calls its participants members and wants Progress to
read My results. That is a label override on the progress tab, and nothing else
changes.
The controls
The tab configuration is one list. Each entry has four fields.
| Field | What it accepts | Default | What changes on screen |
|---|---|---|---|
key | one of home, explore, progress, chat, settings | required | Which screen the tab opens. Use one of the five keys: any other value is left out of the bar. |
visible | true or false | true | False removes the tab from the bar completely, and switches off any link pointing at it: a push notification or a content button aimed at a hidden tab does nothing, rather than opening a screen a participant has no way back from. So check what points at a tab before you hide it. |
labelOverride | any text, or nothing | nothing | The tab's caption. Nothing means the default label above. |
iconOverride | an icon name, or nothing | nothing | The tab's icon. Nothing means the default icon. |
The two override fields answer to either spelling. labelOverride and
label_override are read as the same field, and so are iconOverride and
icon_override. The value that ships with a new tenancy uses the underscore form, so
that is what you will find already in the box. See
Tabs and the header button for editing it.
The order of the list is the order of the bar. There is no separate position field. Move an entry up the list and its tab moves left.
Those four fields are the whole of a tab. The number of tabs, and what each one opens, are the same in every tenancy.
How it renders
The bar always draws. If the tenancy has no tab configuration yet, or the phone has not synced one, the five defaults are used.
An unknown key is dropped, not shown as a broken tab. A configuration naming a sixth tab produces a five tab bar, and the drop is recorded in the app's own log so it is never silent.
Hiding a tab never leaves a participant stuck on it. Both phones move to the first tab still visible, or to Home if the list is somehow empty, the moment the new configuration arrives, mid session.
So hiding Home changes which screen the app opens on. The app starts on Home, and
falls to the first visible tab in your list when Home is not one of them. Put chat
first and set visible: false on home, and a participant lands in a conversation
rather than on a list. That is one configuration change, not a different build, and it
is the only way to change the app's first screen. Think about it before you do it: Home
is where journeys deliver content, so a participant who never sees it never sees what
was scheduled for them.
A malformed configuration never strands a participant. If the stored value cannot be read, both phones fall back to the five defaults and the bar keeps working. So if a tab change appears not to have taken effect, check the value for a formatting mistake before you assume it did not save.
An unrecognised icon name never leaves a blank tab. The phone draws the tab's default icon instead, so check the spelling if your icon has not appeared.
Set iconOverride and the iPhone draws your icon.
An icon override is honoured on both phones.
*Today: the iPhone uses your icon. Android keeps its own default one.Set a label override on home to fix the caption from first launch. Before a
tenancy configuration arrives, a new Android install shows Today on the Home tab.
Once the configuration syncs, both phones read Home, or whatever label you set.
Worked settings
Hide Chat. One entry changed, visible: false on chat. Four tabs remain
in their existing order.
Put Progress next to Home. Reorder the list to home, progress,
explore, chat, settings. Nothing else changes, and no labels move.
A two tab app. Set visible: false on explore, chat and settings.
Home and Progress remain. That is a real shape for a tenancy that wants a daily
capture and a record of what was captured, and nothing else.
Next
You get five destinations. You decide which of them a participant sees, in what order, and under what words. The bar always draws: if the configuration is missing or cannot be read, both phones fall back to the five defaults rather than leaving a participant with no way to move around.
Tabs and the header button is the configuration side: where the value lives and how to change it without breaking the bar.