Native iOS and Android, an Apple Watch target, an augmented-reality surface and voice — five interaction models built over one set of product rules.
A social publishing product had outgrown the browser. We built the native iOS and Android clients on the same product rules the web already ran on — the same campaigns, the same queue, the same permissions — and that is exactly where the two platforms stop agreeing. Background execution, notification delivery and token refresh each behave differently on iOS and Android, change with every OS release, and have to keep working through a September the app was never tested against.
The watch is not a smaller phone. It is its own lifecycle, with its own memory ceiling, its own complications to keep current and its own review to pass. The augmented-reality surface had to answer a harder question still — whether an AR view earns the switch away from a screen the reader already has open — while television and voice each wanted the same content shaped for a room rather than a hand.
The decision that carries this work is where the shared line sits. Five interaction models must not fork the business rules underneath them, and that is settled deliberately at the start or discovered expensively later, once two platforms have already drifted apart.
Two minutes of questions about your own build, answered by a senior engineer. You get a written plan and a number before you commit to anything.