Skip to content

TMHSDigital/Mobile-App-Developer-Tools

Mobile App Developer Tools

Mobile App Developer Tools

Go from zero to a running mobile app on your phone.

Version Release npm License Docs

CI Validate CodeQL

Stars Issues downloads

43 skills  •  12 rules  •  36 MCP tools

Skills  •  Rules  •  MCP Tools  •  Install  •  Roadmap

Overview

Mobile App Developer Tools is a Cursor plugin by TMHSDigital that packages agent skills, editor rules, and a TypeScript MCP server (mcp-server/) so you can scaffold, build, and ship mobile apps without leaving the IDE. Currently at v1.0.0 with forty-three skills (React Native/Expo + Flutter), twelve rules, and thirty-six live MCP tools.

What you get

Layer Role
Skills 43 guided workflows for React Native/Expo and Flutter: project setup through monetization, analytics, OTA updates, testing, CI/CD, animations, maps, i18n, forms, real-time, security, offline sync, background tasks, debugging, production monitoring, theming, feature flags, accessibility testing, native modules, config plugins, and SDK upgrades
Rules 12 guardrails: secrets, platform guards, image bloat, env safety, performance, accessibility, bundle size, test coverage, i18n strings, security audit, color contrast, native compatibility
MCP 36 tools: env checks, scaffolding, device deploy, screen/component gen, permissions, AI, build health, push, deep links, store builds, metadata validation, App Store + Play Store submission, screenshots, bundle analysis, OTA config, test runner, CI setup, test file generation, i18n setup, map integration, form generation, real-time client, security audit, performance profiling, offline readiness, APM monitoring, theming, accessibility audit, feature flags, native module scaffolding, SDK upgrade, native compat audit

Quick facts

Item Detail
License CC-BY-NC-ND-4.0
Author TMHSDigital
Repository github.com/TMHSDigital/Mobile-App-Developer-Tools
Runtime Node 20+ for MCP server
Framework Expo (React Native) + Flutter

How it works

flowchart LR
    A[User asks mobile dev question] --> B[Cursor loads a Skill]
    B --> C{MCP server configured?}
    C -->|Yes| D["mobile-mcp tools (36)"]
    C -->|No| E[Docs-only guidance]
    D --> F[Local env checks / scaffolding]
    E --> G[Answer in chat or code edits]
    F --> G
Loading
Expand: end-to-end mental model
  1. Install the plugin (symlink into your Cursor plugins directory).
  2. Open a mobile dev task; rules such as mobile-secrets run as you edit.
  3. Invoke a skill by name (for example mobile-project-setup or mobile-run-on-device) when you need a structured workflow.
  4. Optionally wire MCP so tools like checkDevEnvironment, scaffoldProject, or runOnDevice can take real actions on your machine.


Compatibility

Client Skills Rules MCP server (mcp-server/)
Cursor Yes (native plugin) Yes (.mdc rules) Yes, via MCP config
Claude Code Yes, copy skills/ Yes, via CLAUDE.md Yes, any MCP-capable host
Other MCP clients Manual import Manual import Yes, stdio transport

Quick Start

Clone, symlink, build, and try it

1. Clone

git clone https://github.com/TMHSDigital/Mobile-App-Developer-Tools.git
cd Mobile-App-Developer-Tools

2. Symlink the plugin (pick your OS)

Windows PowerShell (run as Administrator if your policy requires it):

New-Item -ItemType SymbolicLink `
  -Path "$env:USERPROFILE\.cursor\plugins\mobile-app-developer-tools" `
  -Target (Get-Location)

macOS / Linux:

ln -s "$(pwd)" ~/.cursor/plugins/mobile-app-developer-tools

3. Build the MCP server

cd mcp-server
npm install
npm run build

4. Try it

Open Cursor and ask:

"Create a new Expo app with TypeScript and file-based routing"
"Check if my dev environment is ready for mobile development"
"How do I run this app on my phone?"

Demo App

See the plugin in action: SnapLog is a photo journal app built entirely using these skills and MCP tools. It exercises 16 of the 43 skills - from project scaffolding and navigation to camera capture, AI descriptions, local storage, and push notifications.

Demo App


Skills

All 43 skills are production-ready. Names match the folder under skills/.

