reis-mobile 0.3.6 → 0.5.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 (539) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +39 -0
  4. package/README.md +135 -297
  5. package/THIRD_PARTY_NOTICES.md +221 -4
  6. package/agents/android-architect.md +89 -0
  7. package/agents/android-performance-engineer.md +92 -0
  8. package/agents/android-test-engineer.md +97 -0
  9. package/agents/flutter-test-engineer.md +2 -0
  10. package/agents/ios-architect.md +93 -0
  11. package/agents/ios-performance-engineer.md +92 -0
  12. package/agents/ios-test-engineer.md +95 -0
  13. package/agents/lead-mobile.md +10 -1
  14. package/agents/mobile-code-reviewer.md +2 -0
  15. package/agents/mobile-staff-engineer.md +1 -1
  16. package/agents/rn-architect.md +94 -0
  17. package/agents/rn-performance-engineer.md +92 -0
  18. package/agents/rn-test-engineer.md +98 -0
  19. package/bin/reis-mobile.mjs +59 -17
  20. package/commands/debate.md +10 -1
  21. package/commands/debug.md +60 -0
  22. package/commands/reis-mobile.md +7 -2
  23. package/core/config/project.mjs +59 -0
  24. package/core/registry/frontmatter.mjs +15 -4
  25. package/core/registry/registry.mjs +28 -1
  26. package/core/router/intents.mjs +2 -0
  27. package/core/router/router.mjs +10 -5
  28. package/package.json +24 -3
  29. package/skills/mobile-android/SKILL.md +29 -0
  30. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/GUIDE.md +87 -0
  31. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/android/build/migrate-to-built-in-kotlin.md +416 -0
  32. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/android/build/releases/agp-9-0-0-release-notes.md +554 -0
  33. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/buildconfig.md +54 -0
  34. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/ksp-kapt.md +39 -0
  35. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/paparazzi-gradle-9.md +30 -0
  36. package/skills/mobile-android/references/build-and-performance/agp-9-upgrade/references/recipes.md +62 -0
  37. package/skills/mobile-android/references/build-and-performance/android-cli/GUIDE.md +450 -0
  38. package/skills/mobile-android/references/build-and-performance/android-cli/references/interact.md +113 -0
  39. package/skills/mobile-android/references/build-and-performance/android-cli/references/journeys.md +120 -0
  40. package/skills/mobile-android/references/build-and-performance/android-profiler/GUIDE.md +34 -0
  41. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/analysis_orchestrator.md +32 -0
  42. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-sql/perfetto_sql.md +28 -0
  43. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/perfetto_trace_analysis.md +121 -0
  44. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/guiding_principles.md +51 -0
  45. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/domain_hints_template.md +7 -0
  46. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_cpu.md +56 -0
  47. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_graphics.md +51 -0
  48. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_io.md +46 -0
  49. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_ipc.md +41 -0
  50. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_memory.md +55 -0
  51. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/hints/subsystems/hints_power.md +33 -0
  52. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/per_candidate_analysis.md +172 -0
  53. package/skills/mobile-android/references/build-and-performance/android-profiler/analysis/workflows/perfetto-trace-analysis/references/triage.md +94 -0
  54. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/recording_orchestrator.md +36 -0
  55. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/perfetto_trace_recording.md +148 -0
  56. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/app_jank.pftxt +43 -0
  57. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/cpu_profile.pftxt +35 -0
  58. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/java_heap_dump.pftxt +21 -0
  59. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/long_background.pftxt +37 -0
  60. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/memory_counters.pftxt +45 -0
  61. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/native_heap.pftxt +21 -0
  62. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/example-configs/sched_cpu.pftxt +33 -0
  63. package/skills/mobile-android/references/build-and-performance/android-profiler/recording/workflows/perfetto-trace-recording/references/trace_config_reference.md +102 -0
  64. package/skills/mobile-android/references/build-and-performance/android-profiler/references/env_setup.md +15 -0
  65. package/skills/mobile-android/references/build-and-performance/android-profiler/references/perfetto/setup.md +29 -0
  66. package/skills/mobile-android/references/build-and-performance/android-profiler/references/perfetto/sql.md +327 -0
  67. package/skills/mobile-android/references/build-and-performance/r8-analyzer/GUIDE.md +53 -0
  68. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/CONFIGURATION-ANALYZER.md +287 -0
  69. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/CONFIGURATION.md +44 -0
  70. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/KEEP-RULES-IMPACT-HIERARCHY.md +83 -0
  71. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REDUNDANT-RULES.md +222 -0
  72. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REFLECTION-GUIDE.md +139 -0
  73. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/REPORT_FORMAT.md +51 -0
  74. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/android/topic/performance/app-optimization/enable-app-optimization.md +252 -0
  75. package/skills/mobile-android/references/build-and-performance/r8-analyzer/references/android/training/testing/other-components/ui-automator.md +312 -0
  76. package/skills/mobile-android/references/build-and-performance.md +12 -0
  77. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/GUIDE.md +317 -0
  78. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/design/ui/ai-glasses/guides/interaction/inputs.md +67 -0
  79. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/access-hardware-projected-context.md +388 -0
  80. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/buttons.md +139 -0
  81. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/cards.md +148 -0
  82. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/focus.md +107 -0
  83. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/icons.md +90 -0
  84. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/text.md +69 -0
  85. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/jetpack-compose-glimmer/title-chips.md +82 -0
  86. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/android/develop/xr/jetpack-xr-sdk/request-hardware-permissions.md +213 -0
  87. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/button-samples-source.md +176 -0
  88. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/button-source.md +203 -0
  89. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/card-samples-source.md +296 -0
  90. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/card-source.md +515 -0
  91. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/deptheffect-source.md +224 -0
  92. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/deptheffectlevels-source.md +105 -0
  93. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/glimmersansflextypography-source.md +270 -0
  94. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/glimmertheme-source.md +182 -0
  95. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/icon-source.md +388 -0
  96. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/iconbutton-source.md +126 -0
  97. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/iconsizes-source.md +78 -0
  98. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/list-source.md +27 -0
  99. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/listitem-source.md +272 -0
  100. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/liststate-source.md +427 -0
  101. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/material-hct-source.md +217 -0
  102. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/projectedcontext-source.md +265 -0
  103. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stack-source.md +368 -0
  104. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stackitemscope-source.md +440 -0
  105. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/stackstate-source.md +325 -0
  106. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/surface-source.md +1211 -0
  107. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/titlechip-samples-source.md +101 -0
  108. package/skills/mobile-android/references/devices/display-glasses-with-jetpack-compose-glimmer/references/titlechip-source.md +131 -0
  109. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/GUIDE.md +707 -0
  110. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/get-started/navigation.md +372 -0
  111. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/playback/compose/browse.md +243 -0
  112. package/skills/mobile-android/references/devices/leanback-to-compose-tv-migration/references/android/training/tv/playback/compose/index.md +153 -0
  113. package/skills/mobile-android/references/devices/wear-compose-m3/GUIDE.md +341 -0
  114. package/skills/mobile-android/references/devices/wear-compose-m3/references/android/training/wearables/compose/migrate-to-material3.md +677 -0
  115. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/AmbientModeSample.kt.md +123 -0
  116. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/AmbientModeSample.kt.md.txt +123 -0
  117. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/CurvedWorldSample.kt.md +430 -0
  118. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/CurvedWorldSample.kt.md.txt +430 -0
  119. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ExpandableSample.kt.md +99 -0
  120. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ExpandableSample.kt.md.txt +99 -0
  121. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/HierarchicalFocusSample.kt.md +141 -0
  122. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/HierarchicalFocusSample.kt.md.txt +141 -0
  123. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/PagerSamples.kt.md +56 -0
  124. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/PagerSamples.kt.md.txt +56 -0
  125. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/RotarySamples.kt.md +153 -0
  126. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/RotarySamples.kt.md.txt +153 -0
  127. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ScalingLazyColumnSample.kt.md +131 -0
  128. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/ScalingLazyColumnSample.kt.md.txt +131 -0
  129. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToDismissBoxSample.kt.md +169 -0
  130. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToDismissBoxSample.kt.md.txt +169 -0
  131. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToRevealSample.kt.md +282 -0
  132. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/SwipeToRevealSample.kt.md.txt +282 -0
  133. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/TransformingLazyColumnSample.kt.md +335 -0
  134. package/skills/mobile-android/references/devices/wear-compose-m3/references/foundation/TransformingLazyColumnSample.kt.md.txt +335 -0
  135. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AlertDialogSample.kt.md +377 -0
  136. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AlertDialogSample.kt.md.txt +377 -0
  137. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AnimatedTextSample.kt.md +165 -0
  138. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/AnimatedTextSample.kt.md.txt +165 -0
  139. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonGroupSample.kt.md +91 -0
  140. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonGroupSample.kt.md.txt +91 -0
  141. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonSample.kt.md +496 -0
  142. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ButtonSample.kt.md.txt +496 -0
  143. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CardSample.kt.md +470 -0
  144. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CardSample.kt.md.txt +470 -0
  145. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CheckboxButtonSample.kt.md +67 -0
  146. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CheckboxButtonSample.kt.md.txt +67 -0
  147. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ConfirmationDialogSample.kt.md +162 -0
  148. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ConfirmationDialogSample.kt.md.txt +162 -0
  149. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CurvedTextSamples.kt.md +78 -0
  150. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/CurvedTextSamples.kt.md.txt +78 -0
  151. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DatePickerSample.kt.md +131 -0
  152. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DatePickerSample.kt.md.txt +131 -0
  153. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DynamicColorSchemeSample.kt.md +74 -0
  154. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/DynamicColorSchemeSample.kt.md.txt +74 -0
  155. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/EdgeButtonSample.kt.md +63 -0
  156. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/EdgeButtonSample.kt.md.txt +63 -0
  157. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/FadingExpandingLabelSample.kt.md +60 -0
  158. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/FadingExpandingLabelSample.kt.md.txt +60 -0
  159. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconButtonSample.kt.md +125 -0
  160. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconButtonSample.kt.md.txt +125 -0
  161. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconToggleButtonSample.kt.md +116 -0
  162. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/IconToggleButtonSample.kt.md.txt +116 -0
  163. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LevelIndicatorSample.kt.md +68 -0
  164. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LevelIndicatorSample.kt.md.txt +68 -0
  165. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LinearProgressIndicatorSample.kt.md +50 -0
  166. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/LinearProgressIndicatorSample.kt.md.txt +50 -0
  167. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ListHeaderSample.kt.md +177 -0
  168. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ListHeaderSample.kt.md.txt +177 -0
  169. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OneHandedGestureSamples.kt.md +651 -0
  170. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OneHandedGestureSamples.kt.md.txt +651 -0
  171. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OpenOnPhoneDialogSample.kt.md +57 -0
  172. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/OpenOnPhoneDialogSample.kt.md.txt +57 -0
  173. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PageIndicatorSample.kt.md +110 -0
  174. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PageIndicatorSample.kt.md.txt +110 -0
  175. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PagerScaffoldSample.kt.md +204 -0
  176. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PagerScaffoldSample.kt.md.txt +204 -0
  177. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerGroupSample.kt.md +139 -0
  178. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerGroupSample.kt.md.txt +139 -0
  179. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerSample.kt.md +111 -0
  180. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PickerSample.kt.md.txt +111 -0
  181. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PlaceholderSample.kt.md +184 -0
  182. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/PlaceholderSample.kt.md.txt +184 -0
  183. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ProgressIndicatorSample.kt.md +263 -0
  184. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ProgressIndicatorSample.kt.md.txt +263 -0
  185. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/RadioButtonSample.kt.md +105 -0
  186. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/RadioButtonSample.kt.md.txt +105 -0
  187. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScaffoldSample.kt.md +146 -0
  188. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScaffoldSample.kt.md.txt +146 -0
  189. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollAwaySample.kt.md +97 -0
  190. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollAwaySample.kt.md.txt +97 -0
  191. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollIndicatorSample.kt.md +66 -0
  192. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/ScrollIndicatorSample.kt.md.txt +66 -0
  193. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SliderSample.kt.md +86 -0
  194. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SliderSample.kt.md.txt +86 -0
  195. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/StepperSample.kt.md +148 -0
  196. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/StepperSample.kt.md.txt +148 -0
  197. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SurfaceTransformationSample.kt.md +166 -0
  198. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SurfaceTransformationSample.kt.md.txt +166 -0
  199. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToDismissBoxSample.kt.md +172 -0
  200. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToDismissBoxSample.kt.md.txt +172 -0
  201. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToRevealSample.kt.md +367 -0
  202. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwipeToRevealSample.kt.md.txt +367 -0
  203. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwitchButtonSample.kt.md +66 -0
  204. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/SwitchButtonSample.kt.md.txt +66 -0
  205. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextButtonSample.kt.md +115 -0
  206. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextButtonSample.kt.md.txt +115 -0
  207. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextToggleButtonSample.kt.md +71 -0
  208. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TextToggleButtonSample.kt.md.txt +71 -0
  209. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimePickerSample.kt.md +151 -0
  210. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimePickerSample.kt.md.txt +151 -0
  211. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimeTextSample.kt.md +65 -0
  212. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TimeTextSample.kt.md.txt +65 -0
  213. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformationSpecSample.kt.md +246 -0
  214. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformationSpecSample.kt.md.txt +246 -0
  215. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnNotificationsSample.kt.md +89 -0
  216. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnNotificationsSample.kt.md.txt +89 -0
  217. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnSample.kt.md +309 -0
  218. package/skills/mobile-android/references/devices/wear-compose-m3/references/material3/TransformingLazyColumnSample.kt.md.txt +309 -0
  219. package/skills/mobile-android/references/devices/wear-compose-m3/references/navigation3/SwipeDismissableSceneStrategySample.kt.md +205 -0
  220. package/skills/mobile-android/references/devices/wear-compose-m3/references/navigation3/SwipeDismissableSceneStrategySample.kt.md.txt +205 -0
  221. package/skills/mobile-android/references/devices.md +11 -0
  222. package/skills/mobile-android/references/identity/restore-credentials/GUIDE.md +337 -0
  223. package/skills/mobile-android/references/identity/restore-credentials/references/android/guide/topics/manifest/application-element.md +832 -0
  224. package/skills/mobile-android/references/identity/restore-credentials/references/android/identity/passkeys/create-passkeys.md +327 -0
  225. package/skills/mobile-android/references/identity/restore-credentials/references/android/identity/passkeys/sign-in-with-passkeys.md +219 -0
  226. package/skills/mobile-android/references/identity/verified-email/GUIDE.md +405 -0
  227. package/skills/mobile-android/references/identity/verified-email/references/android/identity/credential-manager/index.md +67 -0
  228. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/credential-verifier.md +166 -0
  229. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/email-verification-implementation.md +313 -0
  230. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/email-verification.md +158 -0
  231. package/skills/mobile-android/references/identity/verified-email/references/android/identity/digital-credentials/index.md +112 -0
  232. package/skills/mobile-android/references/identity/verified-email/references/android/identity/passkeys/create-passkeys.md +327 -0
  233. package/skills/mobile-android/references/identity/verified-email/references/android/identity/sign-in/credential-manager-webview.md +84 -0
  234. package/skills/mobile-android/references/identity.md +10 -0
  235. package/skills/mobile-android/references/media/camerax/GUIDE.md +106 -0
  236. package/skills/mobile-android/references/media/camerax/references/camera1-to-camerax.md +198 -0
  237. package/skills/mobile-android/references/media/camerax/references/camera2-to-camerax.md +193 -0
  238. package/skills/mobile-android/references/media/camerax/references/expert-blueprints.md +58 -0
  239. package/skills/mobile-android/references/media/camerax/references/foldables.md +83 -0
  240. package/skills/mobile-android/references/media/camerax/references/immutability.md +60 -0
  241. package/skills/mobile-android/references/media/camerax/references/low-light.md +124 -0
  242. package/skills/mobile-android/references/media/camerax/references/mlkit-spatial.md +75 -0
  243. package/skills/mobile-android/references/media/camerax/references/modern-apis.md +42 -0
  244. package/skills/mobile-android/references/media/camerax/references/testing.md +69 -0
  245. package/skills/mobile-android/references/media/camerax/references/thermals.md +85 -0
  246. package/skills/mobile-android/references/media/camerax/references/wear-os.md +76 -0
  247. package/skills/mobile-android/references/media/camerax/references/xr.md +54 -0
  248. package/skills/mobile-android/references/media/media3-cast-integration/GUIDE.md +213 -0
  249. package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/create-castplayer.md +390 -0
  250. package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/customize-castoptions.md +93 -0
  251. package/skills/mobile-android/references/media/media3-cast-integration/references/android/media/media3/cast/index.md +21 -0
  252. package/skills/mobile-android/references/media.md +10 -0
  253. package/skills/mobile-android/references/on-device-ai/appfunctions/GUIDE.md +51 -0
  254. package/skills/mobile-android/references/on-device-ai/appfunctions/references/adb-interaction-testing.md +95 -0
  255. package/skills/mobile-android/references/on-device-ai/appfunctions/references/context.md +26 -0
  256. package/skills/mobile-android/references/on-device-ai/appfunctions/references/feature-discovery-analysis.md +71 -0
  257. package/skills/mobile-android/references/on-device-ai/appfunctions/references/implementation-configuration.md +282 -0
  258. package/skills/mobile-android/references/on-device-ai/appfunctions/references/kdoc-refinement-optimization.md +75 -0
  259. package/skills/mobile-android/references/on-device-ai/appfunctions/references/migrate-to-service-entry-point.md +226 -0
  260. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/GUIDE.md +105 -0
  261. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/get-started.md +272 -0
  262. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prefix-caching.md +146 -0
  263. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prompt-design.md +55 -0
  264. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/prompt-optimization.md +74 -0
  265. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/structured-output.md +219 -0
  266. package/skills/mobile-android/references/on-device-ai/ml-kit-genai-prompt-api/references/system-instructions.md +71 -0
  267. package/skills/mobile-android/references/on-device-ai.md +10 -0
  268. package/skills/mobile-android/references/play/engage-sdk-integration/GUIDE.md +112 -0
  269. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/faq.md +439 -0
  270. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/food.md +1149 -0
  271. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/healthandfitness.md +1055 -0
  272. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/listen.md +1050 -0
  273. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/otherverticals.md +1301 -0
  274. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/read.md +910 -0
  275. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/shopping.md +1224 -0
  276. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/social.md +719 -0
  277. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/travel.md +1413 -0
  278. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/continue-watching/index.md +19 -0
  279. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/entitlements.md +353 -0
  280. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/getting-started.md +202 -0
  281. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/tv/recommendations.md +471 -0
  282. package/skills/mobile-android/references/play/engage-sdk-integration/references/android/guide/playcore/engage/watch.md +1081 -0
  283. package/skills/mobile-android/references/play/engage-sdk-integration/references/clusters.md +154 -0
  284. package/skills/mobile-android/references/play/engage-sdk-integration/references/common.md +519 -0
  285. package/skills/mobile-android/references/play/engage-sdk-integration/references/patterns.md +527 -0
  286. package/skills/mobile-android/references/play/engage-sdk-integration/references/requests.md +260 -0
  287. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/food.md +509 -0
  288. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/listen.md +842 -0
  289. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/other.md +220 -0
  290. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/read.md +412 -0
  291. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/shopping.md +357 -0
  292. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/social.md +228 -0
  293. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/travel.md +923 -0
  294. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/tv.md +1226 -0
  295. package/skills/mobile-android/references/play/engage-sdk-integration/references/schemas/watch.md +1137 -0
  296. package/skills/mobile-android/references/play/engage-sdk-integration/references/troubleshooting.md +39 -0
  297. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/GUIDE.md +75 -0
  298. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/android/google/play/billing/release-notes.md +1240 -0
  299. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/migration-logic.md +78 -0
  300. package/skills/mobile-android/references/play/play-billing-library-version-upgrade/references/version-checklist.md +54 -0
  301. package/skills/mobile-android/references/play/play-policy-insights/GUIDE.md +130 -0
  302. package/skills/mobile-android/references/play/play-policy-insights/resources/common_mandates.md +100 -0
  303. package/skills/mobile-android/references/play/play-policy-insights/resources/compliance_report_template.md +59 -0
  304. package/skills/mobile-android/references/play/play-policy-insights/resources/critic.md +86 -0
  305. package/skills/mobile-android/references/play/play-policy-insights/resources/goal_data_safety.md +212 -0
  306. package/skills/mobile-android/references/play/play-policy-insights/resources/goal_permissions_and_apis.md +459 -0
  307. package/skills/mobile-android/references/play/play-policy-insights/resources/goal_user_account.md +106 -0
  308. package/skills/mobile-android/references/play/play-policy-insights/resources/policies.json +321 -0
  309. package/skills/mobile-android/references/play/play-policy-insights/resources/scanner_config.json +843 -0
  310. package/skills/mobile-android/references/play/play-policy-insights/scripts/generate_report.py +860 -0
  311. package/skills/mobile-android/references/play/play-policy-insights/scripts/orchestrator.py +1313 -0
  312. package/skills/mobile-android/references/play/play-policy-insights/scripts/play_store_scraper.py +410 -0
  313. package/skills/mobile-android/references/play/play-policy-insights/scripts/scanner.py +261 -0
  314. package/skills/mobile-android/references/play/play-policy-insights/scripts/template_engine.py +243 -0
  315. package/skills/mobile-android/references/play.md +11 -0
  316. package/skills/mobile-android/references/ui/adaptive/GUIDE.md +280 -0
  317. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/container-behavior.md +112 -0
  318. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/get-started.md +69 -0
  319. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/index.md +81 -0
  320. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/flexbox/item-behavior.md +170 -0
  321. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/container-properties.md +415 -0
  322. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/get-started.md +51 -0
  323. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/index.md +73 -0
  324. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/grid/item-properties.md +170 -0
  325. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/layouts/adaptive/mediaquery/index.md +333 -0
  326. package/skills/mobile-android/references/ui/adaptive/references/android/develop/ui/compose/tooling/debug.md +114 -0
  327. package/skills/mobile-android/references/ui/adaptive/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  328. package/skills/mobile-android/references/ui/edge-to-edge/GUIDE.md +409 -0
  329. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/GUIDE.md +104 -0
  330. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/analysis-of-the-project-and-layout.md +42 -0
  331. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/designsystems/migrate-xml-theme-to-compose.md +171 -0
  332. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/migrate/interoperability-apis/compose-in-views.md +299 -0
  333. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/migrate/interoperability-apis/views-in-compose.md +286 -0
  334. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/android/develop/ui/compose/setup-compose-dependencies-and-compiler.md +197 -0
  335. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/identify-optimal-xml-candidate.md +31 -0
  336. package/skills/mobile-android/references/ui/migrate-xml-views-to-jetpack-compose/references/xml-layout-migration.md +86 -0
  337. package/skills/mobile-android/references/ui/navigation-3/GUIDE.md +86 -0
  338. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/index.md +51 -0
  339. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/migration-guide.md +670 -0
  340. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/animations.md +147 -0
  341. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basic.md +89 -0
  342. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicdsl.md +85 -0
  343. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/basicsaveable.md +90 -0
  344. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/bottomsheet.md +195 -0
  345. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/common-ui.md +200 -0
  346. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional-transitions.md +182 -0
  347. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/conditional.md +230 -0
  348. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-custommatcher.md +176 -0
  349. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-staticuri.md +140 -0
  350. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/deeplinks-syntheticbackstack.md +184 -0
  351. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/dialog.md +107 -0
  352. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/lifecycle-owner.md +185 -0
  353. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-listdetail.md +141 -0
  354. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/material-supportingpane.md +145 -0
  355. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-hilt.md +283 -0
  356. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/modular-koin.md +287 -0
  357. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/multiple-backstacks.md +468 -0
  358. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/passingarguments.md +371 -0
  359. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-event.md +273 -0
  360. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/results-state.md +266 -0
  361. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-listdetail.md +435 -0
  362. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/navigation-3/recipes/scenes-twopane.md +244 -0
  363. package/skills/mobile-android/references/ui/navigation-3/references/android/guide/navigation/type-safe-destinations.md +129 -0
  364. package/skills/mobile-android/references/ui/navigation-event/GUIDE.md +288 -0
  365. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/dispatcher.md +134 -0
  366. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/handle-back.md +217 -0
  367. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/index.md +83 -0
  368. package/skills/mobile-android/references/ui/navigation-event/references/android/guide/navigation/navigation-event/setup.md +32 -0
  369. package/skills/mobile-android/references/ui/styles/GUIDE.md +209 -0
  370. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/designsystems/custom.md +459 -0
  371. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/fundamentals.md +421 -0
  372. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/state-animations.md +461 -0
  373. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/styles-vs-modifiers.md +48 -0
  374. package/skills/mobile-android/references/ui/styles/references/android/develop/ui/compose/styles/theming.md +269 -0
  375. package/skills/mobile-android/references/ui.md +14 -0
  376. package/skills/mobile-architecture/SKILL.md +52 -0
  377. package/skills/mobile-architecture/references/android.md +54 -0
  378. package/skills/{flutter-app-architecture/SKILL.md → mobile-architecture/references/flutter/app-architecture.md} +1 -8
  379. package/skills/{bloc/SKILL.md → mobile-architecture/references/flutter/bloc.md} +1 -8
  380. package/skills/{flutter-change-notifier/SKILL.md → mobile-architecture/references/flutter/change-notifier.md} +1 -8
  381. package/skills/{architecture-feature-first/SKILL.md → mobile-architecture/references/flutter/feature-first.md} +1 -8
  382. package/skills/{flutter-login-usecase/SKILL.md → mobile-architecture/references/flutter/login-use-case.md} +0 -7
  383. package/skills/{flutter-managing-state/SKILL.md → mobile-architecture/references/flutter/managing-state.md} +2 -11
  384. package/skills/{provider/SKILL.md → mobile-architecture/references/flutter/provider.md} +1 -8
  385. package/skills/{flutter-apply-architecture-best-practices/SKILL.md → mobile-architecture/references/flutter/recommended-architecture.md} +2 -11
  386. package/skills/{riverpod/SKILL.md → mobile-architecture/references/flutter/riverpod.md} +1 -8
  387. package/skills/mobile-architecture/references/flutter.md +21 -0
  388. package/skills/mobile-architecture/references/ios.md +58 -0
  389. package/skills/mobile-architecture/references/react-native.md +61 -0
  390. package/skills/mobile-code-review/SKILL.md +70 -0
  391. package/skills/mobile-code-review/references/android.md +51 -0
  392. package/skills/{code-review/SKILL.md → mobile-code-review/references/flutter/pr-review.md} +1 -8
  393. package/skills/{flutter-project-audit/SKILL.md → mobile-code-review/references/flutter/project-audit.md} +0 -7
  394. package/skills/{dart-run-static-analysis/SKILL.md → mobile-code-review/references/flutter/static-analysis.md} +2 -11
  395. package/skills/{flutter-widget-review/SKILL.md → mobile-code-review/references/flutter/widget-review.md} +0 -7
  396. package/skills/mobile-code-review/references/flutter.md +18 -0
  397. package/skills/mobile-code-review/references/ios.md +49 -0
  398. package/skills/mobile-code-review/references/react-native.md +58 -0
  399. package/skills/mobile-debug/SKILL.md +50 -0
  400. package/skills/mobile-debug/references/android/gradle-build.md +63 -0
  401. package/skills/mobile-debug/references/android.md +26 -0
  402. package/skills/mobile-debug/references/flutter/build.md +58 -0
  403. package/skills/{flutter-errors/SKILL.md → mobile-debug/references/flutter/errors.md} +1 -8
  404. package/skills/{flutter-fix-layout-issues/SKILL.md → mobile-debug/references/flutter/layout-issues.md} +2 -11
  405. package/skills/{dart-resolve-package-conflicts/SKILL.md → mobile-debug/references/flutter/package-conflicts.md} +2 -11
  406. package/skills/{dart-fix-runtime-errors/SKILL.md → mobile-debug/references/flutter/runtime-errors.md} +2 -11
  407. package/skills/mobile-debug/references/flutter.md +23 -0
  408. package/skills/mobile-debug/references/ios/cocoapods.md +57 -0
  409. package/skills/mobile-debug/references/ios/xcode-build.md +58 -0
  410. package/skills/mobile-debug/references/ios.md +23 -0
  411. package/skills/mobile-debug/references/react-native.md +43 -0
  412. package/skills/{detect-mobile-stack → mobile-detect-stack}/SKILL.md +1 -1
  413. package/skills/mobile-firebase/SKILL.md +54 -0
  414. package/skills/mobile-firebase/references/android/ai-logic.md +31 -0
  415. package/skills/mobile-firebase/references/android/analytics.md +33 -0
  416. package/skills/mobile-firebase/references/android/app-check.md +36 -0
  417. package/skills/mobile-firebase/references/android/auth.md +44 -0
  418. package/skills/mobile-firebase/references/android/crashlytics.md +31 -0
  419. package/skills/mobile-firebase/references/android/firestore.md +44 -0
  420. package/skills/mobile-firebase/references/android/functions.md +33 -0
  421. package/skills/mobile-firebase/references/android/in-app-messaging.md +28 -0
  422. package/skills/mobile-firebase/references/android/messaging.md +41 -0
  423. package/skills/mobile-firebase/references/android/realtime-database.md +50 -0
  424. package/skills/mobile-firebase/references/android/remote-config.md +43 -0
  425. package/skills/mobile-firebase/references/android/sql-connect.md +31 -0
  426. package/skills/mobile-firebase/references/android/storage.md +39 -0
  427. package/skills/mobile-firebase/references/android.md +30 -0
  428. package/skills/{firebase-ai/SKILL.md → mobile-firebase/references/flutter/ai-logic.md} +2 -8
  429. package/skills/{firebase-analytics/SKILL.md → mobile-firebase/references/flutter/analytics.md} +2 -8
  430. package/skills/{firebase-app-check/SKILL.md → mobile-firebase/references/flutter/app-check.md} +2 -8
  431. package/skills/{firebase-auth/SKILL.md → mobile-firebase/references/flutter/auth.md} +2 -8
  432. package/skills/{firebase-crashlytics/SKILL.md → mobile-firebase/references/flutter/crashlytics.md} +2 -8
  433. package/skills/{firebase-cloud-firestore/SKILL.md → mobile-firebase/references/flutter/firestore.md} +2 -8
  434. package/skills/{firebase-cloud-functions/SKILL.md → mobile-firebase/references/flutter/functions.md} +2 -8
  435. package/skills/{firebase-in-app-messaging/SKILL.md → mobile-firebase/references/flutter/in-app-messaging.md} +2 -8
  436. package/skills/{firebase-messaging/SKILL.md → mobile-firebase/references/flutter/messaging.md} +2 -8
  437. package/skills/{firebase-database/SKILL.md → mobile-firebase/references/flutter/realtime-database.md} +2 -8
  438. package/skills/{firebase-remote-config/SKILL.md → mobile-firebase/references/flutter/remote-config.md} +2 -8
  439. package/skills/{flutterfire-configure/SKILL.md → mobile-firebase/references/flutter/setup-flutterfire.md} +1 -8
  440. package/skills/{firebase-data-connect/SKILL.md → mobile-firebase/references/flutter/sql-connect.md} +2 -8
  441. package/skills/{firebase-storage/SKILL.md → mobile-firebase/references/flutter/storage.md} +2 -8
  442. package/skills/mobile-firebase/references/flutter.md +36 -0
  443. package/skills/mobile-firebase/references/ios/ai-logic.md +30 -0
  444. package/skills/mobile-firebase/references/ios/analytics.md +33 -0
  445. package/skills/mobile-firebase/references/ios/app-check.md +36 -0
  446. package/skills/mobile-firebase/references/ios/auth.md +48 -0
  447. package/skills/mobile-firebase/references/ios/crashlytics.md +34 -0
  448. package/skills/mobile-firebase/references/ios/firestore.md +53 -0
  449. package/skills/mobile-firebase/references/ios/functions.md +35 -0
  450. package/skills/mobile-firebase/references/ios/in-app-messaging.md +26 -0
  451. package/skills/mobile-firebase/references/ios/messaging.md +45 -0
  452. package/skills/mobile-firebase/references/ios/realtime-database.md +49 -0
  453. package/skills/mobile-firebase/references/ios/remote-config.md +44 -0
  454. package/skills/mobile-firebase/references/ios/sql-connect.md +33 -0
  455. package/skills/mobile-firebase/references/ios/storage.md +36 -0
  456. package/skills/mobile-firebase/references/ios.md +28 -0
  457. package/skills/mobile-firebase/references/react-native/ai-logic.md +32 -0
  458. package/skills/mobile-firebase/references/react-native/analytics.md +43 -0
  459. package/skills/mobile-firebase/references/react-native/app-check.md +35 -0
  460. package/skills/mobile-firebase/references/react-native/auth.md +50 -0
  461. package/skills/mobile-firebase/references/react-native/crashlytics.md +36 -0
  462. package/skills/mobile-firebase/references/react-native/firestore.md +45 -0
  463. package/skills/mobile-firebase/references/react-native/functions.md +28 -0
  464. package/skills/mobile-firebase/references/react-native/in-app-messaging.md +27 -0
  465. package/skills/mobile-firebase/references/react-native/messaging.md +46 -0
  466. package/skills/mobile-firebase/references/react-native/realtime-database.md +46 -0
  467. package/skills/mobile-firebase/references/react-native/remote-config.md +32 -0
  468. package/skills/mobile-firebase/references/react-native/sql-connect.md +11 -0
  469. package/skills/mobile-firebase/references/react-native/storage.md +30 -0
  470. package/skills/mobile-firebase/references/react-native.md +29 -0
  471. package/skills/mobile-flutter/SKILL.md +30 -0
  472. package/skills/{flutter-improving-accessibility/SKILL.md → mobile-flutter/references/accessibility-i18n/accessibility.md} +2 -11
  473. package/skills/{flutter-setup-localization/SKILL.md → mobile-flutter/references/accessibility-i18n/localization.md} +2 -11
  474. package/skills/mobile-flutter/references/accessibility-i18n.md +8 -0
  475. package/skills/{dart-3-updates/SKILL.md → mobile-flutter/references/dart/dart-3.md} +1 -8
  476. package/skills/{effective-dart/SKILL.md → mobile-flutter/references/dart/effective-dart.md} +1 -8
  477. package/skills/{dart-use-pattern-matching/SKILL.md → mobile-flutter/references/dart/pattern-matching/GUIDE.md} +2 -18
  478. package/skills/mobile-flutter/references/dart.md +9 -0
  479. package/skills/{flutter-caching-data/SKILL.md → mobile-flutter/references/data/caching.md} +2 -11
  480. package/skills/{flutter-working-with-databases/SKILL.md → mobile-flutter/references/data/databases.md} +2 -11
  481. package/skills/{flutter-use-http-package/SKILL.md → mobile-flutter/references/data/http.md} +2 -11
  482. package/skills/{flutter-implement-json-serialization/SKILL.md → mobile-flutter/references/data/json-serialization.md} +2 -11
  483. package/skills/mobile-flutter/references/data.md +10 -0
  484. package/skills/{flutter-interoperating-with-native-apis/SKILL.md → mobile-flutter/references/native/native-apis.md} +2 -11
  485. package/skills/{flutter-embedding-native-views/SKILL.md → mobile-flutter/references/native/native-views.md} +2 -11
  486. package/skills/{flutter-building-plugins/SKILL.md → mobile-flutter/references/native/plugins.md} +2 -11
  487. package/skills/mobile-flutter/references/native.md +9 -0
  488. package/skills/{flutter-reducing-app-size/SKILL.md → mobile-flutter/references/performance/app-size.md} +2 -11
  489. package/skills/{flutter-handling-concurrency/SKILL.md → mobile-flutter/references/performance/concurrency.md} +2 -11
  490. package/skills/mobile-flutter/references/performance.md +8 -0
  491. package/skills/{flutter-setting-up-on-macos/SKILL.md → mobile-flutter/references/setup/macos.md} +2 -11
  492. package/skills/mobile-flutter/references/setup.md +7 -0
  493. package/skills/{flutter-animating-apps/SKILL.md → mobile-flutter/references/ui/animations.md} +2 -11
  494. package/skills/{flutter-building-forms/SKILL.md → mobile-flutter/references/ui/forms.md} +2 -11
  495. package/skills/{flutter-adding-home-screen-widgets/SKILL.md → mobile-flutter/references/ui/home-screen-widgets.md} +2 -11
  496. package/skills/{flutter-building-layouts/SKILL.md → mobile-flutter/references/ui/layouts.md} +2 -11
  497. package/skills/{flutter-build-responsive-layout/SKILL.md → mobile-flutter/references/ui/responsive-layout.md} +2 -11
  498. package/skills/{flutter-setup-declarative-routing/SKILL.md → mobile-flutter/references/ui/routing.md} +2 -11
  499. package/skills/{flutter-theming-apps/SKILL.md → mobile-flutter/references/ui/theming.md} +2 -11
  500. package/skills/{flutter-add-widget-preview/SKILL.md → mobile-flutter/references/ui/widget-previews.md} +2 -11
  501. package/skills/mobile-flutter/references/ui.md +14 -0
  502. package/skills/mobile-ios/SKILL.md +25 -0
  503. package/skills/mobile-ios/references/data-networking.md +70 -0
  504. package/skills/mobile-ios/references/performance-release.md +37 -0
  505. package/skills/mobile-ios/references/platform-features.md +52 -0
  506. package/skills/mobile-ios/references/ui-navigation.md +64 -0
  507. package/skills/mobile-rn/SKILL.md +26 -0
  508. package/skills/mobile-rn/references/data-networking.md +59 -0
  509. package/skills/mobile-rn/references/performance-release.md +46 -0
  510. package/skills/mobile-rn/references/platform-features.md +40 -0
  511. package/skills/mobile-rn/references/ui-navigation.md +62 -0
  512. package/skills/mobile-security/SKILL.md +82 -0
  513. package/skills/mobile-security/references/android/intent-security.md +523 -0
  514. package/skills/mobile-security/references/android.md +37 -0
  515. package/skills/{flutter-secure-token-store/SKILL.md → mobile-security/references/flutter/secure-token-store.md} +1 -8
  516. package/skills/mobile-security/references/flutter.md +30 -0
  517. package/skills/mobile-security/references/ios.md +27 -0
  518. package/skills/mobile-security/references/react-native.md +29 -0
  519. package/skills/mobile-test/SKILL.md +63 -0
  520. package/skills/mobile-test/references/android/setup/GUIDE.md +183 -0
  521. package/skills/mobile-test/references/android/setup/references/android/develop/ui/compose/testing/common-patterns.md +181 -0
  522. package/skills/mobile-test/references/android/setup/references/android/studio/preview/compose-screenshot-testing.md +255 -0
  523. package/skills/mobile-test/references/android/setup/references/android/training/dependency-injection/hilt-testing.md +447 -0
  524. package/skills/mobile-test/references/android.md +83 -0
  525. package/skills/{dart-collect-coverage/SKILL.md → mobile-test/references/flutter/coverage.md} +2 -11
  526. package/skills/{dart-generate-test-mocks/SKILL.md → mobile-test/references/flutter/generate-mocks.md} +2 -11
  527. package/skills/{flutter-add-integration-test/SKILL.md → mobile-test/references/flutter/integration-tests.md} +2 -11
  528. package/skills/{dart-migrate-to-checks-package/SKILL.md → mobile-test/references/flutter/migrate-to-checks.md} +2 -13
  529. package/skills/{mockito/SKILL.md → mobile-test/references/flutter/mockito.md} +1 -8
  530. package/skills/{mocktail/SKILL.md → mobile-test/references/flutter/mocktail.md} +1 -8
  531. package/skills/{patrol-e2e-testing/SKILL.md → mobile-test/references/flutter/patrol.md} +1 -8
  532. package/skills/{testing/SKILL.md → mobile-test/references/flutter/testing-guidelines.md} +1 -8
  533. package/skills/{dart-add-unit-test/SKILL.md → mobile-test/references/flutter/unit-tests.md} +2 -11
  534. package/skills/{flutter-add-widget-test/SKILL.md → mobile-test/references/flutter/widget-tests.md} +2 -11
  535. package/skills/mobile-test/references/flutter.md +44 -0
  536. package/skills/mobile-test/references/ios.md +79 -0
  537. package/skills/mobile-test/references/react-native.md +62 -0
  538. package/skills/mobile-security-audit/SKILL.md +0 -101
  539. /package/skills/{dart-use-pattern-matching → mobile-flutter/references/dart/pattern-matching}/examples/json_patterns.dart +0 -0
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-setting-up-on-macos
3
- description: Sets up a macOS environment for Flutter development. Use when configuring a macOS machine to run, build, or deploy Flutter applications for iOS or macOS.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Thu, 12 Mar 2026 22:12:50 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-setting-up-on-macos` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Setting Up a macOS Environment for Flutter Development
13
4
 
14
5
  ## Contents
@@ -0,0 +1,7 @@
1
+ # Flutter: Environment
2
+
3
+ Setting up the development machine. Open only the guide the task needs.
4
+
5
+ | Guide | What it covers |
6
+ |---|---|
7
+ | [macos](setup/macos.md) | Sets up a macOS environment for Flutter development. |
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-animating-apps
3
- description: Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Thu, 12 Mar 2026 22:16:34 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-animating-apps` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Implementing Flutter Animations
13
4
 
