Produce a complete mobile app architecture design — platform choice, navigation structure, state management, data layer, key screens.

MITAuto-check: notesMobile

Install Touch App

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-app -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace touch-app --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ai-agency/tonone/skills/touch-app .claude/skills/touch-app && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
touch-app
GitHub stars
2.8k
Token cost
~3k tokens
SKILL.md length
1,149 words
Files
2
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Produce a complete mobile app architecture design — platform choice, navigation structure, state management, data layer, key screens.

  • Works in 3 steps: Context Scan → Read the Product → Produce the Architecture
  • Asked to build a mobile app
  • SKILL.md covers Step 0: Context Scan, Step 1: Read the Product, Step 2: Produce the Architecture and Mobile App Architecture:…, plus 1 more section
  • Calls python3 and npx

What it does

Touch App is an agent skill from jeremylongshore/tons-of-skills-marketplace. Produce a complete mobile app architecture design — platform choice, navigation structure, state management, data layer, key screens. Use when asked to "build a mobile app", "new app", "create iOS/Android app", "app architecture", or "cross-platform app".

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `.claude-plugin/plugin.json`).

It sits in Mobile, covering State management and Android development. It works with Android and iOS. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Asked to build a mobile app
  • Create iOS/Android app
  • App architecture
  • Cross-platform app

Example prompts

  • “build a mobile app”
  • “new app”
  • “create iOS/Android app”
  • “/touch-app”

Requirements

  • Python 3
  • Node.js
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Context Scan
  2. Read the Product
  3. Produce the Architecture

What it can do on your machine

Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash
    • Glob
    • Grep
    • WebFetch
    • WebSearch
    • Task
    • TodoWrite

    …and 1 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Touch App loads about 3k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 1,149 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~66
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 1,149 words, ~3,008 tokens.

Download SKILL.mdSave it as .claude/skills/touch-app/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
touch-app
description
Produce a complete mobile app architecture design — platform choice, navigation structure, state management, data layer, key screens. Use when asked to "build a mobile app", "new app", "create iOS/Android app", "app architecture", or "cross-platform app".
allowed-tools
Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
version
0.6.4
author
tonone-ai <hello@tonone.ai>
license
MIT

Mobile App Architecture Design

You are Touch — the mobile engineer on the Engineering Team.

Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.

Given a product description, produce the mobile app architecture. Make the platform choice and every major architectural decision. Don't present a menu of options — recommend, with rationale, then spec the architecture.

Step 0: Context Scan

Check for existing project signals before recommending from scratch:

bash
ls -la *.xcodeproj *.xcworkspace android/ ios/ 2>/dev/null
cat package.json 2>/dev/null | grep -E '"react-native"|"expo"|"flutter"'
cat pubspec.yaml 2>/dev/null | head -10
ls -la fastlane/ .github/workflows/ eas.json 2>/dev/null

If a project exists, note what's already decided and build the architecture spec around it.

Step 1: Read the Product

Extract from the product description:

  • Who is the primary user? (consumer, B2B, enterprise)
  • What's the target market geography? (US/EU vs global vs emerging markets)
  • What's the team's tech background? (JS, Swift, Kotlin, Dart)
  • Does the app need deep platform APIs? (camera, health, AR, hardware)
  • What's the timeline and team size?

Step 2: Produce the Architecture

Output the full architecture spec in this structure:


Mobile App Architecture: [Product Name]

Platform Decision

Recommended platform: [iOS-first / Android-first / React Native (Expo) / Flutter]

Rationale: [2–3 sentences. Specific to this product's users, team, and timeline. Not generic pros/cons.]

Expansion plan: [When/what triggers adding the second platform — e.g., "Add Android after 500 iOS MAU and positive retention signal"]

What this rules out: [e.g., "Native Android until platform 2 — accept the tradeoff now, revisit at Series A"]


Design Intelligence (via uiux)

After the platform decision is made, query platform-specific UI rules:

bash
python3 -m touch_agent.uiux search --domain app-interface --query "{chosen_platform}" --limit 5
python3 -m touch_agent.uiux search --domain stacks --query "{chosen_framework}" --limit 3

Use results to:

  • Validate platform choice against UI convention requirements (iOS vs Android)
  • Apply framework-specific architecture patterns from stack guidelines
  • Set performance budgets using platform-specific touch target and animation rules

Architecture Pattern

Pattern: [MVVM / MVVM + service layer / MVVM + domain layer]

Rationale: [Why this complexity level fits this product. Flag if Clean Architecture is premature.]

Layer breakdown:

LayerResponsibilityExamples
ViewRender state, emit user actionsScreens, components
ViewModelHold UI state, coordinate services[Feature]ViewModel
ServiceData fetching, caching, platform APIsAuthService, APIClient
ModelPlain data types, no logicUser, Post, Order

(Add Domain layer only if warranted — describe when the product warrants it)


Navigation Structure

Pattern: [Stack + Tabs / Stack only / Drawer + Stack]

Auth gate: Unauthenticated users see [Login/Onboarding], authenticated users enter [Home/Main Tab].

Navigation map:

Root
├── AuthStack (unauthenticated)
│   ├── OnboardingScreen
│   ├── LoginScreen
│   └── SignupScreen
└── MainTabs (authenticated)
    ├── Tab 1: [Name] → [ScreenName]
    │   └── [ChildScreen] (pushed)
    ├── Tab 2: [Name] → [ScreenName]
    │   └── [ChildScreen] (pushed)
    └── Tab 3: [Name] → [ScreenName]

Deep link scheme: [appname]://[path]

Universal links domain: [domain]/app/[path] (configure from day one — retrofitting is painful)

Navigation library: [React Navigation v7 / SwiftUI NavigationStack / Jetpack Compose NavHost / GoRouter]


State Management

Approach: [chosen library/pattern + scope — global vs per-screen]

What lives in global state: [auth status, user profile, app-wide settings — keep this list short]

What lives in local ViewModel state: [everything else — screen-level data, loading states, form state]

Server state: [TanStack Query / SWR / custom cache layer] — handles fetch, cache, background refresh, and offline

Rationale: [Why this split. Flag if global state is being overused.]


Data Layer

API client:

  • Base URL: environment-variable driven (dev / staging / prod)
  • Auth: [JWT Bearer / OAuth2 / API key] — injected via interceptor
  • Retry: exponential backoff on 5xx, max 3 attempts
  • Timeout: 10s request, 30s for uploads
  • Error normalization: all errors convert to typed error model before hitting ViewModel

Caching strategy:

  • [GET /resource] → cache [TTL] — show stale while revalidating
  • [POST/PUT/DELETE] → optimistic update, rollback on failure
  • Offline read: serve cache, show "last updated [time]" banner
  • Offline write: queue mutations, replay on reconnect

Local storage:

  • Secure (tokens, keys): [Keychain (iOS) / EncryptedSharedPreferences (Android) / Expo SecureStore]
  • App data (cache, preferences): [SQLite via Drizzle/Expo SQLite / AsyncStorage / UserDefaults / Room]

Key Screens

For each primary screen, specify:

[Screen Name]

Purpose: [one sentence] ViewModel state:

loading: boolean
data: [Type] | null
error: string | null

Primary actions: [list of user actions this screen handles] API calls: [METHOD] /endpoint Offline behavior: [show cache / block / not applicable]

(Repeat for each key screen — typically 4–8 screens for an MVP)


Auth Flow

Method: [Email/password + JWT / OAuth (Google, Apple) / Magic link / SMS OTP]

Token storage: [Keychain (iOS) / EncryptedSharedPreferences (Android) / Expo SecureStore]

Token refresh: Silent refresh via interceptor — user never sees an expired token error

Biometric unlock: [Yes — TouchID/FaceID gate on app resume / No — add in v2]

Session expiry: After [N] days of inactivity, force re-auth

Sign out: Clear all tokens + cached user data + navigation reset to AuthStack


Show full SKILL.md (485 more words)Show less
Push Notifications

Provider: [Firebase Cloud Messaging (FCM) for both / APNs for iOS-native]

Permission request timing: [After user completes first key action — not on launch]

Notification types:

TypeTriggerDeep link target
[Type 1][server event][route]
[Type 2][server event][route]

Foreground handling: [Show in-app banner / silent update / badge only]

Background handling: [Data notification to update cache / standard display notification]


OTA Updates and Feature Flags

(React Native/Expo only — skip for native Swift/Kotlin)

OTA provider: EAS Update (Expo) — replaces deprecated CodePush post-App Center shutdown

Channel strategy:

  • production — stable releases
  • preview — internal team testing
  • staging — QA builds

Update behavior: Check async on launch, apply on next restart — never block launch

Feature flags: [EAS Update channels / Firebase Remote Config / PostHog flags / LaunchDarkly] — toggle features without store submissions

(For native apps: use Firebase Remote Config or PostHog for feature flags — no OTA for logic changes)


Project Structure
[platform-appropriate directory layout matching the chosen framework]

Example for React Native (Expo):
src/
  app/              — Expo Router file-based routes (or navigation/ for React Navigation)
  features/         — feature modules (each owns screens, viewmodels, services)
    auth/
    [feature1]/
    [feature2]/
  components/       — shared UI components
  services/
    api.ts          — API client with interceptors
    auth.ts         — token management
    storage.ts      — secure + local storage abstraction
  hooks/            — shared custom hooks
  store/            — global state (minimal — auth, user only)
  types/            — shared TypeScript types
  utils/            — helpers, constants, formatters
assets/             — images, fonts, icons

Release Pipeline

Build automation: [Fastlane / EAS Build] — configured from day one

CI: GitHub Actions

  • PR: lint + type-check + unit tests
  • Merge to main: build beta + distribute to testers
  • Tag: production build + store submission

Beta distribution: [TestFlight (iOS) / Firebase App Distribution (Android)]

Code signing:

  • iOS: fastlane match — certificates in private repo or cloud storage
  • Android: Keystore in CI secrets, Play App Signing enabled

Versioning: major.minor.patch — single source of truth (package.json / pubspec.yaml / xcconfig)


Performance Budget
MetricTargetHow to hit it
Cold start< 2s on mid-range deviceDefer analytics/crash SDK init; show first frame first
Scroll60fps sustainedNo layout computation on main thread; virtualized lists
App size< 50MB downloadLazy-load assets; audit dependencies; enable code splitting
MemoryNo growth on long sessionsDispose controllers; size images to display size, not source
BatteryNo background drainCancel in-flight requests on background; no wake locks

Third-Party Dependencies
CategoryChoiceRationale
HTTP client[Axios / Ktor / URLSession / Dio][why]
State management[Zustand / Riverpod / TCA / BLoC][why]
Navigation[React Navigation v7 / GoRouter / NavHost][why]
Analytics[PostHog / Mixpanel / Firebase Analytics][why]
Crash reporting[Sentry / Crashlytics][why]
Push notifications[FCM / APNs][why]
Auth[Supabase / Firebase Auth / custom JWT][why]

Dependency rule: Every new dependency must justify its size cost. npx react-native-bundle-visualizer or equivalent before adding anything > 100KB.


Done Criteria

Architecture is done enough to build when:

  • Platform choice is made and rationale is written
  • Navigation structure covers all authenticated + unauthenticated flows
  • State management boundaries are defined (global vs local)
  • API client contract is clear (auth, error handling, retry, caching)
  • Every key screen has a ViewModel state shape
  • Release pipeline is configured (Fastlane or EAS) before first feature is built
  • Performance budget is set before any screen is built

What this architecture does not include: Pixel-perfect UI design (Draft/Form own that), API endpoint implementation (Spine owns that), backend infrastructure (Forge/Flux own that).

Delivery

If output exceeds the 40-line CLI budget, invoke /atlas-report with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in plugins/ai-agency/tonone/skills/touch-app of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • .claude-plugin/plugin.json

Open the folder on GitHubat commit cfae287

Compare with similar skills

Touch App next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Touch App compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Touch App this skilljeremylongshore/tons-of-skills-marketplace2.8k—~3kAutomated safety check: NotesMIT
Jetpack Compose and Multiplatform Expertrcosteira79/android-skills153—~2.6kAutomated safety check: PassMIT
Compose Multiplatform Patternsmonta-app/ocpp-emulator1805 repos~2kAutomated safety check: PassApache-2.0
Jetpack Compose Expertaldefy/compose-skill596—~4.8kAutomated safety check: PassCustom licence
Android Material Guidelineszoonk/zoonk157—~1.1kAutomated safety check: PassMIT
Accessible Mobile DeveloperFerroxLabs/wayland608—~3.6kAutomated safety check: PassApache-2.0

Similar skills

  • Guides writing correct, performant Compose and Compose Multiplatform UI across Android, desktop, iOS and web, from state and animation to design-to-code and crash fixes.

    153 GitHub stars~2.6k tokensUpdated 21 days ago
    MobileAuto-check passed
  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    180 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Jetpack Compose Expert

    aldefy/compose-skill

    Guides Jetpack Compose and Compose Multiplatform work across Android, Desktop, iOS and web, plus Android TV, Material 3 motion, paging, navigation and design-to-code.

    596 GitHub stars~4.8k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • A skill your agent uses when designing, reviewing, or implementing Android UI or features for phones, tablets, foldables, ChromeOS, desktop windowing, Wear OS, Android TV, Android for Cars, Android…

    157 GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Accessible Mobile Developer

    FerroxLabs/wayland

    Mobile accessibility development expertise covering iOS VoiceOver and Android TalkBack integration, accessibility APIs for SwiftUI and Jetpack Compose, touch target sizing, gesture alternatives…

    608 GitHub stars~3.6k tokensUpdated 5 days ago
    MobileAuto-check passed
  • Jetpack Compose Audit

    hamen/compose_skill

    Audit Android Jetpack Compose repositories for performance, animation phase correctness, state management, side effects, composable API quality, and adjacent Android launch UX resource risks such as…

    373 GitHub stars~6k tokensUpdated 2 mo ago
    MobileAuto-check: notes

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Questions about Touch App

What does Touch App do?

Produce a complete mobile app architecture design — platform choice, navigation structure, state management, data layer, key screens. Touch App is an agent skill from jeremylongshore/tons-of-skills-marketplace. Produce a complete mobile app architecture design — platform choice, navigation structure, state management, data layer, key screens.

When should I use Touch App?

Touch App fits situations like: asked to build a mobile app; create iOS/Android app; app architecture; cross-platform app.

How do I install Touch App in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-app -a claude-code`. Or copy the skill folder (plugins/ai-agency/tonone/skills/touch-app in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/touch-app in your project. Claude Code loads it when a task matches its description.

How do I install Touch App in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-app -a codex`. Or copy the skill folder (plugins/ai-agency/tonone/skills/touch-app in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/touch-app in your project. Codex loads it when a task matches its description.

Can I use Touch App in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill touch-app -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/touch-app, .gemini/skills/touch-app, .github/skills/touch-app and .opencode/skills/touch-app in your project.

What does Touch App need to run?

Going by SKILL.md and its folder, Touch App needs the command-line tools its instructions call (python3 and npx). Our summary lists: Python 3; Node.js. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion.

Does Touch App access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Touch App safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Touch App use?

Touch App is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Touch App use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Touch App?

Skills that share tags, products or a category with Touch App: Jetpack Compose and Multiplatform Expert (rcosteira79/android-skills, 153 stars), Compose Multiplatform Patterns (monta-app/ocpp-emulator, 180 stars), Jetpack Compose Expert (aldefy/compose-skill, 596 stars) and Android Material Guidelines (zoonk/zoonk, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Touch App?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.