proomt

Search

Search posts, papers, and topics

All posts

Shopify8 min readadvanced

Helix: The internal tool powering our Shopify app's native migration

Summary

Helix is Shopify’s internal LLM‑driven framework for migrating React Native screens to native iOS/Android. It breaks a screen into tiny, reviewable checkpoints and forces each through four strict gates—behavior tests via a CLI, Gemini‑powered visual diff, two adversarial code reviewers, and a final engineer sign‑off—while remembering feedback to become more autonomous over time.

  • Incremental checkpoints keep LLM output small enough for a single‑page review and fit within LLM context windows.
  • Four mandatory gates (behavior, UI visual review, adversarial code review, engineer approval) ensure functional, visual, and architectural correctness before any code is committed.
  • Helix generates integration‑style behavior tests from the reference React Native app, running them against a CLI that mimics screen state without needing a simulator.
  • Gemini (a vision‑capable LLM) acts as a pixel‑level design reviewer, reporting every UI discrepancy with severity and location; blockers must be fixed before proceeding.

By moving verification earlier and into small, repeatable loops, Helix reduces the cognitive load on engineers, cuts the risk of large, undiscovered regressions, and makes LLM‑generated code viable for production‑grade mobile apps—something most LLM tooling currently cannot guarantee.

7/10

Related reading

  1. A Mac App, Not an iOS App on a Mac

    Codename One switched its default Mac build from iOS‑Catalyst to a native AppKit port. The new path creates true NSApplication/NSWindow objects with per‑window CAMetalLayer rendering, native menus, text input, multi‑monitor support and accessibility, eliminating the costly image‑copy pipeline of Catalyst and enabling proper desktop window behavior.

    CodeName Onecodenameone.com3 min
  2. VoIP, VPN, and the Build System Behind Them

    Codename One’s new builder pipeline can automatically generate the native plumbing required for VoIP call integration, managed VPN profiles, and packet‑tunnel extensions on iOS and Android. By inspecting which Java packages an app imports, the builder adds the necessary frameworks, entitlements, services, and even a separate signed Network Extension for iOS, letting developers keep their signalin…

    CodeName Onecodenameone.com10 min
  3. One App, More Than One Native Window

    Codename One now supports true native desktop windows via a new `Window` class that separates per‑surface state (paint queue, input routing, native peers) from the global `Display`. The change adds a `PaintSurface` abstraction, platform‑specific window back‑ends (AWT/Swing, Direct2D, GTK, UIWindowScene), and a migration path for components that assumed a single `Form`. Initial release has some UI…

    CodeName Onecodenameone.com11 min
  4. Put App Documents in the System File Browser

    Codename One adds a read‑only DocumentProvider API that lets apps publish a virtual file tree to iOS Files and Android’s storage picker. The tree is defined with `DocumentNode` objects, can include remote‑only entries, and is shared via an App Group container. The iOS extension runs in a separate process, so the model is serialized and read independently; Android uses the same model inside the ap…

    CodeName Onecodenameone.com4 min