14
5
  ## Contents
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-building-forms
3
- description: Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Thu, 12 Mar 2026 22:15:24 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-building-forms` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Building Validated Forms
13
4
 
14
5
  ## Contents
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-adding-home-screen-widgets
3
- description: Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Thu, 12 Mar 2026 22:23:50 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-adding-home-screen-widgets` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Implementing Flutter Home Screen Widgets
13
4
 
14
5
  ## Contents
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-building-layouts
3
- description: Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Thu, 12 Mar 2026 22:14:15 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-building-layouts` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Architecting Flutter Layouts
13
4
 
14
5
  ## Contents
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-build-responsive-layout
3
- description: Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Tue, 21 Apr 2026 20:17:40 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-build-responsive-layout` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Implementing Adaptive Layouts
13
4
 
14
5
  ## Contents
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-setup-declarative-routing
3
- description: Configure `MaterialApp.router` using a package like `go_router` for advanced URL-based navigation. Use when developing web applications or mobile apps that require specific deep linking and browser history support.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Tue, 21 Apr 2026 21:08:03 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-setup-declarative-routing` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Implementing Routing and Deep Linking
13
4
 
14
5
  ## Contents
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-theming-apps
3
- description: Customizes the visual appearance of a Flutter app using the theming system. Use when defining global styles, colors, or typography for an application.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Thu, 12 Mar 2026 22:14:47 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-theming-apps` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Implementing Flutter Theming and Adaptive Design
13
4
 