React Native / Expo skills (15)
Skill Framework What it does
mobile-project-setup Expo Guided project creation with TypeScript, file-based routing, ESLint
mobile-dev-environment Shared Detect OS, check dependencies (Node, Watchman, Xcode, Android Studio), fix common issues
mobile-run-on-device Expo Step-by-step for physical device via Expo Go, dev builds, QR code, tunnel mode
mobile-navigation-setup Expo Expo Router file-based navigation: tabs, stack, drawer, typed routes, deep linking
mobile-state-management Shared When to use React state vs Zustand vs Jotai vs React Query with code examples
mobile-component-patterns Shared Reusable component architecture, compound components, StyleSheet vs NativeWind, testing
mobile-camera-integration Expo expo-camera setup, permissions, photo capture, barcode scanning, video recording
mobile-ai-features Shared AI API integration (OpenAI, Anthropic, Google) with backend proxy, vision, text, audio
mobile-permissions Shared Cross-platform permission requests, iOS rationale strings, denied/blocked state handling
mobile-auth-setup Shared Authentication with Supabase, Firebase, Clerk; secure token storage, protected routes
mobile-push-notifications Expo expo-notifications, EAS Push, Android channels, deep link on tap, local notifications
mobile-local-storage Shared AsyncStorage, expo-sqlite, expo-secure-store, MMKV; migrations and data cleanup
mobile-api-integration Shared REST/GraphQL clients, React Query, auth headers, retry, offline queue, optimistic updates
mobile-ios-submission Expo EAS Build/Submit, certificates, provisioning profiles, TestFlight, App Store review
mobile-android-submission Expo Play Console, signing keys, AAB, service accounts, staged rollouts
Flutter skills (4)
Skill What it does
mobile-flutter-project-setup Guided flutter create with feature-first structure, linting, packages, flavors
mobile-flutter-navigation GoRouter: declarative routing, shell routes for tabs, auth guards, deep linking
mobile-flutter-run-on-device USB/wireless debugging, hot reload vs restart, build modes, troubleshooting
mobile-flutter-state-management Riverpod (recommended), Bloc, Provider, setState; async data, code generation
Shared skills (24)
Skill What it does
mobile-app-store-prep App icons, screenshots, metadata, privacy policy, age ratings, review guidelines
mobile-monetization In-app purchases, subscriptions, RevenueCat, StoreKit 2, sandbox testing, price localization
mobile-deep-links Universal links (iOS), app links (Android), URL schemes, deferred deep links, install attribution
mobile-analytics Crash reporting (Sentry, Firebase Crashlytics), event tracking (PostHog), source maps, GDPR compliance
mobile-ota-updates EAS Update channels, runtime versions, staged rollouts, rollback, Shorebird for Flutter
mobile-testing Unit and integration testing with Jest, React Native Testing Library, flutter_test, snapshot testing
mobile-e2e-testing End-to-end testing with Detox, Maestro, Patrol; device farm setup (BrowserStack, AWS Device Farm)
mobile-ci-cd GitHub Actions workflows, EAS Build pipelines, build caching, code signing in CI, PR preview builds
mobile-animations Reanimated 3, Lottie, Rive for React Native; implicit/explicit animations, Hero transitions for Flutter
mobile-maps-location react-native-maps, google_maps_flutter, expo-location, geofencing, background location tracking
mobile-i18n i18next, flutter_localizations, locale detection, RTL layout, pluralization, date/number formatting
mobile-forms-validation React Hook Form + Zod, Form + TextFormField, keyboard avoidance, multi-step wizard forms
mobile-real-time WebSockets, Supabase Realtime, Socket.IO, SSE, reconnection, presence indicators
mobile-security SSL pinning, code obfuscation, jailbreak/root detection, certificate transparency, secure key storage
mobile-offline-sync Offline-first architecture, background sync, conflict resolution, operation queuing, optimistic UI
mobile-background-tasks Background fetch, WorkManager (Android), BGTaskScheduler (iOS), headless JS, Flutter Workmanager
mobile-debugging Flipper, React DevTools, Flutter DevTools, memory leak detection, network inspection
mobile-app-monitoring Production APM with Sentry Performance, Datadog RUM, Instabug; OpenTelemetry spans, Apdex scoring
mobile-theming Design tokens, dark mode, system appearance detection, NativeWind for RN, Material 3 for Flutter, persistent preference
mobile-feature-flags Feature toggles with PostHog, LaunchDarkly, Firebase Remote Config; A/B testing, staged rollouts, kill switches
mobile-accessibility-testing Automated a11y audits, WCAG 2.1 AA compliance, screen reader testing (VoiceOver/TalkBack), CI integration
mobile-native-modules Expo Modules API (Swift/Kotlin), Turbo Modules, JSI bridging, native view components, platform plugins
mobile-config-plugins Config plugin authoring, CNG patterns, Xcode/Gradle automation, modifier previews
mobile-sdk-upgrade SDK version migration, dependency audit, breaking change detection, rollback strategy
Example prompts - one per skill
Skill Try this
mobile-project-setup "Set up a new Expo project for a camera app"
mobile-dev-environment "Is my Mac ready for iOS development?"
mobile-run-on-device "My phone can't connect to the dev server - help"
mobile-navigation-setup "Add tab navigation with Home, Search, and Profile tabs"
mobile-state-management "What state management should I use for my Expo app?"
mobile-component-patterns "Create a reusable Card component with header and footer"
mobile-camera-integration "Add a QR code scanner to my app"
mobile-ai-features "I want to take a photo and have AI describe what's in it"
mobile-permissions "How do I handle camera permission properly on iOS and Android?"
mobile-auth-setup "Add email/password auth with Supabase and protected routes"
mobile-push-notifications "Set up push notifications that open a specific screen on tap"
mobile-local-storage "I need offline storage for a todo list with secure login"
mobile-api-integration "Connect to my REST API with auth headers and offline support"
mobile-app-store-prep "What do I need to submit my app to the App Store?"
mobile-ios-submission "Submit my Expo app to the App Store for the first time"
mobile-android-submission "Publish my app on Google Play with staged rollout"
mobile-flutter-project-setup "Create a new Flutter app with Riverpod and GoRouter"
mobile-flutter-navigation "Add tab navigation with GoRouter in my Flutter app"
mobile-flutter-run-on-device "My Android phone doesn't show up in flutter devices"
mobile-flutter-state-management "Should I use Riverpod or Bloc for my Flutter app?"
mobile-monetization "Add a monthly subscription with a free trial using RevenueCat"
mobile-deep-links "Make shared links like example.com/recipe/42 open in my app"
mobile-analytics "Set up crash reporting with Sentry and event tracking with PostHog"
mobile-ota-updates "Push a bug fix to production without going through app review"
mobile-testing "Add unit tests for my components and hooks"
mobile-e2e-testing "Set up Maestro E2E tests for my login flow"
mobile-ci-cd "Create a GitHub Actions workflow that tests on PR and builds on merge"
mobile-animations "Add a fade-in animation when cards appear and swipe-to-dismiss"
mobile-maps-location "Show a map with the user's location and let them drop pins"
mobile-i18n "Add English and Spanish language support with proper pluralization"
mobile-forms-validation "Build a registration form with email, password, and validation"
mobile-real-time "Add live chat with typing indicators using Supabase Realtime"
mobile-security "Harden my app for production - check for security vulnerabilities"
mobile-offline-sync "Make my app work offline and sync when back online"
mobile-background-tasks "Sync data every 15 minutes even when the app is closed"
mobile-debugging "My app is getting slower over time - help me find the memory leak"
mobile-app-monitoring "Set up production monitoring with Sentry so I know when things break"
mobile-theming "Add dark mode support with design tokens and system appearance detection"
mobile-feature-flags "Set up feature flags with PostHog so I can do staged rollouts"
mobile-accessibility-testing "Run an accessibility audit on my app and fix any WCAG violations"
mobile-native-modules "Create a native module to access the device gyroscope"
mobile-config-plugins "Add Apple Pay entitlement and a custom URL scheme via config plugins"
mobile-sdk-upgrade "Upgrade my Expo app from SDK 50 to the latest version"

