## Where they live

```bash
open mobile/ios
```

On iOS the icon goes in the asset catalog under `mobile/ios` and the display name is the bundle
display name. On Android the icon is a mipmap resource set under `mobile/android` and the name is a
string resource. Both projects ship with placeholders, which is what you will accidentally submit if
you do not change them.

## Sizes

Modern Xcode accepts a single 1024 by 1024 PNG and generates the rest. Android wants an adaptive icon
with separate foreground and background layers, so a single flat square will look wrong on launchers
that mask it.

Two rules that catch people: no transparency on the iOS icon, and no rounded corners drawn in. The
platform applies the mask, and an icon with corners already drawn gets them clipped twice.

## Keep it consistent with the web

The app's identity on the web comes from `config/initializers/app_identity.rb`, which feeds the
title, the meta tags, the PWA manifest and the emails. The native shells cannot read that file, so
the store name and icon are a second place the same brand is expressed.

Worth writing down that they need to move together, because a rebrand updates the initializer, every
view and every email automatically, and silently leaves the two app icons alone.

## Regenerate the social cards while you are at it

```bash
bin/rails og:pages
```

A rebrand touches the share cards too, and those are committed PNGs that nothing regenerates for you.

## What still does not need a build

Everything else. Screens, copy, navigation rules and features all come from your server. The icon and
the name are two of the small number of things on the other side of that line, which is why it is
worth getting them right once rather than discovering a typo after submission.
