Marina Makeewa
Back
Lab

iOS ↔ Android helper

Duration
first version — one evening
Stack
Next.js, Vercel AI SDK, OpenAI (gpt-4o-mini), Markdown knowledge base

Cross-platform designers hit the same wall: an iOS Action Sheet is not an Android Bottom Sheet. They look similar but behave differently — different dismiss gestures, different acceptable content, different user expectations.

This Labs experiment is a helper that:

  • answers questions like "what's the Material 3 equivalent of a Segmented Control"
  • explains behavioural differences and when to pick which
  • links to primary sources (HIG / M3)
  • (next iteration) takes a Figma frame and suggests a port to the other system

Architecture

One knowledge base, three consumers.

Knowledge base in content/ios-android/mappings/*.md. One markdown = one component pair. Frontmatter: names on both platforms, doc links, last-verified date, tags.

Freshness has two layers:

  1. Vercel Cron hits the refresh route weekly, hashes HIG / M3 pages from sources.yaml, marks affected mappings stale: true on drift.
  2. Runtime fallback — if a question is outside the curated base, the model does a WebFetch to the official docs and answers with a citation.

Consumers of the same base:

  • Skill ios-android-translator — for designers working in Claude Code
  • Mini-service at /labs/ios-android-helper — chat UI for everyone
  • Figma plugin (planned) — review of a selected frame

What works today

  • Three seed mappings: Navigation Bar ↔ Top App Bar, Action Sheet ↔ Modal Bottom Sheet, Segmented Control ↔ Segmented Button
  • /api/ios-android/chat streaming endpoint via Vercel AI SDK on an OpenAI model
  • /api/ios-android/refresh cron route for staleness checks

Next up

  • Grow the base to 30–40 pairs (typography, icons, forms, navigation, modals, feedback)
  • Chat UI on the Labs page
  • Figma plugin: reads selection, matches components heuristically, proposes replacements

Возьми и попробуй

Спроси про любой компонент

Помощник отвечает по курируемой базе пар iOS ↔ Android. Если пары нет — сходит на HIG / M3 и ответит со ссылкой.

Источники — Apple HIG и Material 3. Сверяется автоматически раз в неделю.