Rules

All 12 rules are production-ready.

All 12 rules
Rule Scope What it catches
mobile-secrets Always on API keys, signing credentials, keystore passwords, Firebase config, .p8/.p12 files, EAS tokens
mobile-platform-check .ts, .tsx Platform-specific APIs (BackHandler, ToastAndroid, StatusBar methods) used without Platform.OS or Platform.select() guards
mobile-image-assets .ts, .tsx, .json Oversized images (>500KB), unoptimized formats (BMP, TIFF), missing @2x/@3x variants, uncached remote images
mobile-env-safety .ts, .tsx, .json Hardcoded production endpoints, missing EXPO_PUBLIC_ prefix, server-only secrets in client code
mobile-performance .ts, .tsx, .dart Inline styles, missing list keys, ScrollView for long lists (RN); missing const constructors, inline widgets (Flutter)
mobile-accessibility .ts, .tsx, .dart Missing a11y labels on interactive elements, small touch targets, images without alt text, color-only indicators
mobile-bundle-size .ts, .tsx, .json, .dart Large dependencies (moment, lodash, aws-sdk), unoptimized imports, heavy packages with lighter alternatives
mobile-test-coverage .ts, .tsx, .dart Untested components and screens, missing test files, low coverage thresholds, snapshot-only testing
mobile-i18n-strings .ts, .tsx, .dart Hardcoded user-facing strings not wrapped in a translation function, string concatenation for sentences, missing plural forms
mobile-security-audit .ts, .tsx, .dart, .json, .xml Insecure storage (tokens in AsyncStorage), missing SSL pinning, debug flags in release builds, cleartext traffic, hardcoded signing credentials
mobile-color-contrast .ts, .tsx, .dart Insufficient color contrast ratios, missing dark mode variants, non-semantic color usage, hardcoded colors without theme tokens
mobile-native-compat .ts, .tsx, .dart Deprecated native APIs, bridge-only module patterns, New Architecture incompatibilities, sunset React Native/Flutter APIs

