@haposoft/cafekit 0.16.0-rc.7 → 0.16.0

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 (299) hide show
  1. package/README.md +116 -27
  2. package/bin/__tests__/codex-hooks-ownership.test.js +239 -0
  3. package/bin/__tests__/codex-hooks.test.js +295 -0
  4. package/bin/__tests__/codex-native.test.js +2289 -34
  5. package/bin/__tests__/develop-contract.test.js +400 -23
  6. package/bin/__tests__/installer-safety.test.js +3 -3
  7. package/bin/__tests__/optional-skill-inventory.test.js +249 -0
  8. package/bin/__tests__/output-styles.test.js +214 -0
  9. package/bin/__tests__/package-inventory.test.js +2131 -16
  10. package/bin/__tests__/runtime-schema.test.js +111 -0
  11. package/bin/__tests__/secret-output-guardrail.test.js +122 -0
  12. package/bin/__tests__/skill-routing-source.test.js +172 -0
  13. package/bin/__tests__/specs-v2-execution-closeout.test.js +1 -1
  14. package/bin/install.js +10 -0
  15. package/bin/lib/codex-install.js +170 -5
  16. package/bin/lib/context.js +14 -0
  17. package/bin/lib/i18n.js +12 -6
  18. package/bin/lib/skill-deps.js +5 -5
  19. package/bin/phases/claude-runtime.js +23 -0
  20. package/bin/phases/claude-settings.js +8 -0
  21. package/bin/phases/codex-hooks.js +156 -0
  22. package/bin/phases/codex-runtime.js +29 -38
  23. package/bin/phases/copy-payload.js +8 -2
  24. package/bin/phases/select-skill-bundles.js +96 -0
  25. package/bin/phases/skill-inventory.js +71 -0
  26. package/bin/phases/skills-setup.js +9 -2
  27. package/bin/phases/write-metadata.js +8 -5
  28. package/package.json +8 -2
  29. package/src/claude/CLAUDE.md +3 -3
  30. package/src/claude/agents/brainstormer.md +52 -69
  31. package/src/claude/agents/code-auditor.md +32 -14
  32. package/src/claude/agents/debugger.md +35 -20
  33. package/src/claude/agents/deployer.md +12 -5
  34. package/src/claude/agents/docs-keeper.md +11 -1
  35. package/src/claude/agents/implementer.md +25 -13
  36. package/src/claude/agents/inspector.md +6 -3
  37. package/src/claude/agents/project-manager.md +1 -1
  38. package/src/claude/agents/researcher.md +26 -55
  39. package/src/claude/agents/spec-maker.md +24 -13
  40. package/src/claude/agents/strategist.md +52 -0
  41. package/src/claude/agents/test-runner.md +117 -132
  42. package/src/claude/agents/ui-ux-designer.md +1 -1
  43. package/src/claude/hooks/__tests__/fixtures/statusline-default.golden +1 -0
  44. package/src/claude/hooks/__tests__/precompact.test.js +158 -0
  45. package/src/claude/hooks/__tests__/spec-gate.test.js +87 -4
  46. package/src/claude/hooks/__tests__/state.test.js +254 -3
  47. package/src/claude/hooks/__tests__/statusline.test.js +196 -0
  48. package/src/claude/hooks/agent.cjs +1 -1
  49. package/src/claude/hooks/docs-sync.cjs +12 -10
  50. package/src/claude/hooks/inspect-block.cjs +1 -1
  51. package/src/claude/hooks/lib/config.cjs +3 -0
  52. package/src/claude/hooks/lib/hook-state-dir.cjs +39 -0
  53. package/src/claude/hooks/lib/secret-keywords.cjs +42 -0
  54. package/src/claude/hooks/precompact.cjs +105 -0
  55. package/src/claude/hooks/rules.cjs +1 -1
  56. package/src/claude/hooks/secret-output-guardrail.cjs +43 -0
  57. package/src/claude/hooks/session.cjs +27 -1
  58. package/src/claude/hooks/spec-gate.cjs +3 -3
  59. package/src/claude/hooks/spec-state.cjs +32 -5
  60. package/src/claude/hooks/state.cjs +1 -1
  61. package/src/claude/hooks/task-scaffold-guard.cjs +1 -1
  62. package/src/claude/hooks/usage.cjs +1 -1
  63. package/src/claude/migration-manifest.json +29 -15
  64. package/src/claude/output-styles/coding-level-0-eli5.md +103 -0
  65. package/src/claude/output-styles/coding-level-1-junior.md +124 -0
  66. package/src/claude/output-styles/coding-level-2-mid.md +146 -0
  67. package/src/claude/output-styles/coding-level-3-senior.md +148 -0
  68. package/src/claude/output-styles/coding-level-4-lead.md +159 -0
  69. package/src/claude/output-styles/coding-level-5-god.md +91 -0
  70. package/src/claude/references/debugger/core-philosophy.md +5 -3
  71. package/src/claude/references/debugger/frontend-verification.md +2 -2
  72. package/src/claude/references/debugger/log-ci-analysis.md +13 -1
  73. package/src/claude/references/debugger/parallel-agent-hydration.md +19 -34
  74. package/src/claude/references/debugger/performance-diagnostics.md +2 -2
  75. package/src/claude/references/debugger/root-cause-tracing.md +37 -6
  76. package/src/claude/references/debugger/side-effect-gate.md +3 -1
  77. package/src/claude/references/debugger/verification-protocol.md +13 -12
  78. package/src/claude/rules/orchestrator.md +7 -1
  79. package/src/claude/rules/process-management.md +39 -0
  80. package/src/claude/rules/review-audit-self-decision.md +48 -0
  81. package/src/claude/rules/skill-domain-routing.md +26 -24
  82. package/src/claude/rules/skill-workflow-routing.md +22 -14
  83. package/src/claude/rules/workflow.md +3 -3
  84. package/src/claude/runtime.json +1 -0
  85. package/src/claude/runtime.schema.json +205 -0
  86. package/src/claude/scripts/generate-skill-catalog.cjs +156 -122
  87. package/src/claude/scripts/provenance.cjs +18 -5
  88. package/src/claude/scripts/spec-receipt.cjs +76 -21
  89. package/src/claude/scripts/spec-resolver.cjs +144 -4
  90. package/src/claude/scripts/workflow-policy.cjs +1 -1
  91. package/src/claude/settings/settings.json +16 -0
  92. package/src/claude/skills/agent-browser/SKILL.md +1 -1
  93. package/src/claude/skills/ai-multimodal/SKILL.md +1 -1
  94. package/src/claude/skills/brainstorm/SKILL.md +193 -172
  95. package/src/claude/skills/brainstorm/references/question-framework.md +105 -167
  96. package/src/claude/skills/chrome-devtools/SKILL.md +1 -1
  97. package/src/claude/skills/code-review/SKILL.md +43 -25
  98. package/src/claude/skills/code-review/references/spec-compliance-review.md +3 -4
  99. package/src/claude/skills/code-review/references/verification-gate.md +1 -1
  100. package/src/claude/skills/debug/SKILL.md +48 -19
  101. package/src/claude/skills/delegate/SKILL.md +1 -1
  102. package/src/claude/skills/develop/SKILL.md +92 -65
  103. package/src/claude/skills/develop/references/parallel-waves.md +36 -63
  104. package/src/claude/skills/develop/references/quality-gate.md +31 -4
  105. package/src/claude/skills/develop/references/subagent-patterns.md +21 -7
  106. package/src/claude/skills/docs/SKILL.md +42 -23
  107. package/src/claude/skills/docs/references/init-workflow.md +4 -4
  108. package/src/claude/skills/docs/references/reconstruct-workflow.md +6 -6
  109. package/src/claude/skills/docs/references/standard-docs-workflow.md +6 -2
  110. package/src/claude/skills/docs/references/summarize-workflow.md +2 -2
  111. package/src/claude/skills/docs/references/update-workflow.md +9 -7
  112. package/src/claude/skills/docs/templates/requirements-as-is.md +1 -1
  113. package/src/claude/skills/docx/SKILL.md +1 -1
  114. package/src/claude/skills/git/SKILL.md +1 -1
  115. package/src/claude/skills/git/references/commit-protocols.md +1 -1
  116. package/src/claude/skills/git/references/finish-branch.md +1 -1
  117. package/src/claude/skills/hotfix/SKILL.md +159 -170
  118. package/src/claude/skills/hotfix/references/diagnosis-protocol.md +14 -9
  119. package/src/claude/skills/hotfix/references/parallel-patterns.md +27 -13
  120. package/src/claude/skills/hotfix/references/prevention-gate.md +5 -0
  121. package/src/claude/skills/hotfix/references/review-cycle.md +21 -15
  122. package/src/claude/skills/hotfix/references/workflow-specialized.md +53 -21
  123. package/src/claude/skills/inspect/SKILL.md +55 -46
  124. package/src/claude/skills/inspect/references/internal-inspection.md +21 -5
  125. package/src/claude/skills/loop/SKILL.md +114 -0
  126. package/src/claude/skills/loop/references/bounded-loop-protocol.md +104 -0
  127. package/src/claude/skills/loop/references/metric-and-guard-contract.md +76 -0
  128. package/src/claude/skills/pdf/SKILL.md +1 -1
  129. package/src/claude/skills/pptx/SKILL.md +1 -1
  130. package/src/claude/skills/question/SKILL.md +16 -13
  131. package/src/claude/skills/research/SKILL.md +70 -43
  132. package/src/claude/skills/route/SKILL.md +94 -0
  133. package/src/claude/skills/route/references/agent-timing.md +46 -0
  134. package/src/claude/skills/route/references/chaining-patterns.md +53 -0
  135. package/src/claude/skills/route/references/task-taxonomy.md +48 -0
  136. package/src/claude/skills/specs/SKILL.md +48 -57
  137. package/src/claude/skills/specs/references/review.md +26 -8
  138. package/src/claude/skills/specs/references/templates.md +76 -31
  139. package/src/claude/skills/specs/templates/requirements-init.md +1 -1
  140. package/src/claude/skills/specs/templates/research.md +2 -2
  141. package/src/claude/skills/sync/SKILL.md +6 -6
  142. package/src/claude/skills/sync/references/sync-protocols.md +1 -1
  143. package/src/claude/skills/test/SKILL.md +120 -120
  144. package/src/claude/skills/test/references/execution-strategy.md +208 -361
  145. package/src/claude/skills/test/references/failure-triage.md +55 -121
  146. package/src/claude/skills/test/references/test-memory.md +20 -34
  147. package/src/claude/skills/ui-ux-pro-max/SKILL.md +1 -1
  148. package/src/claude/skills/web-testing/SKILL.md +1 -1
  149. package/src/claude/skills/xlsx/SKILL.md +1 -1
  150. package/src/claude/status.cjs +135 -33
  151. package/src/codex/AGENTS.md +14 -4
  152. package/src/codex/hooks/docs-sync.cjs +8 -3
  153. package/src/codex/hooks/lib/hook-context.cjs +18 -4
  154. package/src/codex/hooks/rules.cjs +29 -1
  155. package/src/codex/hooks/secret-output-guardrail.cjs +30 -0
  156. package/src/codex/hooks/spec-gate.cjs +3 -8
  157. package/src/codex/hooks/spec-state.cjs +34 -5
  158. package/src/codex/hooks.json +5 -0
  159. package/src/codex/runtime.json +2 -0
  160. package/src/common/.env.example +1 -1
  161. package/src/claude/skills/backend-development/SKILL.md +0 -101
  162. package/src/claude/skills/backend-development/references/backend-api-design.md +0 -495
  163. package/src/claude/skills/backend-development/references/backend-architecture.md +0 -454
  164. package/src/claude/skills/backend-development/references/backend-authentication.md +0 -338
  165. package/src/claude/skills/backend-development/references/backend-code-quality.md +0 -659
  166. package/src/claude/skills/backend-development/references/backend-debugging.md +0 -904
  167. package/src/claude/skills/backend-development/references/backend-devops.md +0 -491
  168. package/src/claude/skills/backend-development/references/backend-mindset.md +0 -387
  169. package/src/claude/skills/backend-development/references/backend-performance.md +0 -397
  170. package/src/claude/skills/backend-development/references/backend-security.md +0 -342
  171. package/src/claude/skills/backend-development/references/backend-technologies.md +0 -256
  172. package/src/claude/skills/backend-development/references/backend-testing.md +0 -429
  173. package/src/claude/skills/devops/.env.example +0 -76
  174. package/src/claude/skills/devops/SKILL.md +0 -102
  175. package/src/claude/skills/devops/references/browser-rendering.md +0 -305
  176. package/src/claude/skills/devops/references/cloudflare-d1-kv.md +0 -123
  177. package/src/claude/skills/devops/references/cloudflare-platform.md +0 -271
  178. package/src/claude/skills/devops/references/cloudflare-r2-storage.md +0 -280
  179. package/src/claude/skills/devops/references/cloudflare-workers-advanced.md +0 -312
  180. package/src/claude/skills/devops/references/cloudflare-workers-apis.md +0 -309
  181. package/src/claude/skills/devops/references/cloudflare-workers-basics.md +0 -418
  182. package/src/claude/skills/devops/references/docker-basics.md +0 -297
  183. package/src/claude/skills/devops/references/docker-compose.md +0 -292
  184. package/src/claude/skills/devops/references/gcloud-platform.md +0 -297
  185. package/src/claude/skills/devops/references/gcloud-services.md +0 -304
  186. package/src/claude/skills/devops/references/kubernetes-basics.md +0 -95
  187. package/src/claude/skills/devops/references/kubernetes-helm-advanced.md +0 -70
  188. package/src/claude/skills/devops/references/kubernetes-helm.md +0 -81
  189. package/src/claude/skills/devops/references/kubernetes-kubectl.md +0 -74
  190. package/src/claude/skills/devops/references/kubernetes-security-advanced.md +0 -94
  191. package/src/claude/skills/devops/references/kubernetes-security.md +0 -89
  192. package/src/claude/skills/devops/references/kubernetes-troubleshooting-advanced.md +0 -74
  193. package/src/claude/skills/devops/references/kubernetes-troubleshooting.md +0 -49
  194. package/src/claude/skills/devops/references/kubernetes-workflows-advanced.md +0 -75
  195. package/src/claude/skills/devops/references/kubernetes-workflows.md +0 -76
  196. package/src/claude/skills/devops/scripts/cloudflare_deploy.py +0 -269
  197. package/src/claude/skills/devops/scripts/docker_optimize.py +0 -332
  198. package/src/claude/skills/devops/scripts/requirements.txt +0 -20
  199. package/src/claude/skills/devops/scripts/tests/requirements.txt +0 -3
  200. package/src/claude/skills/devops/scripts/tests/test_cloudflare_deploy.py +0 -285
  201. package/src/claude/skills/devops/scripts/tests/test_docker_optimize.py +0 -436
  202. package/src/claude/skills/frontend-design/SKILL.md +0 -135
  203. package/src/claude/skills/frontend-design/references/ai-multimodal-overview.md +0 -165
  204. package/src/claude/skills/frontend-design/references/analysis-best-practices.md +0 -80
  205. package/src/claude/skills/frontend-design/references/analysis-prompts.md +0 -141
  206. package/src/claude/skills/frontend-design/references/analysis-techniques.md +0 -118
  207. package/src/claude/skills/frontend-design/references/animejs.md +0 -396
  208. package/src/claude/skills/frontend-design/references/anti-slop-rules.md +0 -103
  209. package/src/claude/skills/frontend-design/references/asset-generation.md +0 -337
  210. package/src/claude/skills/frontend-design/references/bento-motion-engine.md +0 -142
  211. package/src/claude/skills/frontend-design/references/design-extraction-overview.md +0 -71
  212. package/src/claude/skills/frontend-design/references/extraction-best-practices.md +0 -141
  213. package/src/claude/skills/frontend-design/references/extraction-output-templates.md +0 -162
  214. package/src/claude/skills/frontend-design/references/extraction-prompts.md +0 -127
  215. package/src/claude/skills/frontend-design/references/magicui-components.md +0 -129
  216. package/src/claude/skills/frontend-design/references/performance-guardrails.md +0 -169
  217. package/src/claude/skills/frontend-design/references/premium-design-patterns.md +0 -93
  218. package/src/claude/skills/frontend-design/references/redesign-audit-checklist.md +0 -114
  219. package/src/claude/skills/frontend-design/references/technical-accessibility.md +0 -119
  220. package/src/claude/skills/frontend-design/references/technical-best-practices.md +0 -97
  221. package/src/claude/skills/frontend-design/references/technical-optimization.md +0 -44
  222. package/src/claude/skills/frontend-design/references/technical-overview.md +0 -90
  223. package/src/claude/skills/frontend-design/references/technical-workflows.md +0 -150
  224. package/src/claude/skills/frontend-design/references/visual-analysis-overview.md +0 -95
  225. package/src/claude/skills/frontend-design/references/workflow-3d.md +0 -102
  226. package/src/claude/skills/frontend-design/references/workflow-describe.md +0 -87
  227. package/src/claude/skills/frontend-design/references/workflow-immersive.md +0 -87
  228. package/src/claude/skills/frontend-design/references/workflow-quick.md +0 -57
  229. package/src/claude/skills/frontend-design/references/workflow-screenshot.md +0 -63
  230. package/src/claude/skills/frontend-design/references/workflow-video.md +0 -74
  231. package/src/claude/skills/frontend-development/SKILL.md +0 -406
  232. package/src/claude/skills/frontend-development/resources/common-patterns.md +0 -331
  233. package/src/claude/skills/frontend-development/resources/complete-examples.md +0 -872
  234. package/src/claude/skills/frontend-development/resources/component-patterns.md +0 -502
  235. package/src/claude/skills/frontend-development/resources/data-fetching.md +0 -767
  236. package/src/claude/skills/frontend-development/resources/file-organization.md +0 -502
  237. package/src/claude/skills/frontend-development/resources/loading-and-error-states.md +0 -501
  238. package/src/claude/skills/frontend-development/resources/performance.md +0 -406
  239. package/src/claude/skills/frontend-development/resources/routing-guide.md +0 -364
  240. package/src/claude/skills/frontend-development/resources/styling-guide.md +0 -428
  241. package/src/claude/skills/frontend-development/resources/typescript-standards.md +0 -418
  242. package/src/claude/skills/mobile-development/SKILL.md +0 -218
  243. package/src/claude/skills/mobile-development/references/mobile-android.md +0 -604
  244. package/src/claude/skills/mobile-development/references/mobile-best-practices.md +0 -544
  245. package/src/claude/skills/mobile-development/references/mobile-debugging.md +0 -1089
  246. package/src/claude/skills/mobile-development/references/mobile-frameworks.md +0 -465
  247. package/src/claude/skills/mobile-development/references/mobile-ios.md +0 -496
  248. package/src/claude/skills/mobile-development/references/mobile-mindset.md +0 -542
  249. package/src/claude/skills/react-best-practices/AGENTS.md +0 -2249
  250. package/src/claude/skills/react-best-practices/README.md +0 -123
  251. package/src/claude/skills/react-best-practices/SKILL.md +0 -128
  252. package/src/claude/skills/react-best-practices/metadata.json +0 -15
  253. package/src/claude/skills/react-best-practices/rules/_sections.md +0 -46
  254. package/src/claude/skills/react-best-practices/rules/_template.md +0 -28
  255. package/src/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  256. package/src/claude/skills/react-best-practices/rules/advanced-use-latest.md +0 -49
  257. package/src/claude/skills/react-best-practices/rules/async-api-routes.md +0 -38
  258. package/src/claude/skills/react-best-practices/rules/async-defer-await.md +0 -80
  259. package/src/claude/skills/react-best-practices/rules/async-dependencies.md +0 -36
  260. package/src/claude/skills/react-best-practices/rules/async-parallel.md +0 -28
  261. package/src/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +0 -99
  262. package/src/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +0 -59
  263. package/src/claude/skills/react-best-practices/rules/bundle-conditional.md +0 -31
  264. package/src/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +0 -49
  265. package/src/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  266. package/src/claude/skills/react-best-practices/rules/bundle-preload.md +0 -50
  267. package/src/claude/skills/react-best-practices/rules/client-event-listeners.md +0 -74
  268. package/src/claude/skills/react-best-practices/rules/client-swr-dedup.md +0 -56
  269. package/src/claude/skills/react-best-practices/rules/js-batch-dom-css.md +0 -82
  270. package/src/claude/skills/react-best-practices/rules/js-cache-function-results.md +0 -80
  271. package/src/claude/skills/react-best-practices/rules/js-cache-property-access.md +0 -28
  272. package/src/claude/skills/react-best-practices/rules/js-cache-storage.md +0 -70
  273. package/src/claude/skills/react-best-practices/rules/js-combine-iterations.md +0 -32
  274. package/src/claude/skills/react-best-practices/rules/js-early-exit.md +0 -50
  275. package/src/claude/skills/react-best-practices/rules/js-hoist-regexp.md +0 -45
  276. package/src/claude/skills/react-best-practices/rules/js-index-maps.md +0 -37
  277. package/src/claude/skills/react-best-practices/rules/js-length-check-first.md +0 -49
  278. package/src/claude/skills/react-best-practices/rules/js-min-max-loop.md +0 -82
  279. package/src/claude/skills/react-best-practices/rules/js-set-map-lookups.md +0 -24
  280. package/src/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +0 -57
  281. package/src/claude/skills/react-best-practices/rules/rendering-activity.md +0 -26
  282. package/src/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  283. package/src/claude/skills/react-best-practices/rules/rendering-conditional-render.md +0 -40
  284. package/src/claude/skills/react-best-practices/rules/rendering-content-visibility.md +0 -38
  285. package/src/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  286. package/src/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  287. package/src/claude/skills/react-best-practices/rules/rendering-svg-precision.md +0 -28
  288. package/src/claude/skills/react-best-practices/rules/rerender-defer-reads.md +0 -39
  289. package/src/claude/skills/react-best-practices/rules/rerender-dependencies.md +0 -45
  290. package/src/claude/skills/react-best-practices/rules/rerender-derived-state.md +0 -29
  291. package/src/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +0 -74
  292. package/src/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  293. package/src/claude/skills/react-best-practices/rules/rerender-memo.md +0 -44
  294. package/src/claude/skills/react-best-practices/rules/rerender-transitions.md +0 -40
  295. package/src/claude/skills/react-best-practices/rules/server-after-nonblocking.md +0 -73
  296. package/src/claude/skills/react-best-practices/rules/server-cache-lru.md +0 -41
  297. package/src/claude/skills/react-best-practices/rules/server-cache-react.md +0 -26
  298. package/src/claude/skills/react-best-practices/rules/server-parallel-fetching.md +0 -79
  299. package/src/claude/skills/react-best-practices/rules/server-serialization.md +0 -38
