awesome-ai-prompts

mobile app project setupspec

One prompt from the awesome-ai-prompts catalog, ready to paste into your AI coding agent.

Copy-paste the block below into any AI coding agent to bootstrap a new mobile app from an empty repository: an argued stack choice, a feature-based structure, a typed navigation skeleton, and clean builds on iOS and Android. Failure here is expensive, so the stack is decided before any code is written.

Keywords: mobile app setup, project scaffold, ios, android, app store, builds

Set up a new mobile app project here for `[what the app does and who it is
for]`. Argue the stack before generating the first file, and finish only when
both platforms build from a clean clone on CI. Infer every decision from the
repository and the scope you write first.

## Define the scope first

1. **The app and its users** - One sentence on what `[the app]` does and who
   it is for. If the sentence needs an "and", split it or cut it.
2. **Target platforms** - iOS, Android, or both, and the minimum OS version
   for each. Name the exact devices and OS versions you will verify against.
3. **The team's existing skills** - Languages and mobile frameworks the team
   already ships, and the hiring or maintenance constraint that matters.
4. **Out of scope** - Backend services this app calls, ongoing store review
   work beyond the listing basics, analytics, i18n, and platform-specific
   workarounds for any platform not named above.

Treat each as a decision you can revise, not a question for the user.

## What to produce

1. **Stack decision** - Native (Swift and Kotlin), React Native, or Flutter,
   chosen for this app and team. Carry the two strongest reasons against the
   choice and the condition that reverses it. Evidence: the rejected options.
2. **Project structure** - A feature-based layout, with the shared layer
   (types, API client, theme) separated from platform code, plus a rule for
   when sharing a module stops paying. Evidence: the folder tree and README.
3. **Navigation skeleton** - The real screen hierarchy with typed route
   parameters, a root navigator, defined back behavior on both platforms, and
   deep-link routing if any screen is shareable. Evidence: the route table and
   the parameter types, cited file:line.
4. **Clean-checkout build evidence** - Install, build, and launch iOS and
   Android from a fresh clone; log toolchain and SDK versions per platform.
5. **CI configuration** - A workflow that installs, builds, and tests both
   platforms on every push with pinned dependency and SDK versions, caching
   build directories but never the toolchain. Evidence: the workflow file and
   a green run URL.
6. **Device test plan** - The devices and OS versions to test on, and the
   simulator blind spots each check closes: safe area and notch, permission
   prompts, low memory, keyboard overlap, the back gesture, real signal.
   Evidence: a device-by-risk matrix.
7. **Store listing basics** - Bundle identifier and version-code rules that
   increase with every upload, the privacy manifest, permission usage strings,
   and icon and splash requirements per store. Evidence: a value checklist.

## Method

Run the phases in order; each has an exit condition.

1. **Inventory the environment first** - Record the SDKs, package managers,
   and target OS versions already installed, plus the team skills from scope.
   Exit: a shortlist with the constraint that eliminates each rejected stack.
2. **Decide the stack, then write the counter-case** - Choose, then state the
   two strongest reasons against it and the trigger to revisit. Exit: a
   decision that names what it is trading away.
3. **Bootstrap without a generator's assumptions** - Create the project, then
   check in SDK version pins, exact dependency versions, and both platforms'
   build settings and ignore files; delete sample content. Exit: a clean tree.
4. **Lay out by feature** - Build the shared layer and the feature folders,
   and document where sharing stops paying. Exit: the README layout paragraph
   matches the tree on disk.
5. **Wire the navigation skeleton** - Real screens with typed params, a root
   navigator, back behavior, and deep-link routes. Exit: every declared route
   resolves on both platforms.
6. **Prove a clean checkout builds** - Clone into a fresh directory, install,
   build, and launch both platforms, and log the output. Resolve the first
   failure. Exit: run logs from a clone with no prior state.
7. **Add CI and make it green** - Configure the workflow, pin versions, cache
   build directories, and get one passing run before continuing. Exit: a green
   run URL.
8. **Write the device and store plans** - Name the devices, the risks
   simulators miss, and the listing values. Exit: the matrix and checklist
   exist and the repo tracks no signing material.

## Verification

Before declaring setup complete, confirm each of these:

- [ ] The stack decision names the two strongest reasons against it and the
      condition that would reverse it.
- [ ] Both platforms build and launch from a fresh clone, proven by a run log
      naming the toolchain and SDK versions.
- [ ] The navigation skeleton routes are typed, and every declared deep link
      resolves on both platforms.
- [ ] The CI workflow pins dependency and SDK versions, builds both platforms,
      and its latest run is green with a URL recorded.
- [ ] The device test plan covers safe area and notch, permission prompts, low
      memory, keyboard overlap, and the back gesture.
- [ ] The bundle identifier and version rules are configured, permission usage
      strings and the privacy manifest are present, and every value is cited.
- [ ] No signing keys, keystores, or provisioning profiles are tracked.
- [ ] No generator sample content remains, and the README structure paragraph
      matches the tree on disk.

## Rules

- Never generate a project and stop before both platforms build.
- Never pick a stack without naming the strongest reasons against it.
- Never commit signing keys, keystores, or provisioning profiles.
- Never call simulator-only verification sufficient, or ship a platform you
  have not run.
- Never leave a generator's sample content in the repository.
- Never end setup with red CI; a broken first run moves the problem, it does
  not solve it.

More mobile-dev prompts