Companion: Mobile MCP Server

npm version

The MCP server gives your AI assistant the ability to take real actions on your local machine. No API keys required.

Setup

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "mobile": {
      "command": "node",
      "args": ["./mcp-server/dist/index.js"],
      "cwd": "<path-to>/Mobile-App-Developer-Tools"
    }
  }
}

Or install globally via npm:

npx @tmhs/mobile-mcp
All 36 MCP tools
Tool Purpose
mobile_checkDevEnvironment Detect installed tools and SDKs (Node, Expo CLI, Watchman, Xcode, Android Studio, JDK). Report what is missing with install instructions.
mobile_scaffoldProject Generate a new Expo project with TypeScript template and recommended config.
mobile_runOnDevice Start dev server and provide step-by-step instructions for connecting a physical device.
mobile_generateScreen Create a new Expo Router screen file with correct convention, navigation wiring, and boilerplate.
mobile_generateComponent Create a React Native component with typed props interface, StyleSheet, and optional test file.
mobile_installDependency Install a package via npx expo install with native module detection and Expo Go compatibility warnings.
mobile_addPermission Add a platform permission to app.json with iOS rationale string via Expo config plugins.
mobile_integrateAI Scaffold an AI API client with provider config, error handling, timeout, and TypeScript types.
mobile_checkBuildHealth Validate app.json, check dependencies, verify TypeScript compiles, detect native module issues.
mobile_addPushNotifications Add expo-notifications plugin to app.json, create notification handler, configure Android channel.
mobile_configureDeepLinks Set URL scheme, add Android intent filters, iOS associated domains, generate AASA template.
mobile_resetDevEnvironment Nuclear reset: clear Metro cache, .expo dir, node_modules cache, optionally Pods and Gradle.
mobile_buildForStore Create a production build for app store submission via EAS Build. Validates app.json before building.
mobile_validateStoreMetadata Check app.json for all required store listing fields (name, bundle ID, version, icon, splash, privacy policy).
mobile_submitToAppStore Submit the latest iOS production build to App Store Connect via EAS Submit.
mobile_submitToPlayStore Submit the latest Android production build to Google Play Console via EAS Submit.
mobile_generateScreenshots Generate a screenshot capture helper script and list required store dimensions for iOS and Android.
mobile_analyzeBundle Analyze app bundle for large dependencies, heavy assets, and optimization opportunities.
mobile_configureOTA Configure EAS Update for over-the-air JavaScript updates with channels and runtime version policy.
mobile_runTests Execute test suite (Jest for Expo, flutter test for Flutter) and return structured pass/fail summary with failure details.
mobile_setupCI Generate a GitHub Actions CI workflow for build, test, and optional EAS Build deployment.
mobile_generateTestFile Scaffold a test file for an existing component or module with imports and placeholder test cases.
mobile_setupI18n Initialize i18n config with locale files, translation structure, and language detection.
mobile_addMap Add a map view with provider config, location permissions, and marker support.
mobile_generateForm Scaffold a validated form component with typed fields, Zod schema, and error handling.
mobile_setupRealtime Add a real-time client module with connection management, reconnection, and typed events.
mobile_securityAudit Scan project for common mobile security anti-patterns: insecure storage, missing SSL pinning, debug flags, cleartext traffic.
mobile_profilePerformance Analyze project for performance anti-patterns: slow lists, unnecessary re-renders, uncached images, animation issues.
mobile_checkOfflineReady Validate offline-first readiness: local database, network status listener, query caching, mutation queue.
mobile_setupMonitoring Configure APM with Sentry Performance or Datadog RUM. Generate monitoring module with error capture, tracing, and release health.
mobile_setupTheming Initialize design token system with light/dark themes, semantic colors, spacing, typography, and persistent theme preference.
mobile_auditAccessibility Scan project for a11y violations: missing labels, small touch targets, images without alt text, color-only indicators. Reports WCAG level.
mobile_setupFeatureFlags Add typed feature flag provider with default values, remote sync, and provider integration (PostHog, LaunchDarkly, Firebase).
mobile_createNativeModule Scaffold an Expo Module or Flutter platform plugin with Swift/Kotlin stubs and TypeScript/Dart bindings.
mobile_upgradeSDK Detect current SDK version, generate step-by-step upgrade plan with dependency fixes, breaking changes, and rollback strategy.
mobile_checkNativeCompat Audit installed packages for New Architecture (Fabric/TurboModules) support. Flag bridge-only and deprecated dependencies.

