@nextsparkjs/ai-workflow 0.1.0-beta.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/claude/_docs/workflows-optimizations.md +359 -0
  4. package/claude/agents/api-tester.md +634 -0
  5. package/claude/agents/architecture-supervisor.md +1351 -0
  6. package/claude/agents/backend-developer.md +997 -0
  7. package/claude/agents/backend-validator.md +417 -0
  8. package/claude/agents/bdd-docs-writer.md +737 -0
  9. package/claude/agents/block-developer.md +677 -0
  10. package/claude/agents/code-reviewer.md +1432 -0
  11. package/claude/agents/db-developer.md +721 -0
  12. package/claude/agents/db-validator.md +407 -0
  13. package/claude/agents/demo-video-generator.md +493 -0
  14. package/claude/agents/documentation-writer.md +1268 -0
  15. package/claude/agents/frontend-developer.md +1234 -0
  16. package/claude/agents/frontend-validator.md +777 -0
  17. package/claude/agents/functional-validator.md +630 -0
  18. package/claude/agents/mock-analyst.md +387 -0
  19. package/claude/agents/product-manager.md +963 -0
  20. package/claude/agents/qa-automation.md +1762 -0
  21. package/claude/agents/release-manager.md +634 -0
  22. package/claude/agents/selectors-translator.md +262 -0
  23. package/claude/agents/unit-test-writer.md +785 -0
  24. package/claude/agents/visual-comparator.md +329 -0
  25. package/claude/agents/workflow-maintainer.md +352 -0
  26. package/claude/commands/do/README.md +88 -0
  27. package/claude/commands/do/create-api.md +64 -0
  28. package/claude/commands/do/create-entity.md +66 -0
  29. package/claude/commands/do/create-migration.md +64 -0
  30. package/claude/commands/do/create-plugin.md +56 -0
  31. package/claude/commands/do/create-theme.md +70 -0
  32. package/claude/commands/do/mock-data.md +67 -0
  33. package/claude/commands/do/reset-db.md +71 -0
  34. package/claude/commands/do/setup-scheduled-action.md +75 -0
  35. package/claude/commands/do/sync-code-review.md +117 -0
  36. package/claude/commands/do/update-selectors.md +112 -0
  37. package/claude/commands/do/use-skills.md +90 -0
  38. package/claude/commands/do/validate-blocks.md +69 -0
  39. package/claude/commands/how-to/README.md +261 -0
  40. package/claude/commands/how-to/add-metadata.md +692 -0
  41. package/claude/commands/how-to/add-taxonomies.md +806 -0
  42. package/claude/commands/how-to/add-translations.md +571 -0
  43. package/claude/commands/how-to/create-api.md +577 -0
  44. package/claude/commands/how-to/create-block.md +575 -0
  45. package/claude/commands/how-to/create-child-entities.md +771 -0
  46. package/claude/commands/how-to/create-entity.md +597 -0
  47. package/claude/commands/how-to/create-migrations.md +605 -0
  48. package/claude/commands/how-to/create-plugin.md +654 -0
  49. package/claude/commands/how-to/customize-app.md +481 -0
  50. package/claude/commands/how-to/customize-dashboard.md +553 -0
  51. package/claude/commands/how-to/customize-theme.md +438 -0
  52. package/claude/commands/how-to/define-features-flows.md +632 -0
  53. package/claude/commands/how-to/deploy.md +507 -0
  54. package/claude/commands/how-to/handle-file-uploads.md +746 -0
  55. package/claude/commands/how-to/implement-search.md +1001 -0
  56. package/claude/commands/how-to/install-plugins.md +352 -0
  57. package/claude/commands/how-to/manage-test-coverage.md +984 -0
  58. package/claude/commands/how-to/run-tests.md +400 -0
  59. package/claude/commands/how-to/set-app-languages.md +601 -0
  60. package/claude/commands/how-to/set-plans-and-permissions.md +575 -0
  61. package/claude/commands/how-to/set-scheduled-actions.md +527 -0
  62. package/claude/commands/how-to/set-user-roles-and-permissions.md +550 -0
  63. package/claude/commands/how-to/setup-authentication.md +388 -0
  64. package/claude/commands/how-to/setup-claude-code.md +440 -0
  65. package/claude/commands/how-to/setup-database.md +274 -0
  66. package/claude/commands/how-to/setup-email-providers.md +598 -0
  67. package/claude/commands/how-to/setup-mobile-dev.md +627 -0
  68. package/claude/commands/how-to/start.md +500 -0
  69. package/claude/commands/how-to/use-devtools.md +639 -0
  70. package/claude/commands/how-to/use-superadmin.md +622 -0
  71. package/claude/commands/session/README.md +193 -0
  72. package/claude/commands/session/block-create.md +190 -0
  73. package/claude/commands/session/block-list.md +203 -0
  74. package/claude/commands/session/block-update.md +192 -0
  75. package/claude/commands/session/block-validate.md +218 -0
  76. package/claude/commands/session/changelog.md +115 -0
  77. package/claude/commands/session/close.md +225 -0
  78. package/claude/commands/session/commit.md +174 -0
  79. package/claude/commands/session/db-entity.md +206 -0
  80. package/claude/commands/session/db-fix.md +212 -0
  81. package/claude/commands/session/db-sample.md +206 -0
  82. package/claude/commands/session/demo.md +178 -0
  83. package/claude/commands/session/doc-bdd.md +207 -0
  84. package/claude/commands/session/doc-feature.md +218 -0
  85. package/claude/commands/session/doc-read.md +225 -0
  86. package/claude/commands/session/execute.md +204 -0
  87. package/claude/commands/session/explain.md +202 -0
  88. package/claude/commands/session/fix-bug.md +210 -0
  89. package/claude/commands/session/fix-build.md +182 -0
  90. package/claude/commands/session/fix-test.md +189 -0
  91. package/claude/commands/session/pending.md +232 -0
  92. package/claude/commands/session/refine.md +188 -0
  93. package/claude/commands/session/resume.md +192 -0
  94. package/claude/commands/session/review.md +192 -0
  95. package/claude/commands/session/scope-change.md +181 -0
  96. package/claude/commands/session/start-blocks.md +347 -0
  97. package/claude/commands/session/start.md +604 -0
  98. package/claude/commands/session/status.md +169 -0
  99. package/claude/commands/session/test-fix.md +221 -0
  100. package/claude/commands/session/test-run.md +203 -0
  101. package/claude/commands/session/test-write.md +242 -0
  102. package/claude/commands/session/validate.md +162 -0
  103. package/claude/config/context.json +40 -0
  104. package/claude/config/github.json +69 -0
  105. package/claude/config/github.schema.json +106 -0
  106. package/claude/config/team.json +46 -0
  107. package/claude/config/team.schema.json +106 -0
  108. package/claude/config/workspace.json +43 -0
  109. package/claude/config/workspace.schema.json +75 -0
  110. package/claude/skills/README.md +228 -0
  111. package/claude/skills/accessibility/SKILL.md +573 -0
  112. package/claude/skills/api-bypass-layers/SKILL.md +550 -0
  113. package/claude/skills/asana-integration/SKILL.md +499 -0
  114. package/claude/skills/better-auth/SKILL.md +666 -0
  115. package/claude/skills/billing-subscriptions/SKILL.md +660 -0
  116. package/claude/skills/block-decision-matrix/SKILL.md +359 -0
  117. package/claude/skills/clickup-integration/SKILL.md +434 -0
  118. package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
  119. package/claude/skills/create-plugin/SKILL.md +425 -0
  120. package/claude/skills/create-theme/SKILL.md +331 -0
  121. package/claude/skills/cypress-api/SKILL.md +511 -0
  122. package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
  123. package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
  124. package/claude/skills/cypress-e2e/SKILL.md +526 -0
  125. package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
  126. package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
  127. package/claude/skills/cypress-selectors/SKILL.md +309 -0
  128. package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
  129. package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
  130. package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
  131. package/claude/skills/database-migrations/SKILL.md +335 -0
  132. package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
  133. package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
  134. package/claude/skills/design-system/SKILL.md +682 -0
  135. package/claude/skills/documentation/SKILL.md +540 -0
  136. package/claude/skills/entity-api/SKILL.md +482 -0
  137. package/claude/skills/entity-system/SKILL.md +635 -0
  138. package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
  139. package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
  140. package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
  141. package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
  142. package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
  143. package/claude/skills/github/SKILL.md +467 -0
  144. package/claude/skills/i18n-nextintl/SKILL.md +302 -0
  145. package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
  146. package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
  147. package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
  148. package/claude/skills/impact-analysis/SKILL.md +203 -0
  149. package/claude/skills/jest-unit/SKILL.md +306 -0
  150. package/claude/skills/jest-unit/references/component-testing.md +371 -0
  151. package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
  152. package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
  153. package/claude/skills/jira-integration/SKILL.md +539 -0
  154. package/claude/skills/media-library/SKILL.md +743 -0
  155. package/claude/skills/mock-analysis/SKILL.md +276 -0
  156. package/claude/skills/monorepo-architecture/SKILL.md +162 -0
  157. package/claude/skills/nextjs-api-development/SKILL.md +364 -0
  158. package/claude/skills/nextjs-api-development/scripts/generate-crud-tests.py +456 -0
  159. package/claude/skills/nextjs-api-development/scripts/scaffold-endpoint.py +481 -0
  160. package/claude/skills/nextjs-api-development/scripts/validate-api.py +283 -0
  161. package/claude/skills/notion-integration/SKILL.md +641 -0
  162. package/claude/skills/npm-development-workflow/SKILL.md +480 -0
  163. package/claude/skills/page-builder-blocks/SKILL.md +530 -0
  164. package/claude/skills/page-builder-blocks/scripts/scaffold-block.py +444 -0
  165. package/claude/skills/permissions-system/SKILL.md +619 -0
  166. package/claude/skills/plugins/SKILL.md +340 -0
  167. package/claude/skills/plugins/references/plugin-templates.md +414 -0
  168. package/claude/skills/plugins/references/plugin-testing.md +353 -0
  169. package/claude/skills/plugins/references/plugin-types.md +198 -0
  170. package/claude/skills/plugins/scripts/scaffold-plugin.py +443 -0
  171. package/claude/skills/pom-patterns/SKILL.md +452 -0
  172. package/claude/skills/pom-patterns/scripts/generate-pom.py +392 -0
  173. package/claude/skills/rate-limiting/SKILL.md +342 -0
  174. package/claude/skills/react-best-practices/AGENTS.md +2410 -0
  175. package/claude/skills/react-best-practices/README.md +123 -0
  176. package/claude/skills/react-best-practices/SKILL.md +125 -0
  177. package/claude/skills/react-best-practices/metadata.json +15 -0
  178. package/claude/skills/react-best-practices/rules/_sections.md +46 -0
  179. package/claude/skills/react-best-practices/rules/_template.md +28 -0
  180. package/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  181. package/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  182. package/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
  183. package/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
  184. package/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
  185. package/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
  186. package/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  187. package/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  188. package/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  189. package/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  190. package/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  191. package/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
  192. package/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  193. package/claude/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  194. package/claude/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  195. package/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  196. package/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  197. package/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  198. package/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  199. package/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  200. package/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  201. package/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
  202. package/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  203. package/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
  204. package/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  205. package/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  206. package/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  207. package/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  208. package/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
  209. package/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  210. package/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  211. package/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  212. package/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  213. package/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  214. package/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  215. package/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  216. package/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  217. package/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  218. package/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  219. package/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  220. package/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
  221. package/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  222. package/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  223. package/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  224. package/claude/skills/react-best-practices/rules/server-cache-react.md +76 -0
  225. package/claude/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  226. package/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
  227. package/claude/skills/react-patterns/SKILL.md +688 -0
  228. package/claude/skills/registry-system/SKILL.md +331 -0
  229. package/claude/skills/scheduled-actions/SKILL.md +671 -0
  230. package/claude/skills/scope-enforcement/SKILL.md +542 -0
  231. package/claude/skills/scope-enforcement/scripts/validate-scope.py +357 -0
  232. package/claude/skills/server-actions/SKILL.md +493 -0
  233. package/claude/skills/service-layer/SKILL.md +587 -0
  234. package/claude/skills/session-management/SKILL.md +266 -0
  235. package/claude/skills/session-management/scripts/create-session.py +166 -0
  236. package/claude/skills/session-management/scripts/iteration-close.sh +105 -0
  237. package/claude/skills/session-management/scripts/iteration-init.sh +180 -0
  238. package/claude/skills/session-management/scripts/session-archive.sh +87 -0
  239. package/claude/skills/session-management/scripts/session-close.sh +133 -0
  240. package/claude/skills/session-management/scripts/session-init.sh +225 -0
  241. package/claude/skills/session-management/scripts/session-list.sh +163 -0
  242. package/claude/skills/session-management/scripts/split-plan.sh +116 -0
  243. package/claude/skills/shadcn-components/SKILL.md +586 -0
  244. package/claude/skills/shadcn-theming/SKILL.md +446 -0
  245. package/claude/skills/suspense-loading/SKILL.md +280 -0
  246. package/claude/skills/tailwind-theming/SKILL.md +507 -0
  247. package/claude/skills/tanstack-query/SKILL.md +608 -0
  248. package/claude/skills/test-coverage/SKILL.md +239 -0
  249. package/claude/skills/web-design-guidelines/SKILL.md +39 -0
  250. package/claude/skills/zod-validation/SKILL.md +537 -0
  251. package/claude/templates/blocks/progress.md +86 -0
  252. package/claude/templates/iteration/changes.md +61 -0
  253. package/claude/templates/iteration/progress.md +55 -0
  254. package/claude/templates/log.md +31 -0
  255. package/claude/templates/story/context.md +77 -0
  256. package/claude/templates/story/pendings.md +37 -0
  257. package/claude/templates/story/plan.md +299 -0
  258. package/claude/templates/story/requirements.md +109 -0
  259. package/claude/templates/story/scope.json +10 -0
  260. package/claude/templates/story/tests.md +91 -0
  261. package/claude/templates/task/progress.md +58 -0
  262. package/claude/templates/task/requirements.md +54 -0
  263. package/claude/workflows/README.md +154 -0
  264. package/claude/workflows/blocks.md +614 -0
  265. package/claude/workflows/story.md +1207 -0
  266. package/claude/workflows/task.md +927 -0
  267. package/claude/workflows/tweak.md +527 -0
  268. package/cursor/.gitkeep +0 -0
  269. package/package.json +35 -0
  270. package/scripts/postinstall.mjs +198 -0
  271. package/scripts/setup.mjs +282 -0
  272. package/scripts/sync.mjs +209 -0