14
5
  ## Contents
@@ -1,14 +1,5 @@
1
- ---
2
- name: flutter-add-widget-preview
3
- description: Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.
4
- metadata:
5
- model: models/gemini-3.1-pro-preview
6
- last_modified: Tue, 21 Apr 2026 20:05:23 GMT
7
- routing: manual
8
- stacks: [flutter]
9
- source: https://github.com/flutter/skills
10
- license: BSD-3-Clause
11
- ---
1
+ > Adapted from the `flutter-add-widget-preview` skill in [flutter/skills](https://github.com/flutter/skills) (BSD-3-Clause). See `THIRD_PARTY_NOTICES.md`.
2
+
12
3
  # Previewing Flutter Widgets
13
4
 
14
5
  ## Contents
@@ -0,0 +1,14 @@
1
+ # Flutter: UI, layout and navigation
2
+
3
+ Layouts, forms, animations, theming, routing and widgets outside the app. Open only the guide the task needs.
4
+
5
+ | Guide | What it covers |
6
+ |---|---|
7
+ | [layouts](ui/layouts.md) | Builds Flutter layouts using the constraint system and layout widgets. |
8
+ | [responsive-layout](ui/responsive-layout.md) | Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. |
9
+ | [forms](ui/forms.md) | Builds Flutter forms with validation and user input handling. |
10
+ | [animations](ui/animations.md) | Implements animated effects, transitions, and motion in a Flutter app. |
11
+ | [theming](ui/theming.md) | Customizes the visual appearance of a Flutter app using the theming system. |
12
+ | [routing](ui/routing.md) | Configure `MaterialApp.router` using a package like `go_router` for advanced URL-based navigation. |
13
+ | [widget-previews](ui/widget-previews.md) | Adds interactive widget previews to the project using the previews.dart system. |
14
+ | [home-screen-widgets](ui/home-screen-widgets.md) | Adds home screen widgets to a Flutter app for Android and iOS. |
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: mobile-ios
3
+ description: Builds native iOS apps in Swift — SwiftUI and UIKit screens, state and data flow, NavigationStack, lists, forms and accessibility; networking with URLSession and Codable, persistence with SwiftData, Core Data, files and the Keychain; permissions, push notifications, universal links, background tasks, widgets, App Intents and StoreKit 2 purchases; performance with Instruments and MetricKit; and release with signing, TestFlight and App Store Connect. Use when writing or changing native iOS code, adding a platform feature, preparing a build for TestFlight or the App Store, or when the user asks how to do something on iOS, even if they do not name the framework.
4
+ intents: [performance, release, accessibility]
5
+ stacks: [ios]
6
+ ---
7
+
8
+ # Mobile iOS
9
+
10
+ Guides for building native iOS apps. Cross-platform topics live in their own skills and have iOS references there: architecture in `mobile-architecture`, tests in `mobile-test`, debugging (Xcode, CocoaPods, crashes) in `mobile-debug`, code review in `mobile-code-review`, security in `mobile-security` and Firebase in `mobile-firebase`.
11
+
12
+ ## Pick the topic
13
+
14
+ | Topic | Read |
15
+ |---|---|
16
+ | SwiftUI and UIKit screens, navigation, lists, forms, accessibility, localization | [references/ui-navigation.md](references/ui-navigation.md) |
17
+ | Networking, JSON, persistence, caching, offline | [references/data-networking.md](references/data-networking.md) |
18
+ | Permissions, push, universal links, background work, widgets, App Intents, in-app purchases | [references/platform-features.md](references/platform-features.md) |
19
+ | Performance, app size, signing, TestFlight and App Store release | [references/performance-release.md](references/performance-release.md) |
20
+
21
+ ## Before writing code
22
+
23
+ - Check the deployment target (`IPHONEOS_DEPLOYMENT_TARGET`), the Swift language version and the Xcode version: many APIs in these guides need iOS 16 or 17, and Swift 6 changes concurrency checking.
24
+ - Follow the project: SwiftUI or UIKit, its architecture, and dependencies already in `Package.resolved` or `Podfile.lock`.
25
+ - Apple's requirements change every year (minimum SDK for uploads, privacy manifests, review guidelines); check the current ones instead of relying on these guides for dates or version numbers.
@@ -0,0 +1,70 @@
1
+ # iOS data and networking
2
+
3
+ ## HTTP with URLSession
4
+
5
+ ```swift
6
+ struct APIClient {
7
+ let baseURL: URL
8
+ let session: URLSession = .shared
9
+ let decoder: JSONDecoder = {
10
+ let decoder = JSONDecoder()
11
+ decoder.keyDecodingStrategy = .convertFromSnakeCase
12
+ decoder.dateDecodingStrategy = .iso8601
13
+ return decoder
14
+ }()
15
+
16
+ func get<T: Decodable>(_ path: String, as type: T.Type = T.self) async throws -> T {
17
+ let (data, response) = try await session.data(from: baseURL.appending(path: path))
18
+ guard let http = response as? HTTPURLResponse, (200..<300).contains(http.statusCode) else {
19
+ throw APIError.badStatus((response as? HTTPURLResponse)?.statusCode ?? -1)
20
+ }
21
+ return try decoder.decode(T.self, from: data)
22
+ }
23
+ }
24
+ ```
25
+
26
+ The names are illustrative.
27
+
28
+ - `URLSession` does not throw for 4xx/5xx responses: check the status code.
29
+ - Async requests are cancelled when their `Task` is cancelled; SwiftUI's `.task` cancels when the view disappears.
30
+ - Configure timeouts on a custom `URLSessionConfiguration` instead of relying on defaults for slow endpoints.
31
+ - Decoding errors (`DecodingError`) should be logged with the key path; silently returning empty data hides API contract changes.
32
+ - Large downloads and uploads that must continue when the app is suspended use a background `URLSessionConfiguration`.
33
+ - Observe connectivity with `NWPathMonitor` to show offline state, but still handle request failures: reachability is only a hint.
34
+
35
+ ## Persistence
36
+
37
+ | Data | Store |
38
+ |---|---|
39
+ | Secrets, tokens, credentials | Keychain |
40
+ | Small preferences | `UserDefaults` (or `@AppStorage` in SwiftUI) |
41
+ | Structured app data | SwiftData (iOS 17+) or Core Data |
42
+ | Documents, media, caches | Files in Application Support, Documents or Caches, with the right Data Protection class |
43
+ | HTTP response caching | `URLCache` with proper cache headers |
44
+
45
+ ### SwiftData
46
+
47
+ ```swift
48
+ @Model
49
+ final class Note {
50
+ var title: String
51
+ var createdAt: Date
52
+ init(title: String, createdAt: Date = .now) { self.title = title; self.createdAt = createdAt }
53
+ }
54
+
55
+ // App: .modelContainer(for: Note.self)
56
+ // View: @Query(sort: \Note.createdAt, order: .reverse) private var notes: [Note]
57
+ // Writes: @Environment(\.modelContext) private var context; context.insert(Note(title: "..."))
58
+ ```
59
+
60
+ - Plan migrations (`VersionedSchema` and `SchemaMigrationPlan`) before shipping schema changes.
61
+ - Model contexts are not shared across concurrency domains; use a `ModelActor` for background work.
62
+ - Core Data projects keep Core Data unless there is a reason to migrate; both can coexist during a transition.
63
+
64
+ ## Offline-first
65
+
66
+ Read from local storage, refresh from the network into it, and show the cached data while refreshing. Queue writes made offline and retry them with backoff; show pending state to the user.
67
+
68
+ ## Images
69
+
70
+ `AsyncImage` has no persistent cache and decodes at full size. For feeds, use an image library the project already has, or downsample with ImageIO and cache the result.
@@ -0,0 +1,37 @@
1
+ # iOS performance and release
2
+
3
+ ## Measure before optimizing
4
+
5
+ - **Instruments:** Time Profiler for CPU, Allocations and Leaks for memory, Hangs for main-thread blocks, the SwiftUI template for view updates. Profile a Release build on a device, not the simulator.
6
+ - **In the field:** Xcode Organizer (launch time, hangs, memory, energy, disk writes) and MetricKit (`MXMetricManager`) for diagnostics from users' devices.
7
+
8
+ ## Common fixes
9
+
10
+ - **Launch:** defer SDK initialization and data loading that the first screen does not need; avoid synchronous work in the `App` initializer or `application(_:didFinishLaunchingWithOptions:)`.
11
+ - **Hangs:** move disk, network, JSON decoding and image decoding off the main actor.
12
+ - **Scrolling:** stable identity in lists, no heavy work in `body` or `cellForItemAt`, downsampled images.
13
+ - **Memory:** break retain cycles (`[weak self]`, weak delegates), bound in-memory caches and clear them on memory warnings.
14
+ - **Size:** check the App Thinning size report from an archive export; keep images in asset catalogs, remove unused resources and dependencies.
15
+
16
+ ## Versioning and signing
17
+
18
+ - `CFBundleShortVersionString` (Marketing Version) is the user-facing version; `CFBundleVersion` (build number) must increase for every upload of the same version.
19
+ - Automatic signing is simplest for teams; CI usually uses manual signing or an App Store Connect API key with `xcodebuild -allowProvisioningUpdates`. Keep certificates and keys in the CI secret store, never in the repository.
20
+ - Each extension (widgets, notification services) needs its own bundle identifier, prefixed by the app's, and a matching profile.
21
+
22
+ ## Build and upload
23
+
24
+ ```bash
25
+ xcodebuild -scheme App -configuration Release -archivePath build/App.xcarchive archive
26
+ xcodebuild -exportArchive -archivePath build/App.xcarchive -exportOptionsPlist ExportOptions.plist -exportPath build/export
27
+ ```
28
+
29
+ - Upload with Xcode Organizer, Transporter, fastlane, or a tool based on the App Store Connect API; check which command-line upload method Apple currently supports before scripting it.
30
+ - Keep dSYMs for crash symbolication (upload them to the crash reporter).
31
+
32
+ ## TestFlight and App Store
33
+
34
+ - Internal testers (members of the App Store Connect team) get builds without review; external testers need a Beta App Review for the first build of a version.
35
+ - Before submitting: screenshots and metadata, privacy details (the App Privacy section must match the privacy manifest and SDKs), export compliance (`ITSAppUsesNonExemptEncryption` in `Info.plist` avoids the question on each upload), sign-in credentials for the reviewer when the app requires an account, and account deletion in the app if it allows creating accounts.
36
+ - Check the current App Store Review Guidelines and the minimum Xcode/SDK required for uploads; both change regularly.
37
+ - Use phased release for updates to limit the impact of a bad build.
@@ -0,0 +1,52 @@
1
+ # iOS platform features
2
+
3
+ ## Permissions
4
+
5
+ - Every protected API needs its usage description in `Info.plist` (`NSCameraUsageDescription`, `NSLocationWhenInUseUsageDescription`, `NSPhotoLibraryUsageDescription`...) with text that explains the benefit; a missing key crashes the app when the API is used.
6
+ - Ask in context, when the user starts the feature, and handle denied and restricted states with a path to Settings (`UIApplication.openSettingsURLString`).
7
+ - Photo picking with `PhotosPicker` (SwiftUI) or `PHPickerViewController` needs no library permission.
8
+
9
+ ## Push notifications
10
+
11
+ - Enable the Push Notifications capability; request authorization with `UNUserNotificationCenter.current().requestAuthorization(options:)`; register with `UIApplication.shared.registerForRemoteNotifications()`.
12
+ - Implement `UNUserNotificationCenterDelegate` to show notifications in the foreground and handle taps.
13
+ - Rich media needs a Notification Service Extension; silent pushes need the Background Modes → Remote notifications capability and are throttled by the system.
14
+ - With Firebase Cloud Messaging, follow `mobile-firebase`.
15
+
16
+ ## Universal links and URL schemes
17
+
18
+ - Universal links: add the Associated Domains capability (`applinks:example.com`) and host `apple-app-site-association` on the domain over HTTPS.
19
+ - Handle incoming URLs with `.onOpenURL` (SwiftUI) or the scene delegate, route through the navigation model, and validate parameters before acting.
20
+ - Custom URL schemes can be claimed by other apps; do not use them for authentication callbacks or privileged actions.
21
+
22
+ ## Background work
23
+
24
+ - `BGTaskScheduler` with `BGAppRefreshTask` for short refreshes and `BGProcessingTask` for longer maintenance; register identifiers in `Info.plist` (`BGTaskSchedulerPermittedIdentifiers`) and schedule again after each run. The system decides when tasks run.
25
+ - Finishing a short task after the app goes to background: `beginBackgroundTask(withName:)` with the matching `endBackgroundTask`.
26
+
27
+ ## Widgets, Live Activities and App Intents
28
+
29
+ - Widgets use WidgetKit in an extension target with a `TimelineProvider`; share data with the app through an App Group container, and reload timelines from the app when data changes.
30
+ - Live Activities use ActivityKit and need `NSSupportsLiveActivities` in the app's `Info.plist`.
31
+ - App Intents expose actions to Shortcuts, Siri, Spotlight, widgets and controls; define `AppIntent` types and `AppShortcutsProvider` for discoverable shortcuts.
32
+
33
+ ## In-app purchases with StoreKit 2
34
+
35
+ ```swift
36
+ let products = try await Product.products(for: ["com.example.pro.monthly"])
37
+ let result = try await products[0].purchase()
38
+ if case .success(let verification) = result, case .verified(let transaction) = verification {
39
+ // unlock content, then:
40
+ await transaction.finish()
41
+ }
42
+ ```
43
+
44
+ - Start listening to `Transaction.updates` at launch to catch renewals, refunds and purchases made on other devices.
45
+ - Only unlock content for `.verified` transactions; validate entitlements on your server for anything valuable.
46
+ - Test with a StoreKit configuration file in Xcode, then in the sandbox and TestFlight.
47
+ - Check the App Store Review Guidelines on digital goods before choosing a payment method.
48
+
49
+ ## Privacy
50
+
51
+ - Keep the app's privacy manifest (`PrivacyInfo.xcprivacy`) accurate: data collected, tracking domains and required-reason APIs. Third-party SDKs must ship their own.
52
+ - Request App Tracking Transparency (`ATTrackingManager`) before tracking across apps, with `NSUserTrackingUsageDescription`.
@@ -0,0 +1,64 @@
1
+ # iOS UI and navigation
2
+
3
+ ## SwiftUI state
4
+
5
+ | Wrapper | Use for |
6
+ |---|---|
7
+ | `@State` | Value state owned by the view; also owns an `@Observable` model the view creates |
8
+ | `@Binding` | Two-way access to state owned by a parent |
9
+ | `@Observable` class (iOS 17+) | A model; views update only for properties they read |
10
+ | `@Bindable` | Bindings to properties of an `@Observable` model the view does not own |
11
+ | `ObservableObject` + `@StateObject` / `@ObservedObject` | Models before iOS 17: `@StateObject` where created, `@ObservedObject` where passed in |
12
+ | `@Environment` | Values and models injected from an ancestor |
13
+ | `@FocusState` | Keyboard focus in forms |
14
+
15
+ A view must not recreate a model it does not own on every update; that resets state.
16
+
17
+ ## Navigation
18
+
19
+ ```swift
20
+ enum Route: Hashable { case order(Order.ID), settings }
21
+
22
+ struct RootView: View {
23
+ @State private var path: [Route] = []
24
+
25
+ var body: some View {
26
+ NavigationStack(path: $path) {
27
+ OrdersList(onSelect: { path.append(.order($0)) })
28
+ .navigationDestination(for: Route.self) { route in
29
+ switch route {
30
+ case .order(let id): OrderDetail(id: id)
31
+ case .settings: SettingsView()
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ ```
38
+
39
+ - `NavigationStack` with a path (iOS 16+) makes deep links and state restoration possible; `NavigationView` is deprecated.
40
+ - Pass identifiers in routes, not whole models.
41
+ - Sheets and full-screen covers are driven by optional state (`.sheet(item:)`), not booleans plus separate data.
42
+
43
+ ## Lists and forms
44
+
45
+ - `List` and `LazyVStack` need stable identity: `Identifiable` models, not indices, for data that changes.
46
+ - Heavy work does not belong in `body`: format, sort and filter in the model.
47
+ - Forms: `Form`, `TextField` with `.textContentType` and `.keyboardType`, `@FocusState` to move between fields and dismiss the keyboard, validation in the model.
48
+
49
+ ## UIKit interop
50
+
51
+ - Use a UIKit view in SwiftUI with `UIViewRepresentable` / `UIViewControllerRepresentable`, coordinating delegates through a `Coordinator`.
52
+ - Embed SwiftUI in UIKit with `UIHostingController`.
53
+ - In UIKit, prefer diffable data sources and compositional layouts for collections.
54
+
55
+ ## Accessibility and localization
56
+
57
+ - Support Dynamic Type: system text styles (`.font(.body)`), no fixed heights around text.
58
+ - Label icon-only controls (`.accessibilityLabel`), group related elements, and keep touch targets at least 44×44 points.
59
+ - Test with VoiceOver and the largest accessibility text sizes.
60
+ - Localize user-facing strings with String Catalogs (`.xcstrings`) or `String(localized:)`; SwiftUI `Text("key")` literals are localizable automatically.
61
+
62
+ ## Previews
63
+
64
+ `#Preview { OrdersList(orders: .fixtures) }` with fixture data and injected fake services, so previews never hit the network.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: mobile-rn
3
+ description: Builds React Native and Expo apps in TypeScript — navigation with React Navigation or Expo Router, lists, forms, styling, gestures and animations with Reanimated, safe areas, accessibility and localization; networking with TanStack Query, response validation, persistence with MMKV, AsyncStorage, SQLite and secure storage; permissions, push notifications, deep links, background tasks, native modules and config plugins; performance with Hermes and the React profiler; and release with EAS Build, EAS Submit and EAS Update or bare Gradle and Xcode builds. Use when writing or changing React Native code, adding a native capability, configuring Expo, preparing a store build or an over-the-air update, or when the user asks how to do something in React Native, even if they do not name the library.
4
+ intents: [performance, release, accessibility]
5
+ stacks: [react-native]
6
+ ---
7
+
8
+ # Mobile React Native
9
+
10
+ Guides for building React Native and Expo apps. Cross-platform topics live in their own skills and have React Native references there: architecture and state in `mobile-architecture`, tests in `mobile-test`, debugging (Metro, native modules, builds) in `mobile-debug`, code review in `mobile-code-review`, security in `mobile-security` and Firebase in `mobile-firebase`.
11
+
12
+ ## Pick the topic
13
+
14
+ | Topic | Read |
15
+ |---|---|
16
+ | Navigation, lists, forms, styling, gestures, animations, accessibility, localization | [references/ui-navigation.md](references/ui-navigation.md) |
17
+ | Networking, server state, validation, persistence, offline | [references/data-networking.md](references/data-networking.md) |
18
+ | Permissions, push, deep links, background work, native modules, config plugins | [references/platform-features.md](references/platform-features.md) |
19
+ | Performance, bundle, EAS Build, store submission and over-the-air updates | [references/performance-release.md](references/performance-release.md) |
20
+
21
+ ## Before writing code
22
+
23
+ - Detect the setup: Expo (managed with Continuous Native Generation, or with committed `android/` and `ios/`) or bare React Native; the React Native and Expo SDK versions; whether the New Architecture is enabled.
24
+ - Install libraries with `npx expo install` in Expo projects, so versions match the SDK.
25
+ - Libraries with native code need a new native build (a development build in Expo); they do not work in Expo Go unless the Expo SDK includes them.
26
+ - Native requirements of each platform still apply; see `mobile-ios` and `mobile-android` for store and platform specifics.
@@ -0,0 +1,59 @@
1
+ # React Native data and networking
2
+
3
+ ## Server state with TanStack Query
4
+
5
+ ```tsx
6
+ const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 30_000, retry: 2 } } });
7
+
8
+ export function App() {
9
+ return (
10
+ <QueryClientProvider client={queryClient}>
11
+ <RootNavigator />
12
+ </QueryClientProvider>
13
+ );
14
+ }
15
+
16
+ export const useOrder = (orderId: string) =>
17
+ useQuery({ queryKey: ['orders', orderId], queryFn: () => api.orders.get(orderId) });
18
+
19
+ export function useCancelOrder() {
20
+ const queryClient = useQueryClient();
21
+ return useMutation({
22
+ mutationFn: api.orders.cancel,
23
+ onSuccess: () => queryClient.invalidateQueries({ queryKey: ['orders'] }),
24
+ });
25
+ }
26
+ ```
27
+
28
+ The names are illustrative. Use RTK Query instead if the project is built on Redux Toolkit.
29
+
30
+ - React Native has no window focus or online events: wire `focusManager` to `AppState` and `onlineManager` to NetInfo so queries refetch when the app returns to the foreground or reconnects.
31
+ - Keys include every variable the request depends on.
32
+
33
+ ## HTTP client
34
+
35
+ - One typed client on `fetch` (or axios, if the project uses it) with a base URL, auth header injection, token refresh and timeouts. `fetch` has no timeout: use an `AbortController` with a timer.
36
+ - `fetch` does not reject on 4xx/5xx; check `response.ok`.
37
+ - Validate or map responses at the boundary (for example with zod) instead of `as` casts in screens.
38
+ - Base URLs and public config come from app config or EAS environment variables; secrets stay on the backend.
39
+
40
+ ## Persistence
41
+
42
+ | Data | Store |
43
+ |---|---|
44
+ | Tokens, credentials | `expo-secure-store` or `react-native-keychain` (Keychain/Keystore) |
45
+ | Preferences, small key-value data | MMKV (`react-native-mmkv`) or AsyncStorage |
46
+ | Relational or large data | SQLite (`expo-sqlite` or the library the project uses), optionally with an ORM such as Drizzle |
47
+ | Files and media | `expo-file-system` or the file library the project uses |
48
+ | Query cache across launches | TanStack Query persisters, for data that is safe to show stale |
49
+
50
+ AsyncStorage is unencrypted and asynchronous; do not store secrets there, and avoid large values.
51
+
52
+ ## Offline
53
+
54
+ - Detect connectivity with `@react-native-community/netinfo` to show offline state, but still handle request failures.
55
+ - For offline-first flows, read from local storage, sync from the network into it, and queue writes with retry and a visible pending state.
56
+
57
+ ## Real-time
58
+
59
+ WebSockets or server-sent updates must pause or reconnect with `AppState` changes; the OS suspends connections in the background.
@@ -0,0 +1,46 @@
1
+ # React Native performance and release
2
+
3
+ ## Measure before optimizing
4
+
5
+ - The React profiler in React Native DevTools (or the DevTools version for the project's React Native release) to find components that re-render.
6
+ - The performance monitor for JavaScript and UI frame rates; native profilers (Instruments, Android Studio) for native modules and startup.
7
+ - Test performance in release builds on real devices: development builds are much slower.
8
+
9
+ ## Common fixes
10
+
11
+ - **Re-renders:** narrow context values, memoize expensive children with stable props, select store slices, keep fast-changing state local.
12
+ - **Lists:** virtualized lists with stable keys and memoized rows (see `ui-navigation.md`).
13
+ - **JavaScript thread:** move animations to Reanimated worklets; defer heavy work until after interactions; avoid large synchronous JSON parsing during navigation.
14
+ - **Startup:** keep Hermes enabled, avoid importing heavy modules at the entry point, show the first screen before loading optional data.
15
+ - **Bundle and size:** remove unused dependencies, check which libraries pull large native SDKs, and remove `console.log` in release builds.
16
+
17
+ ## Versioning
18
+
19
+ - User-facing version: `version` in the Expo app config, or the native version fields in bare projects (`versionName` on Android, `MARKETING_VERSION` on iOS).
20
+ - Build numbers: iOS `buildNumber` and Android `versionCode` must increase for every store upload. EAS can manage them with `appVersionSource: "remote"` and `autoIncrement` in `eas.json`.
21
+
22
+ ## Building
23
+
24
+ **Expo / EAS:**
25
+
26
+ ```bash
27
+ eas build --platform ios --profile production
28
+ eas build --platform android --profile production
29
+ eas submit --platform ios --latest
30
+ ```
31
+
32
+ - Build profiles live in `eas.json` (development, preview, production); credentials are managed by EAS or provided by the team.
33
+ - Environment variables per environment are configured in EAS; values available to the app code are public.
34
+
35
+ **Bare React Native:** `./gradlew bundleRelease` in `android/` for an AAB, and an Xcode archive for iOS; store requirements and signing follow `mobile-android` and `mobile-ios`.
36
+
37
+ ## Over-the-air updates
38
+
39
+ - EAS Update (or the update service the project uses) ships JavaScript and asset changes only. Anything that changes native code, native config or config plugins needs a new store build.
40
+ - `runtimeVersion` must change whenever the native layer changes, so an update never reaches a binary it is incompatible with; prefer a policy such as `fingerprint` or `appVersion` over manual values when possible.
41
+ - Publish to a preview channel first, then roll out to production; keep a way to roll back.
42
+ - Store rules restrict what updates may change (for example, no new features that bypass review on iOS); check the current guidelines.
43
+
44
+ ## Crash reporting
45
+
46
+ Upload source maps for release bundles (and dSYMs and R8 mappings for native code) to the crash reporter, so JavaScript and native stack traces are readable.
@@ -0,0 +1,40 @@
1
+ # React Native platform features
2
+
3
+ ## Permissions
4
+
5
+ - Expo modules expose permission hooks and methods (`useCameraPermissions`, `Location.requestForegroundPermissionsAsync`...); bare projects often use `react-native-permissions`.
6
+ - Declare iOS usage descriptions and Android permissions in native config: in Expo, through the module's config plugin options or `ios.infoPlist` and `android.permissions` in the app config; in bare projects, in `Info.plist` and `AndroidManifest.xml`.
7
+ - Ask in context, handle "denied" and "blocked", and link to settings with `Linking.openSettings()`.
8
+
9
+ ## Push notifications
10
+
11
+ - **Expo:** `expo-notifications` for permissions, tokens, foreground handling (`setNotificationHandler`) and taps; the Expo push service or your own backend with FCM/APNs credentials. Push does not work in Expo Go on every platform and SDK version; use a development build.
12
+ - **Firebase Cloud Messaging:** follow `mobile-firebase` (React Native Firebase).
13
+ - Android 13+ needs the notification permission; iOS needs the Push Notifications capability and an APNs key.
14
+ - Register background handlers at the app entry, outside components.
15
+
16
+ ## Deep links
17
+
18
+ - Custom scheme: `scheme` in the Expo app config, or intent filters and URL types in bare projects.
19
+ - Universal links and app links: `ios.associatedDomains` and `android.intentFilters` with `autoVerify` in Expo, plus the `apple-app-site-association` and `assetlinks.json` files on your domain.
20
+ - Route links through the navigator's linking configuration and validate parameters before acting.
21
+
22
+ ## Background work
23
+
24
+ - Periodic background work is limited and scheduled by the OS. In Expo, use the background task module of the SDK in use (`expo-background-task` replaced `expo-background-fetch`; check the SDK docs) with `expo-task-manager`.
25
+ - Uploads and long jobs that must finish belong on the server or in native background transfer APIs, not in JavaScript timers.
26
+
27
+ ## Native modules and config
28
+
29
+ - **Expo Modules API:** write native modules in Swift and Kotlin with a typed JavaScript interface; works in Expo and bare projects.
30
+ - **Turbo Modules / Fabric components:** the New Architecture native module system in bare projects; define the spec in TypeScript and generate code with Codegen.
31
+ - **Config plugins:** change native projects (Info.plist, manifest, Gradle, Podfile) reproducibly in Expo projects with Continuous Native Generation. Do not hand-edit `android/` and `ios/` in such projects; changes are lost on `npx expo prebuild --clean`.
32
+ - Wrap each native module once in a typed TypeScript API.
33
+
34
+ ## Device capabilities
35
+
36
+ Camera (`expo-camera` or `react-native-vision-camera`), location (`expo-location`), media library, biometrics (`expo-local-authentication`), haptics and sensors: prefer the libraries the project already uses, check that they support the New Architecture when it is enabled, and add their permissions.
37
+
38
+ ## In-app purchases
39
+
40
+ Use a maintained library (for example RevenueCat's SDK or `react-native-iap`) or the store APIs through native modules; verify purchases and entitlements on a server, and test with store sandbox accounts. Store rules for digital goods are in `mobile-ios` and `mobile-android`.