@@ -1,542 +0,0 @@
1
- # Mobile Development Mindset & Thinking Patterns
2
-
3
- Essential thinking patterns and decision-making frameworks for successful mobile development.
4
-
5
- ## The 10 Commandments of Mobile Development
6
-
7
- ### 1. Performance is Foundation, Not Feature
8
- - **Reality**: Users may abandon apps when load time exceeds 3s
9
- - **Mindset**: Optimize from day one, not "later"
10
- - **Action**: Set performance budgets before writing code
11
-
12
- ### 2. Every Kilobyte, Every Millisecond Matters
13
- - **Reality**: Mobile = constrained environment (battery, memory, network)
14
- - **Mindset**: Desktop assumptions don't apply
15
- - **Action**: Profile real devices, not simulators
16
-
17
- ### 3. Offline-First by Default
18
- - **Reality**: Network is unreliable (elevators, tunnels, airplanes, poor signal)
19
- - **Mindset**: Design for offline, sync when online
20
- - **Action**: Local persistence first, cloud sync second
21
-
22
- ### 4. User Context > Developer Environment
23
- - **Reality**: Users on trains, walking, one-handed, bright sunlight
24
- - **Mindset**: Test in real-world scenarios
25
- - **Action**: Real device testing mandatory
26
-
27
- ### 5. Platform Awareness Without Platform Lock-In
28
- - **Reality**: iOS and Android users expect different patterns
29
- - **Mindset**: Respect conventions, but keep logic portable
30
- - **Action**: Platform-specific UI, shared business logic
31
-
32
- ### 6. Iterate, Don't Perfect (2024-2025 Survival Strategy)
33
- - **Reality**: Mobile landscape changes rapidly
34
- - **Mindset**: Ship, measure, improve cycle
35
- - **Action**: MVP → User feedback → Iterate
36
-
37
- ### 7. Security and Accessibility by Design
38
- - **Reality**: Not afterthoughts, but core requirements
39
- - **Mindset**: Build trust and inclusivity from start
40
- - **Action**: Security audit + accessibility testing in every sprint
41
-
42
- ### 8. Test on Real Devices
43
- - **Reality**: Simulators lie about performance, battery, network
44
- - **Mindset**: Simulators for speed, devices for truth
45
- - **Action**: CI/CD with real device farms
46
-
47
- ### 9. Architecture Scales with Complexity
48
- - **Reality**: Over-engineering kills simple apps
49
- - **Mindset**: Start simple, refactor when needed
50
- - **Action**: MVVM for small apps, Clean Architecture when complexity demands
51
-
52
- ### 10. Continuous Learning is Survival
53
- - **Reality**: AI tools are widely used by developers (2024), frameworks evolve constantly
54
- - **Mindset**: Embrace change, allocate learning time
55
- - **Action**: 1+ hour weekly for new tech/patterns
56
-
57
- ## Mobile-Specific Constraints & Thinking
58
-
59
- ### Small Screens (Constraint → Design Parameter)
60
-
61
- **Constraint:**
62
- - 5-7 inch screens, thumb-reach zones, fat finger problem
63
-
64
- **Thinking Shift:**
65
- - Embrace minimalism: "What can we remove?"
66
- - Priority-based hierarchy: Most important action front and center
67
- - Progressive disclosure: Hide complexity behind layers
68
-
69
- **Practical Targets:**
70
- - 44x44px minimum touch targets (iOS)
71
- - 48x48px minimum touch targets (Android)
72
- - Primary actions within thumb reach (bottom 1/3)
73
- - Maximum 3-4 items in bottom navigation
74
-
75
- **Example Decision:**
76
- ```
77
- ❌ Bad: 8-column data table on mobile
78
- ✅ Good: Card view with 3 key metrics, "View more" for details
79
- ```
80
-
81
- ### Limited Resources (Every KB/ms Matters)
82
-
83
- **Constraint:**
84
- - Battery drain, memory pressure, thermal throttling
85
-
86
- **Thinking Shift:**
87
- - Resource consciousness in every decision
88
- - Measure before optimizing (don't guess)
89
- - Graceful degradation on low-end devices
90
-
91
- **Practical Targets:**
92
- - <100MB memory for typical screens
93
- - <5% battery drain per hour active use
94
- - <50MB initial download, <200MB total
95
- - 60 FPS (16.67ms per frame)
96
-
97
- **Example Decision:**
98
- ```
99
- ❌ Bad: Load all 1000 items in list
100
- ✅ Good: Virtualized list (10 items visible + buffer)
101
- ```
102
-
103
- ### Intermittent Connectivity (Offline-First)
104
-
105
- **Constraint:**
106
- - Network unreliable: elevators, tunnels, poor signal, airplane mode
107
-
108
- **Thinking Shift:**
109
- - Local-first data architecture
110
- - Optimistic UI updates
111
- - Sync conflict resolution strategy
112
-
113
- **Practical Approaches:**
114
- - **Write-through cache**: Write local, sync background
115
- - **Hybrid sync**: Push (realtime) + Pull (periodic)
116
- - **Conflict resolution**: Last-write-wins with timestamps or CRDT
117
-
118
- **Example Decision:**
119
- ```
120
- ❌ Bad: Show spinner while posting comment
121
- ✅ Good: Show comment immediately (optimistic), sync background, handle conflicts
122
- ```
123
-
124
- ## Platform-Specific Thinking
125
-
126
- ### iOS Mental Model
127
-
128
- **Philosophy**: Consistent, polished, opinionated
129
- - Users expect iOS patterns (tab bar, navigation bar, swipe back)
130
- - Design reviews reject non-standard UIs
131
- - "It just works" expectation = zero tolerance for crashes
132
-
133
- **Fragmentation**: LOW
134
- - Most users on iOS 16+ (2024)
135
- - Only ~50 device models to test
136
- - Predictable hardware specs
137
-
138
- **Design Thinking**:
139
- - Follow Human Interface Guidelines religiously
140
- - Native navigation patterns non-negotiable
141
- - Haptic feedback for important actions
142
- - Respect safe areas (notch, Dynamic Island)
143
-
144
- **When to Go Native iOS:**
145
- - App Store is primary revenue channel
146
- - Need latest Apple features (WidgetKit, Live Activities)
147
- - Target affluent user base (iOS users spend 2.5x more)
148
-
149
- ### Android Mental Model
150
-
151
- **Philosophy**: Flexible, customizable, democratic
152
- - Users expect Material Design but tolerate variations
153
- - Extreme fragmentation = defensive programming
154
- - "Back button" = fundamental navigation expectation
155
-
156
- **Fragmentation**: HIGH
157
- - 24,000+ device models
158
- - Android 6-14 in active use (8 years of OS versions)
159
- - Wide range of hardware specs (512MB to 12GB RAM)
160
-
161
- **Design Thinking**:
162
- - Material Design 3 as baseline
163
- - Test on low-end devices (1GB RAM minimum)
164
- - Respect system navigation (gesture vs 3-button)
165
- - Handle back button properly
166
-
167
- **When to Go Native Android:**
168
- - Global market focus (Android dominates)
169
- - Emerging markets (Android dominates)
170
- - Enterprise/B2B (customization needs)
171
-
172
- ## Performance Mindset (Every Millisecond Matters)
173
-
174
- ### Critical Metrics (User Perception)
175
-
176
- | Metric | Threshold | User Perception |
177
- |--------|-----------|-----------------|
178
- | **Launch time** | <2s | Acceptable |
179
- | **Launch time** | 2-3s | Noticeable delay |
180
- | **Launch time** | >3s | Users may abandon |
181
- | **Screen load** | <1s | Instant (cached) |
182
- | **Screen load** | 1-3s | Acceptable (network) |
183
- | **Screen load** | >3s | Frustrating |
184
- | **Animation** | 60 FPS | Smooth |
185
- | **Animation** | 30-60 FPS | Noticeable jank |
186
- | **Animation** | <30 FPS | Unusable |
187
-
188
- ### Performance Budget Example
189
-
190
- **Mobile App Performance Budget:**
191
- ```
192
- Launch Time
193
- ├─ Cold start: <2s (target 1.5s)
194
- ├─ Warm start: <1s
195
- └─ Hot start: <0.5s
196
-
197
- Screen Load
198
- ├─ Cached data: <500ms
199
- ├─ Network data: <2s
200
- └─ Heavy computation: <3s
201
-
202
- Memory
203
- ├─ Typical screen: <100MB
204
- ├─ Heavy screen (images): <150MB
205
- └─ Peak usage: <200MB
206
-
207
- Network
208
- ├─ Initial bundle: <2MB
209
- ├─ Per screen: <500KB
210
- └─ Images: <200KB each
211
-
212
- Battery
213
- ├─ Active use: <5% per hour
214
- ├─ Background: <1% per hour
215
- └─ Idle: <0.1% per hour
216
- ```
217
-
218
- ### Optimization Decision Tree
219
-
220
- **Is it slow?**
221
- 1. **Measure first** (Xcode Instruments, Android Profiler)
222
- 2. **Find bottleneck** (CPU, memory, network, disk I/O)
223
- 3. **Fix biggest impact** (80/20 rule)
224
- 4. **Measure again** (verify improvement)
225
-
226
- **Common Culprits:**
227
- - Synchronous main thread operations
228
- - Unoptimized images (too large, wrong format)
229
- - N+1 query problem (fetch in loop)
230
- - Memory leaks (retain cycles, listeners)
231
- - Re-renders without memoization
232
-
233
- ## Mobile Development Workflow
234
-
235
- ### Iterative Development Cycle (Agile)
236
-
237
- **Sprint Structure (2 weeks):**
238
- ```
239
- Week 1: Build + Test
240
- ├─ Day 1-2: Design + plan
241
- ├─ Day 3-4: Implement core
242
- └─ Day 5: Code review + tests
243
-
244
- Week 2: Polish + Ship
245
- ├─ Day 6-7: Bug fixes + polish
246
- ├─ Day 8: QA testing
247
- ├─ Day 9: Staging deployment
248
- └─ Day 10: Production release (staged)
249
- ```
250
-
251
- **Daily Workflow:**
252
- 1. Pull latest code
253
- 2. Run tests locally
254
- 3. Develop feature/fix
255
- 4. Write/update tests
256
- 5. Local testing on device
257
- 6. Code review
258
- 7. CI/CD validation
259
- 8. Merge to develop
260
-
261
- **CI/CD Impact:**
262
- - Faster development and deployment with fewer production bugs
263
-
264
- ### Common Pitfalls & Avoidance
265
-
266
- #### 1. Testing Only on Simulators
267
- **Problem**: Simulators don't show real performance (battery, memory, network)
268
- **Solution**: Real device testing mandatory before every release
269
- **Impact**: Some bugs only appear on real devices
270
-
271
- #### 2. Ignoring Platform Conventions
272
- **Problem**: Custom navigation confuses users
273
- **Solution**: Follow iOS HIG and Material Design
274
- **Impact**: Non-standard UIs can lower engagement
275
-
276
- #### 3. No Offline Handling
277
- **Problem**: Network failures = blank screens, errors
278
- **Solution**: Offline-first architecture, cached data
279
- **Impact**: Users can experience network issues daily
280
-
281
- #### 4. Poor Memory Management
282
- **Problem**: Memory leaks → crashes, poor performance
283
- **Solution**: ARC/GC understanding, profile regularly
284
- **Impact**: Memory issues are a leading crash cause
285
-
286
- #### 5. Hardcoded Credentials
287
- **Problem**: Security vulnerability, API key exposure
288
- **Solution**: Environment variables, secure storage
289
- **Impact**: Apps can leak sensitive data; follow OWASP guidance.
290
-
291
- #### 6. No Accessibility
292
- **Problem**: Excludes users with disabilities or situational needs
293
- **Solution**: VoiceOver/TalkBack testing, semantic labels
294
- **Impact**: Accessibility = 1.3B global market
295
-
296
- #### 7. Premature Optimization
297
- **Problem**: Wasted time optimizing non-bottlenecks
298
- **Solution**: Measure first, optimize biggest impact
299
- **Impact**: Many performance issues come from a small part of the code
300
-
301
- #### 8. Over-Engineering
302
- **Problem**: Complex architecture for simple apps
303
- **Solution**: Start simple, scale when needed
304
- **Impact**: 3x longer development for no user benefit
305
-
306
- #### 9. Skipping Real Device Testing
307
- **Problem**: Missed battery drain, thermal issues
308
- **Solution**: Device farm in CI/CD, manual testing
309
- **Impact**: Some performance issues are device-specific
310
-
311
- #### 10. Not Respecting Battery
312
- **Problem**: Background processing drains battery
313
- **Solution**: Batch operations, respect Doze Mode
314
- **Impact**: Battery drain = #1 uninstall reason
315
-
316
- ## Debugging Strategies & Tools (2024-2025)
317
-
318
- ### iOS Debugging (Xcode 16)
319
-
320
- **Tools:**
321
- - **Instruments**: Profiling (Time, Allocations, Leaks, Network)
322
- - **Memory Graph**: Visual retain cycles
323
- - **View Hierarchy**: UI debugging
324
- - **Network Link Conditioner**: Simulate poor network
325
- - **Console**: System logs, os_log
326
-
327
- **AI-Driven:**
328
- - Xcode 16 AI crash analysis
329
- - Automatic memory leak detection
330
- - Performance suggestions
331
-
332
- **Process:**
333
- 1. Reproduce bug on device
334
- 2. Attach debugger / capture crash log
335
- 3. Symbolicate crash report
336
- 4. Fix root cause (not symptom)
337
- 5. Add test to prevent regression
338
-
339
- ### Android Debugging (Android Studio Giraffe+)
340
-
341
- **Tools:**
342
- - **Profiler**: CPU, Memory, Network, Energy
343
- - **Layout Inspector**: 3D view hierarchy
344
- - **Database Inspector**: SQLite/Room debugging
345
- - **Network Inspector**: API call monitoring
346
- - **Logcat**: System logs with filters
347
-
348
- **AI-Driven:**
349
- - Android Vitals: Crash clustering, ANR analysis
350
- - Firebase Crashlytics: AI-powered issue grouping
351
- - Play Console insights: User-reported bugs
352
-
353
- **Process:**
354
- 1. Reproduce on emulator/device
355
- 2. Check Logcat for stack traces
356
- 3. Use Android Profiler for performance
357
- 4. Fix and verify with instrumented tests
358
- 5. Monitor Play Console vitals post-release
359
-
360
- ### Cross-Platform Debugging
361
-
362
- **React Native:**
363
- - Chrome DevTools / Safari Web Inspector
364
- - Flipper (meta debugger: network, layout, logs)
365
- - Reactotron (state inspection)
366
-
367
- **Flutter:**
368
- - Flutter DevTools (Inspector, Timeline, Memory, Network)
369
- - Dart Observatory (VM debugging)
370
- - Widget Inspector (UI debugging)
371
-
372
- ## Progressive Enhancement & Graceful Degradation
373
-
374
- ### Progressive Enhancement (Build Up)
375
-
376
- **Strategy**: Start with baseline, enhance for capable devices
377
-
378
- **Example: Image Loading**
379
- ```
380
- Baseline (all devices):
381
- ├─ Show placeholder immediately
382
- ├─ Load low-res image (10KB)
383
- └─ Display with smooth fade-in
384
-
385
- Enhancement (modern devices):
386
- ├─ Check network (fast = high-res)
387
- ├─ Check memory (ample = cache)
388
- └─ Progressive JPEG rendering
389
- ```
390
-
391
- **Benefits:**
392
- - Works on all devices
393
- - Optimal experience on modern devices
394
- - No user left behind
395
-
396
- ### Graceful Degradation (Strip Down)
397
-
398
- **Strategy**: Build for best, degrade for constraints
399
-
400
- **Example: Animation**
401
- ```
402
- Best (flagship devices):
403
- ├─ Complex particle effects
404
- ├─ 120 FPS animations
405
- └─ Parallax scrolling
406
-
407
- Degraded (budget devices):
408
- ├─ Simple fade transitions
409
- ├─ 60 FPS target
410
- └─ Disable parallax (GPU load)
411
- ```
412
-
413
- **Detection:**
414
- ```javascript
415
- // React Native
416
- const isLowEndDevice =
417
- DeviceInfo.getTotalMemory() < 2000000000; // <2GB
418
-
419
- if (isLowEndDevice) {
420
- // Disable heavy animations
421
- // Reduce concurrent operations
422
- // Lower image quality
423
- }
424
- ```
425
-
426
- **Benefits:**
427
- - Optimized for all hardware tiers
428
- - Prevents crashes on low-end devices
429
- - Better user experience across spectrum
430
-
431
- ## Native vs Cross-Platform Decision Framework
432
-
433
- ### Decision Tree
434
-
435
- **Q1: Do you need 100% native performance?**
436
- - **Yes** → Native (Swift/Kotlin)
437
- - **No** → Continue
438
-
439
- **Q2: Is team comfortable with JavaScript?**
440
- - **Yes** → React Native
441
- - **No** → Continue
442
-
443
- **Q3: Need desktop or web versions too?**
444
- - **Yes** → Flutter
445
- - **No** → Continue
446
-
447
- **Q4: Complex animations or custom UI?**
448
- - **Yes** → Flutter
449
- - **No** → React Native (easier for standard UIs)
450
-
451
- **Q5: Existing codebase to share?**
452
- - **React web app** → React Native
453
- - **No existing code** → Flutter (cleaner slate)
454
-
455
- ### Hybrid Approach (Best of Both Worlds)
456
-
457
- **Strategy**: Cross-platform for most features, native for critical paths
458
-
459
- **Example Architecture:**
460
- ```
461
- React Native / Flutter
462
- ├─ UI and business logic
463
- ├─ Standard features
464
- └─ API integration
465
-
466
- Native Modules
467
- ├─ Performance-critical (video processing)
468
- ├─ Platform-specific (HealthKit, Android Auto)
469
- └─ Third-party SDKs (payment, analytics)
470
- ```
471
-
472
- **When to Use:**
473
- - Best: Leverage cross-platform speed + native power
474
- - Complexity: Maintain native module knowledge
475
- - Team: Need both cross-platform and native developers
476
-
477
- ## Architecture Decision-Making
478
-
479
- ### Complexity-Based Architecture Selection
480
-
481
- **Simple App (1-5 screens, basic CRUD)**
482
- - **Architecture**: MVVM (no Clean Architecture)
483
- - **State**: Local state (useState, setState)
484
- - **Reasoning**: Over-engineering adds complexity without benefit
485
-
486
- **Medium App (5-20 screens, moderate logic)**
487
- - **Architecture**: MVVM with clear separation
488
- - **State**: Global state management (Zustand, Riverpod)
489
- - **Reasoning**: Scalability without over-engineering
490
-
491
- **Complex App (20+ screens, enterprise logic)**
492
- - **Architecture**: Clean Architecture (domain, data, presentation)
493
- - **State**: Advanced state management + dependency injection
494
- - **Reasoning**: Maintainability and testability critical
495
-
496
- ### Architecture Evolution
497
-
498
- **Start Simple:**
499
- ```
500
- v1.0: MVVM, local state, single module
501
- └─ Focus: Ship fast, validate idea
502
-
503
- v2.0: Add global state when needed
504
- └─ Trigger: Props drilling becomes painful
505
-
506
- v3.0: Add Clean Architecture when scaling
507
- └─ Trigger: Team grows, features multiply
508
-
509
- v4.0: Extract microservices if justified
510
- └─ Trigger: Independent deployment needs
511
- ```
512
-
513
- **Key Principle:** Refactor when pain > refactoring cost, not before
514
-
515
- ## Resources & Continuous Learning
516
-
517
- **Weekly Learning Targets (2024-2025):**
518
- - 1 hour: New framework features
519
- - 30 min: Performance optimization techniques
520
- - 30 min: Security updates (CVEs, OWASP)
521
- - 30 min: Community articles/videos
522
-
523
- **Top Resources:**
524
- - iOS: Apple WWDC videos, Swift by Sundell
525
- - Android: Android Dev Summit, Medium Android Dev
526
- - React Native: React Native Blog, Expo Blog
527
- - Flutter: Flutter Engage, Medium Flutter
528
- - Mobile DevOps: Bitrise Blog, Fastlane guides
529
-
530
- **Communities:**
531
- - Stack Overflow (mobile tags)
532
- - Reddit (r/iOSProgramming, r/androiddev, r/reactnative, r/FlutterDev)
533
- - Discord (React Native, Flutter official)
534
- - Twitter: Follow framework creators and contributors
535
-
536
- **AI Tools (widely adopted in 2024):**
537
- - GitHub Copilot: Code completion, boilerplate
538
- - ChatGPT/Claude: Architecture questions, debugging
539
- - Tabnine: Context-aware suggestions
540
- - Average time saved: 1+ hour weekly
541
-
542
- **Key Mindset:** Continuous learning is not optional, it's survival in mobile development