NPM Package

npm version

The @tmhs/mobile-dev-tools package provides shared CLI utilities for mobile development.

npm install -g @tmhs/mobile-dev-tools
mobile-dev --help

Full functionality (environment checker, template engine, store metadata validator) is coming in future releases. See ROADMAP.md.


Installation

Step Action
1 Clone Mobile-App-Developer-Tools
2 Symlink the repo per Quick Start
3 Restart Cursor
4 (Optional) Register MCP: point your client at mcp-server/dist/index.js after npm run build

Plugin manifest: .cursor-plugin/plugin.json.


Configuration

No API keys are required for local development. Store submission tools require platform-specific credentials.

Future versions may use:

Variable Required Description
EXPO_TOKEN For EAS builds Expo access token for CI/CD
APPLE_ID For iOS submission Apple Developer account email
GOOGLE_SERVICE_ACCOUNT For Android submission Play Console service account JSON

Roadmap

Release history and upcoming versions

Full details in ROADMAP.md.

Version Theme Highlights Status
v0.1.0 Zero to Phone 3 skills, 1 rule, 3 MCP tools
v0.2.0 Navigate & State 6 skills, 2 rules, 6 MCP tools
v0.3.0 Camera & AI 9 skills, 3 rules, 9 MCP tools
v0.4.0 Users & Data 13 skills, 4 rules, 12 MCP tools
v0.5.0 Flutter 17 skills, 5 rules, 12 MCP tools
v0.6.0 Ship It 20 skills, 6 rules, 15 MCP tools
v0.7.0 Grow & Measure 24 skills, 7 rules, 19 MCP tools
v0.8.0 Test & Automate 27 skills, 8 rules, 22 MCP tools
v0.9.0 Rich Features 32 skills, 9 rules, 26 MCP tools
v0.10.0 Harden 37 skills, 10 rules, 30 MCP tools
v0.11.0 Design & Adapt 40 skills, 11 rules, 33 MCP tools
v0.12.0 Extend & Evolve 43 skills, 12 rules, 36 MCP tools
v1.0.0 Stable 43 skills, 12 rules, 36 MCP tools Current
v1.0.0 Stable 43 skills, 12 rules, 36 MCP tools
v1.1.0 Polish & Platform 48 skills, 13 rules, 39 MCP tools
v1.2.0 Data & Payments 53 skills, 14 rules, 43 MCP tools
v1.3.0 Engage & Comply 58 skills, 15 rules, 46 MCP tools
v1.4.0 Connect & Input 62 skills, 16 rules, 49 MCP tools
v1.5.0 Specialize 65 skills, 17 rules, 52 MCP tools
v2.0.0 Complete 65 skills, 17 rules, 52 MCP tools

Contributing

Issues and PRs are welcome. See CONTRIBUTING.md for guidelines on adding skills, rules, and MCP tools.


License

Copyright (c) TM Hospitality Strategies. Licensed under CC-BY-NC-ND-4.0 - see LICENSE.


Mobile App Developer Tools · Built by TMHSDigital · Repository

About

Cursor plugin for mobile app development. 43 skills, 12 rules, and 36 MCP tools for React Native/Expo and Flutter — from project setup to app store submission.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors