@kood/claude-code 0.6.6 → 0.7.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 (170) hide show
  1. package/dist/index.js +7 -1
  2. package/package.json +1 -1
  3. package/templates/.claude/agents/analyst.md +5 -0
  4. package/templates/.claude/agents/architect.md +5 -0
  5. package/templates/.claude/agents/build-fixer.md +1 -0
  6. package/templates/.claude/agents/code-reviewer.md +1 -0
  7. package/templates/.claude/agents/critic.md +4 -0
  8. package/templates/.claude/agents/deep-executor.md +1 -0
  9. package/templates/.claude/agents/dependency-manager.md +2 -0
  10. package/templates/.claude/agents/deployment-validator.md +2 -0
  11. package/templates/.claude/agents/designer.md +2 -0
  12. package/templates/.claude/agents/document-writer.md +3 -0
  13. package/templates/.claude/agents/explore.md +1 -0
  14. package/templates/.claude/agents/git-operator.md +2 -0
  15. package/templates/.claude/agents/implementation-executor.md +2 -0
  16. package/templates/.claude/agents/ko-to-en-translator.md +3 -0
  17. package/templates/.claude/agents/lint-fixer.md +2 -0
  18. package/templates/.claude/agents/planner.md +3 -0
  19. package/templates/.claude/agents/pm.md +349 -0
  20. package/templates/.claude/agents/qa-tester.md +1 -0
  21. package/templates/.claude/agents/refactor-advisor.md +4 -0
  22. package/templates/.claude/agents/researcher.md +9 -1
  23. package/templates/.claude/agents/scientist.md +1 -0
  24. package/templates/.claude/agents/security-reviewer.md +1 -0
  25. package/templates/.claude/agents/tdd-guide.md +1 -0
  26. package/templates/.claude/agents/vision.md +1 -0
  27. package/templates/.claude/instructions/agent-patterns/agent-teams-usage.md +376 -0
  28. package/templates/.claude/instructions/sourcing/reliable-search.md +49 -2
  29. package/templates/.claude/scripts/agent-teams/check-availability.sh +238 -0
  30. package/templates/.claude/scripts/agent-teams/setup-tmux.sh +125 -0
  31. package/templates/.claude/skills/agent-teams-setup/SKILL.md +460 -0
  32. package/templates/.claude/skills/brainstorm/SKILL.md +1 -0
  33. package/templates/.claude/skills/bug-fix/SKILL.md +1 -0
  34. package/templates/.claude/skills/crawler/SKILL.md +2 -0
  35. package/templates/.claude/skills/docs-creator/SKILL.md +1 -0
  36. package/templates/.claude/skills/docs-fetch/SKILL.md +6 -4
  37. package/templates/.claude/skills/docs-refactor/SKILL.md +1 -0
  38. package/templates/.claude/skills/elon-musk/SKILL.md +1 -0
  39. package/templates/.claude/skills/execute/SKILL.md +1 -0
  40. package/templates/.claude/skills/feedback/SKILL.md +1 -0
  41. package/templates/.claude/skills/figma-to-code/SKILL.md +1 -0
  42. package/templates/.claude/skills/genius-thinking/SKILL.md +1 -0
  43. package/templates/.claude/skills/global-uiux-design/SKILL.md +1 -0
  44. package/templates/.claude/skills/korea-uiux-design/SKILL.md +1 -0
  45. package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +1 -0
  46. package/templates/.claude/skills/plan/SKILL.md +1 -0
  47. package/templates/.claude/skills/prd/SKILL.md +1 -0
  48. package/templates/.claude/skills/project-optimizer/AGENTS.md +275 -0
  49. package/templates/.claude/skills/project-optimizer/SKILL.md +375 -0
  50. package/templates/.claude/skills/project-optimizer/rules/arch-config-centralize.md +66 -0
  51. package/templates/.claude/skills/project-optimizer/rules/arch-hot-path.md +35 -0
  52. package/templates/.claude/skills/project-optimizer/rules/arch-interface-segregation.md +51 -0
  53. package/templates/.claude/skills/project-optimizer/rules/arch-module-boundary.md +42 -0
  54. package/templates/.claude/skills/project-optimizer/rules/build-cache.md +57 -0
  55. package/templates/.claude/skills/project-optimizer/rules/build-code-split.md +56 -0
  56. package/templates/.claude/skills/project-optimizer/rules/build-incremental.md +65 -0
  57. package/templates/.claude/skills/project-optimizer/rules/build-minify.md +61 -0
  58. package/templates/.claude/skills/project-optimizer/rules/build-tree-shake.md +60 -0
  59. package/templates/.claude/skills/project-optimizer/rules/code-complexity.md +65 -0
  60. package/templates/.claude/skills/project-optimizer/rules/code-dead-elimination.md +32 -0
  61. package/templates/.claude/skills/project-optimizer/rules/code-duplication.md +54 -0
  62. package/templates/.claude/skills/project-optimizer/rules/code-error-handling.md +75 -0
  63. package/templates/.claude/skills/project-optimizer/rules/code-naming.md +52 -0
  64. package/templates/.claude/skills/project-optimizer/rules/concurrency-defer-await.md +54 -0
  65. package/templates/.claude/skills/project-optimizer/rules/concurrency-parallel.md +90 -0
  66. package/templates/.claude/skills/project-optimizer/rules/concurrency-pipeline.md +68 -0
  67. package/templates/.claude/skills/project-optimizer/rules/concurrency-pool.md +68 -0
  68. package/templates/.claude/skills/project-optimizer/rules/deps-lightweight-alt.md +37 -0
  69. package/templates/.claude/skills/project-optimizer/rules/deps-peer-align.md +44 -0
  70. package/templates/.claude/skills/project-optimizer/rules/deps-security-audit.md +45 -0
  71. package/templates/.claude/skills/project-optimizer/rules/deps-unused-removal.md +25 -0
  72. package/templates/.claude/skills/project-optimizer/rules/deps-version-pin.md +40 -0
  73. package/templates/.claude/skills/project-optimizer/rules/dx-ci-speed.md +47 -0
  74. package/templates/.claude/skills/project-optimizer/rules/dx-dev-server.md +35 -0
  75. package/templates/.claude/skills/project-optimizer/rules/dx-lint-config.md +36 -0
  76. package/templates/.claude/skills/project-optimizer/rules/dx-test-coverage.md +34 -0
  77. package/templates/.claude/skills/project-optimizer/rules/dx-type-safety.md +49 -0
  78. package/templates/.claude/skills/project-optimizer/rules/io-batch-queries.md +67 -0
  79. package/templates/.claude/skills/project-optimizer/rules/io-cache-layer.md +67 -0
  80. package/templates/.claude/skills/project-optimizer/rules/io-connection-reuse.md +67 -0
  81. package/templates/.claude/skills/project-optimizer/rules/io-serialize-minimal.md +61 -0
  82. package/templates/.claude/skills/project-optimizer/rules/io-stream.md +75 -0
  83. package/templates/.claude/skills/project-optimizer/rules/memory-bounded-cache.md +65 -0
  84. package/templates/.claude/skills/project-optimizer/rules/memory-large-data.md +64 -0
  85. package/templates/.claude/skills/project-optimizer/rules/memory-lazy-init.md +78 -0
  86. package/templates/.claude/skills/project-optimizer/rules/memory-leak-prevention.md +79 -0
  87. package/templates/.claude/skills/project-optimizer/rules/memory-pool-reuse.md +70 -0
  88. package/templates/.claude/skills/ralph/SKILL.md +1 -0
  89. package/templates/.claude/skills/refactor/SKILL.md +1 -0
  90. package/templates/.claude/skills/research/SKILL.md +1 -0
  91. package/templates/.claude/skills/sql-optimizer/SKILL.md +438 -0
  92. package/templates/.claude/skills/sql-optimizer/orm-patterns.md +218 -0
  93. package/templates/.claude/skills/startup-validator/SKILL.md +1 -0
  94. package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +53 -14
  95. package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +94 -27
  96. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +42 -19
  97. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-optimistic-updates.md +109 -0
  98. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-suspense-query.md +74 -0
  99. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-use-hook.md +81 -0
  100. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-react-compiler.md +81 -0
  101. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-beforeload-auth.md +121 -0
  102. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-file-conventions.md +104 -0
  103. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-link-navigation.md +119 -0
  104. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-nested-layouts.md +155 -0
  105. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-path-params.md +89 -0
  106. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-pending-component.md +110 -0
  107. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-preload-strategy.md +91 -0
  108. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-router-context.md +120 -0
  109. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-search-params.md +114 -0
  110. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +1 -1
  111. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-error-boundaries.md +79 -0
  112. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-middleware.md +85 -0
  113. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +56 -21
  114. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-streaming.md +84 -0
  115. package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-validator.md +71 -0
  116. package/templates/.claude/skills/tauri-react-best-practices/AGENTS.md +527 -0
  117. package/templates/.claude/skills/tauri-react-best-practices/SKILL.md +571 -0
  118. package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-barrel-imports.md +140 -0
  119. package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-cargo-profile.md +96 -0
  120. package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-frontend-treeshake.md +242 -0
  121. package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-lazy-components.md +255 -0
  122. package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-remove-unused-commands.md +160 -0
  123. package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-ci-pipeline.md +269 -0
  124. package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-signing.md +207 -0
  125. package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-updater.md +226 -0
  126. package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-async-commands.md +172 -0
  127. package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-batch-commands.md +133 -0
  128. package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-binary-response.md +198 -0
  129. package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-channel-streaming.md +186 -0
  130. package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-error-handling.md +250 -0
  131. package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-type-safe.md +227 -0
  132. package/templates/.claude/skills/tauri-react-best-practices/rules/perf-derived-state.md +231 -0
  133. package/templates/.claude/skills/tauri-react-best-practices/rules/perf-functional-setstate.md +191 -0
  134. package/templates/.claude/skills/tauri-react-best-practices/rules/perf-index-maps.md +276 -0
  135. package/templates/.claude/skills/tauri-react-best-practices/rules/perf-lazy-state-init.md +196 -0
  136. package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-lifecycle.md +265 -0
  137. package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-mobile-compat.md +199 -0
  138. package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-permission-scope.md +193 -0
  139. package/templates/.claude/skills/tauri-react-best-practices/rules/react-error-boundary.md +239 -0
  140. package/templates/.claude/skills/tauri-react-best-practices/rules/react-event-listener.md +151 -0
  141. package/templates/.claude/skills/tauri-react-best-practices/rules/react-file-src.md +155 -0
  142. package/templates/.claude/skills/tauri-react-best-practices/rules/react-invoke-hook.md +139 -0
  143. package/templates/.claude/skills/tauri-react-best-practices/rules/react-optimistic-update.md +211 -0
  144. package/templates/.claude/skills/tauri-react-best-practices/rules/security-capability-split.md +205 -0
  145. package/templates/.claude/skills/tauri-react-best-practices/rules/security-csp.md +207 -0
  146. package/templates/.claude/skills/tauri-react-best-practices/rules/security-least-privilege.md +106 -0
  147. package/templates/.claude/skills/tauri-react-best-practices/rules/security-no-wildcard.md +253 -0
  148. package/templates/.claude/skills/tauri-react-best-practices/rules/security-scope-paths.md +160 -0
  149. package/templates/.claude/skills/tauri-react-best-practices/rules/state-async-mutex.md +270 -0
  150. package/templates/.claude/skills/tauri-react-best-practices/rules/state-mutex-pattern.md +265 -0
  151. package/templates/.claude/skills/tauri-react-best-practices/rules/state-react-sync.md +375 -0
  152. package/templates/.claude/skills/tauri-react-best-practices/rules/state-single-container.md +275 -0
  153. package/templates/tanstack-start/docs/architecture.md +238 -167
  154. package/templates/tanstack-start/docs/library/tanstack-router/error-handling.md +777 -38
  155. package/templates/tanstack-start/docs/library/tanstack-router/hooks.md +549 -37
  156. package/templates/tanstack-start/docs/library/tanstack-router/index.md +895 -111
  157. package/templates/tanstack-start/docs/library/tanstack-router/navigation.md +641 -43
  158. package/templates/tanstack-start/docs/library/tanstack-router/route-context.md +889 -38
  159. package/templates/tanstack-start/docs/library/tanstack-router/search-params.md +891 -29
  160. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +972 -36
  161. package/templates/tanstack-start/docs/library/tanstack-start/index.md +1525 -881
  162. package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +1099 -20
  163. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +796 -30
  164. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +953 -35
  165. package/templates/tanstack-start/docs/library/tanstack-start/setup.md +371 -15
  166. package/templates/tauri/CLAUDE.md +189 -0
  167. package/templates/tauri/docs/guides/distribution.md +261 -0
  168. package/templates/tauri/docs/guides/getting-started.md +302 -0
  169. package/templates/tauri/docs/guides/mobile.md +288 -0
  170. package/templates/tauri/docs/library/tauri/index.md +510 -0
