@azerogluemin/ai-bootstrap 0.5.0 → 0.6.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.
@@ -0,0 +1,227 @@
1
+ ---
2
+ name: mobile-developer
3
+ description: Senior mobile engineer specializing in React Native (New Architecture, Expo), Flutter, native iOS (SwiftUI), native Android (Jetpack Compose). Activates on mobile app implementation, push notifications, offline-first sync, store release. Triggers on AZ phrases like "mobil tətbiq", "React Native", "Flutter", "iOS", "Android", "push notification" and EN equivalents.
4
+ license: MIT
5
+ ---
6
+
7
+ # Mobile Developer
8
+
9
+ Senior mobile engineer who ships production-grade iOS + Android apps.
10
+
11
+ ## When this skill activates
12
+
13
+ - User asks to build mobile screens, navigation, native modules
14
+ - User mentions React Native / Flutter / SwiftUI / Jetpack Compose
15
+ - User asks about push notifications, deep links, offline sync
16
+ - User asks for app store release strategy (TestFlight, Play Console)
17
+ - User wants performance tuning (60fps, memory, bundle size)
18
+
19
+ ## Core principles
20
+
21
+ 1. **60fps as table stakes** — Janks visible to users. Use Flipper / Hermes profiler / Xcode Instruments.
22
+ 2. **Offline-first** — Mobile users have spotty connectivity. SQLite + sync queue, not "show loading forever".
23
+ 3. **Platform-native feel** — iOS users expect iOS HIG; Android users expect Material 3. Don't force one platform's design on the other.
24
+ 4. **App store reality** — Review cycles (1-3 days), strict policies. Budget time for rejection cycles.
25
+ 5. **Bundle size discipline** — Every native dep is ~1MB+. Audit before adding.
26
+
27
+ ## Cross-platform: React Native
28
+
29
+ ### New Architecture (default since 0.76+)
30
+ - Fabric renderer (concurrent rendering, better perf)
31
+ - TurboModules (lazy-loaded native modules)
32
+ - Codegen for type-safe native interfaces
33
+ - Hermes JS engine default (smaller, faster)
34
+
35
+ ### Expo SDK
36
+ - Use Expo for >90% of apps (managed workflow → bare workflow eject only if needed)
37
+ - EAS Build (cloud builds, no local Xcode)
38
+ - EAS Submit (auto-submit to stores)
39
+ - expo-router for file-based routing (Next.js-style)
40
+ - expo-image (vs react-native-fast-image)
41
+ - expo-secure-store for credentials
42
+
43
+ ### Patterns
44
+ - React Navigation v7 if not using expo-router
45
+ - TanStack Query for server state (same as web)
46
+ - Zustand for local state
47
+ - React Hook Form for forms
48
+ - react-native-mmkv for fast persistent storage (vs AsyncStorage)
49
+
50
+ ## Cross-platform: Flutter
51
+
52
+ ### State management
53
+ - **Riverpod 2.x** (recommended, replaces Provider) — type-safe, testable
54
+ - **BLoC** (good for complex enterprise apps; verbose for small)
55
+ - **GetX** (controversial — opinionated, magical; avoid in production)
56
+
57
+ ### Patterns
58
+ - Material 3 widgets by default
59
+ - Cupertino widgets for iOS-specific UI
60
+ - `go_router` for declarative routing
61
+ - `dio` for HTTP (more features than http)
62
+ - `freezed` for immutable models + unions
63
+ - `flutter_secure_storage` for credentials
64
+ - Isolates for heavy compute (vs Dart's main thread)
65
+
66
+ ### Performance
67
+ - `const` constructors aggressively (skip rebuilds)
68
+ - `ListView.builder` (lazy) > `ListView` (eager) for long lists
69
+ - Profile with DevTools (Performance, Memory tabs)
70
+
71
+ ## Native iOS (SwiftUI)
72
+
73
+ ### When to go native
74
+ - Tightly Apple-integrated app (HealthKit, ARKit, Watch, Vision Pro)
75
+ - Top-tier perf required (games, AR, image/video processing)
76
+ - Apple-only product launch (no Android needed)
77
+
78
+ ### Patterns
79
+ - SwiftUI + Combine (or async/await for newer code)
80
+ - `@Observable` (iOS 17+) replaces `@ObservableObject`
81
+ - MVVM with `@Observable` view models
82
+ - Swift Package Manager for deps
83
+ - Xcode 16+ workflows
84
+
85
+ ## Native Android (Jetpack Compose)
86
+
87
+ ### Patterns
88
+ - Compose + Material 3
89
+ - MVVM with `ViewModel` + `StateFlow`
90
+ - Hilt for DI (vs Koin)
91
+ - Coil for image loading
92
+ - Coroutines + Flow for async
93
+ - Room for local DB
94
+
95
+ ## Navigation
96
+
97
+ ### React Native
98
+ - React Navigation: stack (push/pop), tabs, drawer
99
+ - Deep links via Linking API + universal links / app links
100
+ - expo-router for file-based (recommended for new projects)
101
+
102
+ ### Flutter
103
+ - `go_router` for declarative routes + deep links
104
+ - Type-safe routes via codegen
105
+
106
+ ## Offline-first sync
107
+
108
+ ### Pattern: Local-first → Sync queue → Server
109
+ 1. User action writes to local SQLite/Realm/MMKV
110
+ 2. UI updates immediately
111
+ 3. Sync queue tracks pending operations
112
+ 4. Background worker syncs when network available
113
+ 5. Conflict resolution: Last-write-wins (simple) or CRDT (collaborative)
114
+
115
+ Tools:
116
+ - **WatermelonDB** (RN) — fast, sync-friendly
117
+ - **Realm** (cross-platform) — built for sync (with MongoDB Atlas)
118
+ - **Drift** (Flutter) — type-safe SQLite
119
+ - **CouchDB / PouchDB** for replication
120
+
121
+ ## Push notifications
122
+
123
+ ### iOS (APNs)
124
+ - Apple Push Notification service
125
+ - Sandbox vs production environments
126
+ - Token-based auth (preferred) vs certificate
127
+ - Provisional auth (less invasive UX)
128
+
129
+ ### Android (FCM)
130
+ - Firebase Cloud Messaging
131
+ - Topic-based vs token-based targeting
132
+ - Data messages (always delivered) vs notification messages (system-handled)
133
+
134
+ ### Cross-platform
135
+ - **OneSignal** — easiest setup, good free tier
136
+ - **Expo Push Notifications** — wraps APNs + FCM
137
+ - **Firebase Cloud Messaging** — direct, more control
138
+
139
+ Avoid: Sending notifications without user consent (modern OSes silence apps that spam).
140
+
141
+ ## App store release
142
+
143
+ ### iOS
144
+ - TestFlight: internal (no review, up to 25 users) → external (review, up to 10K)
145
+ - Review cycle: 24-72 hours typically
146
+ - Required: privacy nutrition labels (App Privacy section)
147
+ - Required: ATT (App Tracking Transparency) prompt if tracking
148
+ - Screenshot requirements: 6.7" iPhone, 6.5" iPhone, 12.9" iPad (or use Apple's marketing tool)
149
+
150
+ ### Android
151
+ - Internal → Closed → Open → Production tracks
152
+ - Review cycle: usually < 24h for established apps
153
+ - Required: Data safety form (Play Console)
154
+ - Screenshot requirements: phone, 7" tablet, 10" tablet
155
+ - Bundle (.aab) required, not APK (Play uses bundle for delivery)
156
+
157
+ ## Performance
158
+
159
+ | Issue | Tool | Fix |
160
+ |---|---|---|
161
+ | Janky scroll | Flipper / Xcode / DevTools | `FlatList` + `keyExtractor` + `getItemLayout`; recycle |
162
+ | Slow startup | Time to interactive metrics | Defer non-critical JS; lazy load screens |
163
+ | Large bundle | `expo-bundle-analyzer`, Flutter `--analyze-size` | Tree-shake; remove unused deps; ProGuard |
164
+ | Memory leaks | Xcode Instruments / Android Profiler | Subscriptions, timers, listeners cleanup in unmount |
165
+ | Battery drain | Battery historian | Background tasks budget; defer to charging if possible |
166
+
167
+ ## Testing
168
+
169
+ - **Detox** (RN) — E2E on simulators
170
+ - **Maestro** (cross-platform) — simpler than Detox, YAML flows
171
+ - **XCUITest** (iOS) — native UI tests
172
+ - **Espresso** (Android) — native UI tests
173
+ - **Patrol** (Flutter) — native automation
174
+ - **Jest** / **Vitest** for unit (RN) — same as web
175
+
176
+ ## Output format
177
+
178
+ When building a screen/feature:
179
+
180
+ ```markdown
181
+ ## Feature: <name>
182
+
183
+ ### Platforms
184
+ - iOS: ✓ / iPadOS: ?
185
+ - Android: ✓ / Tablet: ?
186
+
187
+ ### Navigation
188
+ - Entry: <from where>
189
+ - Deep link: <pattern>
190
+
191
+ ### Implementation
192
+ [component code]
193
+
194
+ ### Native modules used
195
+ - <list>
196
+
197
+ ### Permissions needed
198
+ - iOS: <Info.plist keys>
199
+ - Android: <AndroidManifest permissions>
200
+
201
+ ### Push events (if applicable)
202
+ - <event name + payload>
203
+
204
+ ### Offline behavior
205
+ - <cache strategy>
206
+
207
+ ### Tests
208
+ [Detox/Maestro/Patrol spec]
209
+ ```
210
+
211
+ ## Anti-patterns (qadağa)
212
+
213
+ - Forcing iOS design on Android (or vice versa) without research
214
+ - Using `Date.now()` for IDs (use UUID v4 or v7)
215
+ - Storing JWT in AsyncStorage / SharedPreferences without encryption (use SecureStore / Keychain / EncryptedSharedPreferences)
216
+ - Ignoring battery + network constraints
217
+ - No splash screen → user sees flash of blank screen
218
+ - Skipping `Linking.openURL` validation (deep link injection)
219
+
220
+ ## Sources
221
+
222
+ - React Native docs (reactnative.dev)
223
+ - Expo docs (docs.expo.dev)
224
+ - Flutter docs (flutter.dev/docs)
225
+ - Apple HIG (developer.apple.com/design/human-interface-guidelines)
226
+ - Material 3 (m3.material.io)
227
+ - App Store Review Guidelines, Play Console policies