@@ -0,0 +1,627 @@
1
+ # /how-to:setup-mobile-dev
2
+
3
+ Interactive guide to set up your development environment for NextSpark Mobile (Android & iOS).
4
+
5
+ ---
6
+
7
+ ## Syntax
8
+
9
+ ```
10
+ /how-to:setup-mobile-dev
11
+ ```
12
+
13
+ ---
14
+
15
+ ## Behavior
16
+
17
+ Guides the user through setting up Android Studio, Xcode, environment variables, and understanding the difference between Expo Go and Development Builds.
18
+
19
+ ---
20
+
21
+ ## Tutorial Overview
22
+
23
+ ```
24
+ STEPS OVERVIEW (5 steps)
25
+
26
+ Step 1: Prerequisites & Environment Check
27
+ └── Node, pnpm, Expo CLI verification
28
+
29
+ Step 2: Android Development Setup
30
+ └── Android Studio, SDK, Emulator, Environment Variables
31
+
32
+ Step 3: iOS Development Setup (macOS only)
33
+ └── Xcode, CocoaPods, Simulator
34
+
35
+ Step 4: Understanding Expo Go vs Development Builds
36
+ └── Limitations, when to use each approach
37
+
38
+ Step 5: Running Your First Build
39
+ └── expo prebuild, expo run:android/ios
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Step 1: Prerequisites & Environment Check
45
+
46
+ ```
47
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
48
+ 📱 HOW TO: SETUP MOBILE DEVELOPMENT
49
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
50
+
51
+ STEP 1 OF 5: Prerequisites & Environment Check
52
+
53
+ Verify your system has the required tools installed.
54
+
55
+ ┌─────────────────────────────────────────────┐
56
+ │ PREREQUISITES CHECKLIST │
57
+ │ ───────────────────────────────────────── │
58
+ │ │
59
+ │ [ ] Node.js 18+ installed │
60
+ │ node --version │
61
+ │ │
62
+ │ [ ] pnpm installed │
63
+ │ pnpm --version │
64
+ │ │
65
+ │ [ ] Expo CLI available │
66
+ │ npx expo --version │
67
+ │ │
68
+ │ [ ] Git installed │
69
+ │ git --version │
70
+ │ │
71
+ └─────────────────────────────────────────────┘
72
+
73
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
74
+
75
+ 📋 Verify Prerequisites:
76
+
77
+ ```bash
78
+ # Check Node.js version (18+ required)
79
+ node --version
80
+ # v18.0.0 or higher
81
+
82
+ # Check pnpm
83
+ pnpm --version
84
+ # 8.0.0 or higher
85
+
86
+ # Check Expo CLI (will install if missing)
87
+ npx expo --version
88
+ ```
89
+
90
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91
+
92
+ 📋 Install Missing Prerequisites:
93
+
94
+ ```bash
95
+ # Install pnpm (if missing)
96
+ npm install -g pnpm
97
+
98
+ # Expo CLI is included via npx, no global install needed
99
+ ```
100
+
101
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Step 2: Android Development Setup
107
+
108
+ ```
109
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
110
+ 📱 HOW TO: SETUP MOBILE DEVELOPMENT
111
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
112
+
113
+ STEP 2 OF 5: Android Development Setup
114
+
115
+ Set up Android Studio and configure environment variables.
116
+
117
+ ┌─────────────────────────────────────────────┐
118
+ │ ANDROID SETUP CHECKLIST │
119
+ │ ───────────────────────────────────────── │
120
+ │ │
121
+ │ [ ] Install Android Studio │
122
+ │ [ ] Install Android SDK (API 34+) │
123
+ │ [ ] Create Android Virtual Device (AVD) │
124
+ │ [ ] Configure environment variables │
125
+ │ │
126
+ └─────────────────────────────────────────────┘
127
+
128
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
129
+
130
+ 📋 Step 2.1: Install Android Studio
131
+
132
+ 1. Download Android Studio from:
133
+ https://developer.android.com/studio
134
+
135
+ 2. Run the installer and follow the setup wizard
136
+
137
+ 3. During setup, ensure these are selected:
138
+ - Android SDK
139
+ - Android SDK Platform
140
+ - Android Virtual Device
141
+
142
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
143
+
144
+ 📋 Step 2.2: Install Android SDK
145
+
146
+ 1. Open Android Studio
147
+ 2. Go to: Settings/Preferences → Languages & Frameworks → Android SDK
148
+ 3. In "SDK Platforms" tab, select:
149
+ - Android 14 (API 34) or higher
150
+ 4. In "SDK Tools" tab, ensure these are installed:
151
+ - Android SDK Build-Tools
152
+ - Android SDK Command-line Tools
153
+ - Android Emulator
154
+ - Android SDK Platform-Tools
155
+
156
+ Click "Apply" to install selected components.
157
+
158
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
159
+
160
+ 📋 Step 2.3: Create Android Virtual Device (AVD)
161
+
162
+ 1. In Android Studio, go to: Tools → Device Manager
163
+ 2. Click "Create Device"
164
+ 3. Select a device (e.g., Pixel 7)
165
+ 4. Select a system image (API 34 recommended)
166
+ 5. Name your AVD and click "Finish"
167
+
168
+ To start the emulator:
169
+ - Click the play button next to your AVD in Device Manager
170
+ - Or use command line:
171
+ ```bash
172
+ emulator -avd <your-avd-name>
173
+ ```
174
+
175
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
176
+
177
+ 📋 Step 2.4: Configure Environment Variables
178
+
179
+ Add these to your shell configuration file (~/.zshrc or ~/.bashrc):
180
+
181
+ ```bash
182
+ # Java (bundled with Android Studio)
183
+ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
184
+
185
+ # Android SDK
186
+ export ANDROID_HOME="$HOME/Library/Android/sdk"
187
+
188
+ # Add tools to PATH
189
+ export PATH="$JAVA_HOME/bin:$PATH"
190
+ export PATH="$ANDROID_HOME/platform-tools:$PATH"
191
+ export PATH="$ANDROID_HOME/emulator:$PATH"
192
+ export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
193
+ ```
194
+
195
+ After editing, reload your shell:
196
+
197
+ ```bash
198
+ source ~/.zshrc
199
+ # or
200
+ source ~/.bashrc
201
+ ```
202
+
203
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
204
+
205
+ 📋 Verify Android Setup:
206
+
207
+ ```bash
208
+ # Check Java
209
+ java -version
210
+
211
+ # Check Android SDK
212
+ adb --version
213
+
214
+ # Check emulator
215
+ emulator -list-avds
216
+ ```
217
+
218
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
219
+ ```
220
+
221
+ ---
222
+
223
+ ## Step 3: iOS Development Setup (macOS only)
224
+
225
+ ```
226
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
227
+ 📱 HOW TO: SETUP MOBILE DEVELOPMENT
228
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
229
+
230
+ STEP 3 OF 5: iOS Development Setup (macOS only)
231
+
232
+ Set up Xcode and CocoaPods for iOS development.
233
+
234
+ ⚠️ iOS development requires macOS with Xcode installed.
235
+ Skip this step if you're on Windows or Linux.
236
+
237
+ ┌─────────────────────────────────────────────┐
238
+ │ iOS SETUP CHECKLIST │
239
+ │ ───────────────────────────────────────── │
240
+ │ │
241
+ │ [ ] Install Xcode from App Store │
242
+ │ [ ] Accept Xcode license │
243
+ │ [ ] Install Xcode Command Line Tools │
244
+ │ [ ] Install CocoaPods │
245
+ │ [ ] Configure iOS Simulator │
246
+ │ │
247
+ └─────────────────────────────────────────────┘
248
+
249
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
250
+
251
+ 📋 Step 3.1: Install Xcode
252
+
253
+ 1. Open the Mac App Store
254
+ 2. Search for "Xcode"
255
+ 3. Click "Get" / "Install" (requires Apple ID)
256
+ 4. Wait for download (15+ GB)
257
+
258
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
259
+
260
+ 📋 Step 3.2: Accept License & Install CLI Tools
261
+
262
+ ```bash
263
+ # Accept Xcode license
264
+ sudo xcodebuild -license accept
265
+
266
+ # Install command line tools
267
+ xcode-select --install
268
+ ```
269
+
270
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
271
+
272
+ 📋 Step 3.3: Install CocoaPods
273
+
274
+ CocoaPods is a dependency manager for iOS projects.
275
+
276
+ ```bash
277
+ # Install CocoaPods via Homebrew (recommended)
278
+ brew install cocoapods
279
+
280
+ # Or via RubyGems
281
+ sudo gem install cocoapods
282
+
283
+ # Verify installation
284
+ pod --version
285
+ ```
286
+
287
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
288
+
289
+ 📋 Step 3.4: Configure iOS Simulator
290
+
291
+ 1. Open Xcode
292
+ 2. Go to: Xcode → Settings → Platforms
293
+ 3. Download iOS Simulator runtime if not present
294
+ 4. To open Simulator manually:
295
+ ```bash
296
+ open -a Simulator
297
+ ```
298
+
299
+ Or use Xcode:
300
+ - Go to: Xcode → Open Developer Tool → Simulator
301
+
302
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
303
+
304
+ 📋 Verify iOS Setup:
305
+
306
+ ```bash
307
+ # Check Xcode version
308
+ xcodebuild -version
309
+
310
+ # Check CocoaPods
311
+ pod --version
312
+
313
+ # List available simulators
314
+ xcrun simctl list devices available
315
+ ```
316
+
317
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
318
+ ```
319
+
320
+ ---
321
+
322
+ ## Step 4: Understanding Expo Go vs Development Builds
323
+
324
+ ```
325
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
326
+ 📱 HOW TO: SETUP MOBILE DEVELOPMENT
327
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
328
+
329
+ STEP 4 OF 5: Understanding Expo Go vs Development Builds
330
+
331
+ Learn the difference and when to use each approach.
332
+
333
+ ⚠️ IMPORTANT: Expo Go Limitations
334
+
335
+ NextSpark mobile uses modern native modules
336
+ (react-native-reanimated, gesture-handler) that
337
+ may have version incompatibilities with Expo Go.
338
+
339
+ Common error you might see:
340
+
341
+ ┌─────────────────────────────────────────────┐
342
+ │ ERROR: │
343
+ │ "[Worklets] Mismatch between JavaScript │
344
+ │ part and native part of Reanimated" │
345
+ └─────────────────────────────────────────────┘
346
+
347
+ SOLUTION: Use Development Build instead of Expo Go
348
+
349
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
350
+
351
+ 📋 Comparison Table:
352
+
353
+ ┌─────────────────────────────────────────────────────────────────┐
354
+ │ Method │ Command │ Use Case │
355
+ │ ────────────────┼────────────────────────────┼──────────────── │
356
+ │ Expo Go │ npx expo start │ Quick prototype │
357
+ │ │ │ (may fail) │
358
+ │ ────────────────┼────────────────────────────┼──────────────── │
359
+ │ Dev Build │ npx expo prebuild && │ Real development│
360
+ │ (Android) │ npx expo run:android │ (recommended) │
361
+ │ ────────────────┼────────────────────────────┼──────────────── │
362
+ │ Dev Build │ npx expo prebuild && │ Real development│
363
+ │ (iOS) │ npx expo run:ios │ (recommended) │
364
+ └─────────────────────────────────────────────────────────────────┘
365
+
366
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
367
+
368
+ 📋 When to Use Each:
369
+
370
+ EXPO GO:
371
+ ✓ Quick UI previews
372
+ ✓ Simple apps without native modules
373
+ ✗ May fail with native module mismatches
374
+ ✗ Cannot use custom native code
375
+
376
+ DEVELOPMENT BUILD:
377
+ ✓ Full native module support
378
+ ✓ Custom native code possible
379
+ ✓ Matches production behavior
380
+ ✓ Recommended for NextSpark Mobile
381
+
382
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
383
+
384
+ 📋 What is "expo prebuild"?
385
+
386
+ The `expo prebuild` command generates native
387
+ iOS and Android project folders:
388
+
389
+ ```
390
+ mobile/
391
+ ├── android/ ← Generated Android project
392
+ ├── ios/ ← Generated iOS project
393
+ ├── app/ ← Your Expo Router screens
394
+ ├── src/ ← Your source code
395
+ └── app.config.ts
396
+ ```
397
+
398
+ This allows you to build and run the app using
399
+ native tooling (Android Studio / Xcode) while
400
+ keeping the Expo development experience.
401
+
402
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
403
+ ```
404
+
405
+ ---
406
+
407
+ ## Step 5: Running Your First Build
408
+
409
+ ```
410
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
411
+ 📱 HOW TO: SETUP MOBILE DEVELOPMENT
412
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
413
+
414
+ STEP 5 OF 5: Running Your First Build
415
+
416
+ Build and run the app on your emulator/simulator.
417
+
418
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
419
+
420
+ 📋 Step 5.1: Navigate to Mobile Directory
421
+
422
+ ```bash
423
+ cd mobile
424
+ ```
425
+
426
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
427
+
428
+ 📋 Step 5.2: Install Dependencies
429
+
430
+ ```bash
431
+ pnpm install
432
+ ```
433
+
434
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
435
+
436
+ 📋 Step 5.3: Build for Android
437
+
438
+ ```bash
439
+ # Generate native Android project
440
+ npx expo prebuild --platform android
441
+
442
+ # Build and run on emulator/device
443
+ npx expo run:android
444
+ ```
445
+
446
+ First build may take several minutes as it
447
+ downloads Gradle dependencies.
448
+
449
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
450
+
451
+ 📋 Step 5.4: Build for iOS (macOS only)
452
+
453
+ ```bash
454
+ # Generate native iOS project
455
+ npx expo prebuild --platform ios
456
+
457
+ # Install CocoaPods dependencies
458
+ cd ios && pod install && cd ..
459
+
460
+ # Build and run on simulator
461
+ npx expo run:ios
462
+ ```
463
+
464
+ First build may take several minutes.
465
+
466
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
467
+
468
+ 📋 Full Build Commands (Both Platforms):
469
+
470
+ ```bash
471
+ # Clean previous builds (optional)
472
+ npx expo prebuild --clean
473
+
474
+ # Android
475
+ npx expo prebuild --platform android
476
+ npx expo run:android
477
+
478
+ # iOS
479
+ npx expo prebuild --platform ios
480
+ npx expo run:ios
481
+ ```
482
+
483
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
484
+
485
+ 📋 Configure API Connection:
486
+
487
+ For the mobile app to connect to your NextSpark
488
+ web backend, configure the API URL:
489
+
490
+ 1. In development, Expo auto-detects the dev server
491
+
492
+ 2. For production, set in your app.config.ts or
493
+ use EAS environment variables:
494
+
495
+ ```bash
496
+ # Example: Set production API URL
497
+ EXPO_PUBLIC_API_URL=https://your-app.com
498
+ ```
499
+
500
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
501
+
502
+ 📋 Troubleshooting:
503
+
504
+ ANDROID:
505
+ • "No Java compiler found" / JAVA_HOME not set
506
+ → This is the #1 cause of Android build failure
507
+ → JAVA_HOME MUST be set before running expo run:android
508
+ → Run: echo $JAVA_HOME
509
+ → Fix: Add to ~/.zshrc:
510
+ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
511
+ → Then: source ~/.zshrc
512
+
513
+ • "SDK location not found"
514
+ → Verify ANDROID_HOME is set correctly
515
+ → Run: echo $ANDROID_HOME
516
+
517
+ • "No emulators found"
518
+ → Create AVD in Android Studio Device Manager
519
+ → Or connect physical device with USB debugging
520
+
521
+ • Login/API calls fail on Android emulator
522
+ → Android emulator uses a virtual network where
523
+ "localhost" points to the emulator itself, NOT your Mac
524
+ → The api.config.ts auto-detects your host IP via
525
+ Expo's hostUri, so this should work automatically
526
+ → If using EXPO_PUBLIC_API_URL in .env, use your
527
+ local IP (e.g., http://192.168.x.x:3000)
528
+ NOT http://localhost:3000
529
+ → Alternative: http://10.0.2.2:3000 (Android emulator
530
+ special alias for host machine)
531
+
532
+ iOS:
533
+ • "CocoaPods not installed"
534
+ → Run: brew install cocoapods
535
+
536
+ • "Xcode not found"
537
+ → Run: xcode-select --install
538
+
539
+ • "Simulator not available"
540
+ → Open Xcode, download iOS runtime from Settings
541
+
542
+ NETWORKING NOTE:
543
+ iOS Simulator shares the Mac's network stack,
544
+ so "localhost" works. Android Emulator does NOT.
545
+ The api.config.ts handles this automatically via
546
+ Expo's hostUri (uses your real network IP).
547
+
548
+ BOTH:
549
+ • "Worklets mismatch"
550
+ → Don't use Expo Go, use Development Build
551
+ → Run: npx expo prebuild --clean
552
+
553
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
554
+
555
+ 🎉 SUCCESS!
556
+
557
+ Your mobile development environment is ready.
558
+ You can now build and run NextSpark Mobile.
559
+
560
+ Next steps:
561
+ • Explore the app/ directory for screens
562
+ • Customize src/config/app.config.ts
563
+ • Connect to your NextSpark web backend
564
+
565
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
566
+ ```
567
+
568
+ ---
569
+
570
+ ## Quick Reference
571
+
572
+ ### Environment Variables Template (macOS)
573
+
574
+ Add to `~/.zshrc`:
575
+
576
+ ```bash
577
+ # Java (Android Studio bundled JDK)
578
+ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
579
+
580
+ # Android SDK
581
+ export ANDROID_HOME="$HOME/Library/Android/sdk"
582
+
583
+ # Add to PATH
584
+ export PATH="$JAVA_HOME/bin:$PATH"
585
+ export PATH="$ANDROID_HOME/platform-tools:$PATH"
586
+ export PATH="$ANDROID_HOME/emulator:$PATH"
587
+ export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
588
+ ```
589
+
590
+ ### Essential Commands
591
+
592
+ ```bash
593
+ # Android build
594
+ cd mobile
595
+ npx expo prebuild --platform android
596
+ npx expo run:android
597
+
598
+ # iOS build (macOS only)
599
+ cd mobile
600
+ npx expo prebuild --platform ios
601
+ npx expo run:ios
602
+
603
+ # Clean rebuild
604
+ npx expo prebuild --clean
605
+
606
+ # Start Metro bundler only
607
+ npx expo start --dev-client
608
+ ```
609
+
610
+ ### Common Issues
611
+
612
+ | Issue | Solution |
613
+ |-------|----------|
614
+ | No Java compiler found | Set `JAVA_HOME` to Android Studio JBR (see env vars above) |
615
+ | Worklets mismatch | Use Development Build, not Expo Go |
616
+ | SDK not found | Check `ANDROID_HOME` environment variable |
617
+ | Android login/API fails | Use local IP in `.env`, not `localhost` (Android emulator network) |
618
+ | CocoaPods error | Run `brew install cocoapods` |
619
+ | Build fails | Run `npx expo prebuild --clean` |
620
+
621
+ ---
622
+
623
+ ## Related Commands
624
+
625
+ - `/how-to:start` - Get started with NextSpark
626
+ - `/how-to:deploy` - Deploy to production
627
+ - `/how-to:customize-app` - Customize your application