Mobile apps that ship to the App Store and Play Store have requirements that web apps do not. Authentication has to handle token refresh on resume from background. Push notifications have to register the device and route to the right deep link. Offline storage has to keep the user productive when the network is gone. Error handling has to surface failures without bouncing the user to a crash screen. None of these are visible in a Hello World scaffold; all of them are required for a real product. The team that ships without them rebuilds the foundation halfway through development, which is the most expensive moment to redo it.
The /touch-app skill produces a mobile foundation with these layers in place from day one. Navigation structure, API client with auth and refresh, push notification registration, offline storage, error boundaries, CI pipeline. The output is calibrated to the team's chosen framework (React Native, Flutter, native iOS, native Android) and integrates with the existing backend. The discipline is to ship the right foundation rather than the smallest one.
Why generalist AI ships barebones mobile scaffolds
Ask Cursor or ChatGPT for a React Native app. You get the boilerplate Expo or CLI output, with one screen and a navigation library. The app runs on a simulator. It does not handle token refresh, does not register for push, has no offline strategy, no error boundary, and no CI. The team builds these on top of the boilerplate over weeks, often discovering missing layers when a customer reports a specific failure. The boilerplate is the right starting point for a tutorial; it is the wrong starting point for a product.
What a production mobile foundation requires
Six layers. Navigation: stack, tab, drawer, with deep link handling. API client: auth attachment, token refresh, retry on transient errors. Push notifications: device registration, deep link routing, background handling. Offline storage: cached queries, optimistic mutations, sync on reconnect. Error handling: error boundaries, crash reporting (Sentry, Crashlytics), graceful degradation. CI: build for both platforms, test runs, beta distribution (TestFlight, Internal Testing). Each layer is small individually and considerable together.
How /touch-app works
The skill detects the chosen framework and produces the scaffolding for each layer. React Native gets React Navigation, TanStack Query with offline persistence, Firebase Cloud Messaging or Expo notifications, Sentry. Flutter gets go_router, dio with retry, Firebase Cloud Messaging, Sentry. Native iOS and Android get the platform equivalents. The CI pipeline integrates with Fastlane for the release work and the project's existing CI tool for builds.
Token refresh on app resume is the single most common mobile auth bug. The token expired while the app was backgrounded, and the next API call fails. /touch-app wires the refresh into the API client interceptor so the failure never reaches the UI.
Tonone's /touch-app skill scaffolds production-ready mobile apps with navigation, API client, push, offline, error handling, and CI calibrated to the chosen framework.
When to use /touch-app, and when not to
/touch-app is the right call when starting a new mobile app or hardening an existing prototype to production. Skip it for trivial apps without auth, sync, or push (a calculator-style utility). For mobile feature-level work within an existing app, /touch-feature is the right call. For mobile audit, /touch-audit produces the gap report.
| Capability | Tonone | Generalist chatbot | Cursor / Copilot |
|---|---|---|---|
| Auth with token refresh | Yes, in API client interceptor | Login form only | Boilerplate |
| Push notification registration + routing | Yes, with deep link integration | Not in scope | Library import only |
| Offline storage strategy | Yes, cached queries + sync on reconnect | Not in scope | Variable |
| Error boundaries + crash reporting | Yes, by default | Default error screen | Variable |
| CI for both platforms | Yes, with beta distribution | Not in scope | Variable |
Related skills
/touch-app produces the foundation. For feature-level work, /touch-feature is the right call. For mobile release pipeline specifically, /touch-release covers Fastlane and store metadata. For mobile audit, /touch-audit is the entry point.
Install
/touch-app ships with the Touch agent in Tonone for Claude Code. Install, invoke, and the skill produces the production-ready mobile foundation calibrated to the chosen framework.
1. Add to marketplace
2. Install Touch
Mobile apps that ship correctly are the ones built on the right foundation. The skill is built so that foundation is the default.
Frequently asked questions
- What does /touch-app do?
- It scaffolds a production-ready mobile app with navigation, API client (with token refresh), push notifications, offline storage, error handling with crash reporting, and CI for both platforms.
- What frameworks does /touch-app support?
- React Native (Expo and bare), Flutter, native iOS (Swift/SwiftUI), and native Android (Kotlin/Compose).
- When should I use /touch-app?
- When starting a new mobile app or hardening an existing prototype with auth, sync, push, and store distribution to production.
- How is /touch-app different from a CLI scaffold?
- CLI scaffolds produce the runnable boilerplate. /touch-app produces the operational layers (auth refresh, push, offline, error handling, CI) the product needs.
- How do I install /touch-app?
- Install Tonone for Claude Code via tonone.ai/get-started. /touch-app ships with the Touch agent. Tonone is free and MIT-licensed.
- Is /touch-app free?
- Yes. Tonone is MIT-licensed. The only cost is Claude Code token usage.