Releases: majdukovic/frontrow
Release list
v0.1.0 — First public release
FrontRow is an open-source React Native ticketing app built as a QA automation training playground. Same testID contract carries through to Maestro, Appium, Espresso, and XCUITest, with a deep QA Debug Menu, deterministic seed scenarios, and a bridged native screen (Swift + Kotlin) on top.
Try it out
Android — FrontRow.apk
Release-variant, signed with a debug keystore (sideload only — not Play Store ready). Works on emulators and real devices with USB debugging enabled.
adb install FrontRow.apk
adb shell am start -n app.frontrow.qa/.MainActivityOr copy the APK to the device, tap it in Files, and accept the "install from unknown source" prompt.
iOS — FrontRow.app.zip
Release build for the iOS Simulator on Apple Silicon (arm64) only. Will not run on a physical iPhone or on Intel Macs — for those, build from source.
unzip FrontRow.app.zip
xcrun simctl list devices booted # confirm a sim is running
xcrun simctl install booted FrontRow.app
xcrun simctl launch booted app.frontrow.qaOr drag-and-drop the unzipped .app onto a Simulator window.
What's inside
- Realistic product surfaces — onboarding, browse/search/filter, infinite pagination, buy flow with tier picker, ticket detail with QR + cancel + transfer, edit profile with dirty-state guard, forgot-password (email → OTP → reset), notifications inbox, offline banner.
- QA Debug Menu — Build info · Jump-to-screen · Device-capability demos · Seed scenarios · Time travel · Force error (4xx / 5xx / timeout / offline) · Network latency profiles · Locale override · Replay onboarding · Fake push · Crash · Failure triggers (8 toggles) · IAP outcome control · Analytics event log · Reset.
- Hand-rolled native screen — Swift
UIViewController(iOS) + KotlinAppCompatActivity(Android) bridged to JS so testIDs carry through to raw native surfaces. Open from Debug → Native demo. - Stable test IDs — central registry in
src/testIds.ts. ESLint plugin (eslint-plugin-frontrow) flags any interactive component missing atestIDoraccessibilityLabel. - 28 Maestro flows across smoke / events / auth / tickets / billing / capabilities / debug / native.
- 181 Jest tests for state, hooks, services, and deep-link routing.
First five minutes
- Onboarding → swipe or skip.
- Sign in (demo creds pre-filled).
- Browse events, buy a ticket, see it in My Tickets with a QR.
- Visit the Debug tab → try Scenarios → Expired tickets, Network → Force error → 5xx, Device capabilities → Native demo, Time travel → +1w.
- Trigger a deep link from a terminal:
xcrun simctl openurl booted "frontrow://debug/seed/many_events"
Full deep-link catalog: docs/DEEPLINKS.md.
Notes
- The Debug tab is intentionally visible in this release build — exposing the QA surface is the whole point of the app. If you fork FrontRow as the base for a real product, gate the registration behind
__DEV__or a build flag. - The APK is debug-keystore-signed because it's meant as a sideload demo, not a Play Store build.
- No crash reporting is wired in (no Sentry / Crashlytics). The included
ErrorBoundarycatches React errors only.
Build from source
git clone https://github.com/majdukovic/frontrow.git
cd frontrow
npm install
npm run ios # or: npm run androidSee the README for details.