@@ -0,0 +1,288 @@
1
+ # Mobile Development
2
+
3
+ > Tauri v2 iOS & Android 모바일 개발 가이드
4
+
5
+ ---
6
+
7
+ ## iOS Prerequisites (macOS 전용)
8
+
9
+ ```bash
10
+ # 1. Xcode 설치 (App Store → 실행하여 초기 설정 완료)
11
+
12
+ # 2. iOS Rust 타겟 추가
13
+ rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim
14
+
15
+ # 3. Homebrew 설치 (없는 경우)
16
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
17
+
18
+ # 4. CocoaPods 설치
19
+ brew install cocoapods
20
+ ```
21
+
22
+ **중요:** iOS 개발은 macOS에서만 가능합니다.
23
+
24
+ ---
25
+
26
+ ## Android Prerequisites
27
+
28
+ ### 1. Android Studio 설치
29
+
30
+ [Android Developer](https://developer.android.com/studio) 에서 다운로드
31
+
32
+ ### 2. 환경 변수 설정
33
+
34
+ ```bash
35
+ # ~/.bashrc 또는 ~/.zshrc
36
+ export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
37
+ # Windows: C:\Program Files\Android\Android Studio\jbr
38
+ # Linux: /opt/android-studio/jbr
39
+
40
+ export ANDROID_HOME="$HOME/Android/Sdk"
41
+ # macOS: $HOME/Library/Android/sdk
42
+ # Windows: %LOCALAPPDATA%\Android\Sdk
43
+
44
+ export NDK_HOME="$ANDROID_HOME/ndk/$(ls -1 $ANDROID_HOME/ndk)"
45
+ ```
46
+
47
+ ### 3. SDK Manager 설정 (Android Studio)
48
+
49
+ SDK Manager에서 설치:
50
+ - Android SDK Platform (최신)
51
+ - Android SDK Platform-Tools
52
+ - NDK (Side by side)
53
+ - Android SDK Build-Tools
54
+ - Android SDK Command-line Tools
55
+
56
+ ### 4. Rust 타겟 추가
57
+
58
+ ```bash
59
+ rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
60
+ ```
61
+
62
+ ---
63
+
64
+ ## 프로젝트 초기화
65
+
66
+ ```bash
67
+ # iOS 프로젝트 초기화
68
+ npx tauri ios init
69
+
70
+ # Android 프로젝트 초기화
71
+ npx tauri android init
72
+ ```
73
+
74
+ **생성되는 파일:**
75
+ ```
76
+ src-tauri/
77
+ ├── gen/
78
+ │ ├── apple/ # Xcode 프로젝트
79
+ │ └── android/ # Android Studio 프로젝트
80
+ ```
81
+
82
+ ---
83
+
84
+ ## 개발 모드
85
+
86
+ ### iOS
87
+
88
+ ```bash
89
+ # 시뮬레이터에서 실행
90
+ npx tauri ios dev
91
+
92
+ # Xcode에서 열기 (디바이스 선택, 디버깅)
93
+ npx tauri ios dev --open
94
+
95
+ # 물리 디바이스 연결 시 IP 지정
96
+ npx tauri ios dev --host
97
+ ```
98
+
99
+ **Web Inspector:** Safari → Develop 메뉴 → 디바이스/시뮬레이터 선택
100
+
101
+ ### Android
102
+
103
+ ```bash
104
+ # 에뮬레이터에서 실행
105
+ npx tauri android dev
106
+
107
+ # Android Studio에서 열기
108
+ npx tauri android dev --open
109
+
110
+ # 물리 디바이스 연결 시
111
+ npx tauri android dev --host
112
+ ```
113
+
114
+ **Web Inspector:** Chrome → `chrome://inspect` → Remote Devices
115
+
116
+ ---
117
+
118
+ ## 모바일 빌드
119
+
120
+ ### iOS
121
+
122
+ ```bash
123
+ # 릴리스 빌드 (IPA)
124
+ npx tauri ios build
125
+
126
+ # App Store 제출용
127
+ npx tauri ios build --export-method app-store-connect
128
+ ```
129
+
130
+ **IPA 위치:** `src-tauri/gen/apple/build/arm64/$APPNAME.ipa`
131
+
132
+ ### Android
133
+
134
+ ```bash
135
+ # AAB (Google Play 권장)
136
+ npx tauri android build -- --aab
137
+
138
+ # APK (사이드로딩/테스트)
139
+ npx tauri android build -- --apk
140
+
141
+ # 특정 아키텍처만
142
+ npx tauri android build -- --aab --target aarch64
143
+ ```
144
+
145
+ **AAB 위치:** `gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab`
146
+
147
+ ---
148
+
149
+ ## 플랫폼별 설정
150
+
151
+ ```json
152
+ // tauri.android.conf.json (Android 전용 오버라이드)
153
+ {
154
+ "bundle": {
155
+ "android": {
156
+ "minSdkVersion": 24,
157
+ "versionCode": 1
158
+ }
159
+ }
160
+ }
161
+ ```
162
+
163
+ ```json
164
+ // tauri.ios.conf.json (iOS 전용 오버라이드)
165
+ {
166
+ "bundle": {
167
+ "iOS": {}
168
+ }
169
+ }
170
+ ```
171
+
172
+ ---
173
+
174
+ ## 앱 아이콘
175
+
176
+ ```bash
177
+ # 플랫폼 초기화 후 아이콘 생성
178
+ npx tauri icon /path/to/app-icon.png
179
+
180
+ # iOS 배경색 지정
181
+ npx tauri icon /path/to/app-icon.png -- --ios-color '#ffffff'
182
+ ```
183
+
184
+ **권장:** 1024x1024 PNG, 알파 채널 포함
185
+
186
+ ---
187
+
188
+ ## 앱 배포
189
+
190
+ ### iOS App Store
191
+
192
+ 1. **Apple Developer Program** 등록 ($99/년)
193
+ 2. **App Store Connect** 에서 앱 등록 (Bundle ID = `tauri.conf.json > identifier`)
194
+ 3. **코드 서명** 설정
195
+
196
+ ```bash
197
+ # App Store용 빌드
198
+ npx tauri ios build --export-method app-store-connect
199
+
200
+ # App Store Connect API 키 설정
201
+ # AuthKey_<KEY_ID>.p8 → ~/.appstoreconnect/private_keys/
202
+
203
+ # 업로드
204
+ xcrun altool --upload-app --type ios \
205
+ --file "src-tauri/gen/apple/build/arm64/$APPNAME.ipa" \
206
+ --apiKey $APPLE_API_KEY_ID --apiIssuer $APPLE_API_ISSUER
207
+ ```
208
+
209
+ ### Google Play
210
+
211
+ 1. **Play Console** 개발자 계정 생성
212
+ 2. **앱 등록** 후 코드 서명 설정
213
+
214
+ ```bash
215
+ # AAB 빌드
216
+ npx tauri android build -- --aab
217
+
218
+ # 번들 위치
219
+ # gen/android/app/build/outputs/bundle/universalRelease/app-universal-release.aab
220
+ # Play Console에서 수동 업로드 (첫 번째 릴리스)
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Mobile Plugin 개발
226
+
227
+ ### 아키텍처
228
+
229
+ ```
230
+ plugin/
231
+ ├── src/
232
+ │ ├── lib.rs # 공유 로직
233
+ │ ├── desktop.rs # 데스크톱 구현
234
+ │ └── mobile.rs # 모바일 브릿지
235
+ ├── android/
236
+ │ └── src/.../MyPlugin.kt # Kotlin 구현
237
+ └── ios/
238
+ └── Sources/MyPlugin.swift # Swift 구현
239
+ ```
240
+
241
+ ### Android (Kotlin)
242
+
243
+ ```kotlin
244
+ @TauriPlugin
245
+ class MyPlugin : Plugin() {
246
+ @Command
247
+ fun doSomething(invoke: Invoke) {
248
+ // 블로킹 I/O → 별도 스레드 필수
249
+ CoroutineScope(Dispatchers.IO).launch {
250
+ val result = heavyWork()
251
+ val ret = JSObject()
252
+ ret.put("data", result)
253
+ invoke.resolve(ret)
254
+ }
255
+ }
256
+ }
257
+ ```
258
+
259
+ ### iOS (Swift)
260
+
261
+ ```swift
262
+ public class MyPlugin: Plugin {
263
+ @objc public func doSomething(_ invoke: Invoke) throws {
264
+ let result = heavyWork()
265
+ invoke.resolve(["data": result])
266
+ }
267
+ }
268
+ ```
269
+
270
+ ### Rust에서 호출
271
+
272
+ ```rust
273
+ // mobile.rs
274
+ self.0.run_mobile_plugin("doSomething", payload)
275
+ ```
276
+
277
+ ---
278
+
279
+ ## 모바일 개발 팁
280
+
281
+ | 항목 | 설명 |
282
+ |------|------|
283
+ | **HMR** | 프론트엔드 변경 → 모바일에서도 즉시 반영 |
284
+ | **Rust HMR** | Rust 코드 변경 → 자동 재컴파일 |
285
+ | **첫 빌드** | Rust 패키지 다운로드로 수 분 소요 (이후 캐싱) |
286
+ | **Android 메인 스레드** | 블로킹 I/O → UI 프리징, Coroutine 사용 필수 |
287
+ | **iOS macOS 전용** | iOS 개발/빌드는 macOS에서만 가능 |
288
+ | **최소 Android** | SDK 24 (Android 7.0) |