vibes-plug 1.0.0 → 2.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.
- package/.github/workflows/publish.yml +20 -0
- package/AGENTS.md +66 -0
- package/BLUEPRINT.md +152 -60
- package/CHANGELOG.md +50 -0
- package/README.md +346 -194
- package/package.json +25 -25
- package/plugin.json +1 -1
- package/skills/ai-cost-token-optimizer/SKILL.md +52 -0
- package/skills/ai-llm-integration-expert/SKILL.md +180 -162
- package/skills/api-design-expert/SKILL.md +314 -310
- package/skills/app-analyzer-optimizer/SKILL.md +193 -189
- package/skills/apple-ecosystem-expert/SKILL.md +142 -0
- package/skills/async-queue-temporal-expert/SKILL.md +54 -0
- package/skills/authentication-identity-expert/SKILL.md +251 -20
- package/skills/auto-doc-updater/SKILL.md +214 -204
- package/skills/autonomous-chaos-monkey/SKILL.md +63 -0
- package/skills/autonomous-red-teamer/SKILL.md +59 -0
- package/skills/autonomous-swarm-director/SKILL.md +69 -0
- package/skills/autonomous-tdd-debugger/SKILL.md +65 -0
- package/skills/bootstrap-to-modern/SKILL.md +90 -86
- package/skills/brainstorming/SKILL.md +373 -353
- package/skills/browser-automation-expert/SKILL.md +46 -0
- package/skills/ci-cd-devops-architect/SKILL.md +72 -45
- package/skills/cloud-hosting-expert/SKILL.md +244 -244
- package/skills/coderabbit/SKILL.md +192 -192
- package/skills/cron-scheduler-expert/SKILL.md +298 -0
- package/skills/data-telemetry-expert/SKILL.md +213 -213
- package/skills/database-orm-expert/SKILL.md +294 -294
- package/skills/dependency-upgrade-migrator/SKILL.md +295 -0
- package/skills/design-system-architect/SKILL.md +27 -10
- package/skills/doku-mcp-server/SKILL.md +251 -0
- package/skills/doku-payment-gateway/SKILL.md +227 -0
- package/skills/e2e-testing-expert/SKILL.md +315 -315
- package/skills/edge-serverless-db-expert/SKILL.md +43 -0
- package/skills/email-notification-expert/SKILL.md +362 -0
- package/skills/error-resilience-expert/SKILL.md +480 -0
- package/skills/event-driven-architect/SKILL.md +81 -81
- package/skills/feature-flag-analytics-expert/SKILL.md +46 -0
- package/skills/file-upload-media-expert/SKILL.md +431 -0
- package/skills/form-validation-expert/SKILL.md +401 -0
- package/skills/fullstack-expert/SKILL.md +202 -202
- package/skills/fullstack-expert/references/api_design_guide.md +466 -466
- package/skills/fullstack-expert/references/multi_language_backend.md +528 -528
- package/skills/fullstack-expert/scripts/api_contract_validator.py +253 -253
- package/skills/fullstack-expert/scripts/architecture_analyzer.py +326 -326
- package/skills/gemini-agent-booster/SKILL.md +135 -135
- package/skills/global-a11y-i18n-expert/SKILL.md +81 -81
- package/skills/glsl-shader-expert/SKILL.md +101 -0
- package/skills/go-programming-expert/SKILL.md +295 -295
- package/skills/graphql-apollo-expert/SKILL.md +108 -0
- package/skills/hig/SKILL.md +188 -188
- package/skills/hyper-context-synthesizer/SKILL.md +55 -0
- package/skills/js-backend-expert/SKILL.md +34 -9
- package/skills/legacy-code-translator/SKILL.md +65 -0
- package/skills/llm-cost-arbitrage-router/SKILL.md +59 -0
- package/skills/logging-error-tracking-expert/SKILL.md +338 -0
- package/skills/mcp-client-orchestrator/SKILL.md +70 -0
- package/skills/mcp-server-architect/SKILL.md +194 -194
- package/skills/micro-frontend-architect/SKILL.md +106 -0
- package/skills/mobile-expo-expert/SKILL.md +186 -186
- package/skills/mobile-push-notification-expert/SKILL.md +51 -0
- package/skills/monday-design-aesthetic/SKILL.md +67 -67
- package/skills/monorepo-architect/SKILL.md +227 -227
- package/skills/mpa-orchestrator/SKILL.md +101 -101
- package/skills/multi-agent-orchestration/SKILL.md +234 -234
- package/skills/multiple-entry-points/SKILL.md +55 -55
- package/skills/mvc-expert/SKILL.md +231 -231
- package/skills/payment-gateway-expert/SKILL.md +45 -45
- package/skills/performance-web-vitals/SKILL.md +332 -332
- package/skills/post-quantum-crypto-migrator/SKILL.md +57 -0
- package/skills/prd-architect/SKILL.md +201 -191
- package/skills/proactive-background-watcher/SKILL.md +62 -0
- package/skills/production-ready-hardener/PRODUCTION_READINESS_REPORT.md +67 -0
- package/skills/production-ready-hardener/SKILL.md +173 -186
- package/skills/production-ready-hardener/references/production_checklist.md +161 -161
- package/skills/production-ready-hardener/scripts/production_readiness_scanner.py +881 -875
- package/skills/project-context-mapper/SKILL.md +79 -0
- package/skills/python-programming-expert/SKILL.md +263 -132
- package/skills/rate-limit-abuse-prevention/SKILL.md +371 -0
- package/skills/realtime-collaboration-expert/SKILL.md +45 -45
- package/skills/rust-programming-expert/SKILL.md +235 -235
- package/skills/saas-billing/SKILL.md +377 -377
- package/skills/saas-multi-tenant/SKILL.md +251 -237
- package/skills/saas-mvp-launcher/SKILL.md +10 -0
- package/skills/saas-transformer/SKILL.md +187 -144
- package/skills/saas-transformer/references/billing_integration_guide.md +401 -401
- package/skills/saas-transformer/references/feature_gating_patterns.md +137 -137
- package/skills/saas-transformer/references/saas_transformation_checklist.md +121 -121
- package/skills/saas-transformer/scripts/saas_transformation_scanner.py +39 -29
- package/skills/scalability-clean-code/SKILL.md +229 -229
- package/skills/self-evolving-memory-graph/SKILL.md +75 -0
- package/skills/self-healing-cloud-orchestrator/SKILL.md +57 -0
- package/skills/senior-frontend/SKILL.md +161 -161
- package/skills/senior-fullstack/SKILL.md +167 -167
- package/skills/seo/SKILL.md +235 -225
- package/skills/seo-geo/SKILL.md +188 -188
- package/skills/session-context-loader/SKILL.md +77 -0
- package/skills/session-handoff-resume/SKILL.md +158 -158
- package/skills/skill_baru/SKILL.md +172 -147
- package/skills/spa-orchestrator/SKILL.md +288 -288
- package/skills/state-management-expert/SKILL.md +272 -272
- package/skills/supabase-security-expert/SKILL.md +243 -243
- package/skills/tailwind-expert/SKILL.md +188 -188
- package/skills/tanstack-query-expert/SKILL.md +199 -199
- package/skills/token-saver/SKILL.md +119 -111
- package/skills/typescript-expert/SKILL.md +324 -279
- package/skills/ui-components-expert/SKILL.md +263 -46
- package/skills/ui-ux-pro-max/SKILL.md +202 -201
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-310.pyc +0 -0
- package/skills/ui_ux_expert/SKILL.md +17 -6
- package/skills/vector-db-rag-expert/SKILL.md +52 -0
- package/skills/vibe-code-gardener/SKILL.md +181 -173
- package/skills/visual-qa-vision-agent/SKILL.md +65 -0
- package/skills/vue-frontend-expert/SKILL.md +126 -0
- package/skills/web-3d-graphics-expert/SKILL.md +131 -0
- package/skills/web-game-engine-expert/SKILL.md +96 -0
- package/skills/web-scraper/SKILL.md +207 -205
- package/skills/website-design-cloner/SKILL.md +174 -0
- package/skills/webxr-ar-vr-expert/SKILL.md +117 -0
- package/skills/zero-to-prod-orchestrator/SKILL.md +206 -180
- package/skills/zero-trust-secret-vault/SKILL.md +40 -0
- package/vibes-swarm-demo.gif +0 -0
|
@@ -1,186 +1,186 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mobile-expo-expert
|
|
3
|
-
description: "Expert guide for React Native 0.76+ and Expo SDK 52+ development. Covers cross-platform mobile architecture, Expo Router v4, New Architecture, OTA updates, and native modules / Panduan ahli pengembangan React Native 0.76+ dan Expo SDK 52+ untuk aplikasi mobile."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Mobile Expert — React Native & Expo (SDK 53 / RN 0.79 Edition)
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
Expert guide for building production-grade cross-platform mobile applications using **React Native 0.79+** and **Expo SDK 53+**. Covers the New Architecture (stable), Expo Router v4, OTA updates, native modules, and modern state management patterns for iOS and Android.
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
- Building a new iOS/Android cross-platform mobile app.
|
|
21
|
-
- Using Expo SDK 53+ or React Native 0.79+ with the New Architecture.
|
|
22
|
-
- Implementing file-based routing with **Expo Router v4**.
|
|
23
|
-
- Setting up OTA (Over-the-Air) updates with EAS Update.
|
|
24
|
-
- Writing native modules using **JSI** (JavaScript Interface) or **Expo Modules API**.
|
|
25
|
-
- Integrating device features: camera, biometrics, notifications, location.
|
|
26
|
-
|
|
27
|
-
### What's New in 2026
|
|
28
|
-
|
|
29
|
-
#### React Native 0.79 — New Architecture Stable
|
|
30
|
-
The **New Architecture** (Fabric + JSI + TurboModules) is now **fully stable** and the default for all new Expo SDK 53 projects:
|
|
31
|
-
- **Fabric**: New rendering engine — synchronous rendering, better animations.
|
|
32
|
-
- **JSI (JavaScript Interface)**: Direct C++ bridge — no more async serialization for native calls.
|
|
33
|
-
- **TurboModules**: Lazy-loaded native modules — significantly faster startup time.
|
|
34
|
-
- **Concurrent React**: Full support for `useTransition`, `useDeferredValue`, and Suspense on mobile.
|
|
35
|
-
|
|
36
|
-
#### Expo SDK 53 — Key Updates
|
|
37
|
-
- **Expo Router v4**: File-based routing with typed routes, API routes (Expo functions), and universal links.
|
|
38
|
-
- **Expo Camera v15**: Unified camera API for iOS and Android.
|
|
39
|
-
- **Expo SQLite v15**: Full SQLite with WAL mode and `useSQLiteContext` hook.
|
|
40
|
-
- **Expo Modules API v2**: Easier native module authoring with Swift/Kotlin.
|
|
41
|
-
- **EAS Build**: Faster builds with M-series Mac runners.
|
|
42
|
-
|
|
43
|
-
### Core Architecture Patterns
|
|
44
|
-
|
|
45
|
-
#### 1. Project Setup (Expo SDK 53 + New Arch)
|
|
46
|
-
```bash
|
|
47
|
-
npx create-expo-app@latest MyApp --template tabs
|
|
48
|
-
cd MyApp
|
|
49
|
-
# New Architecture is enabled by default in SDK 53
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
#### 2. Expo Router v4 — File-Based Routing
|
|
53
|
-
```
|
|
54
|
-
app/
|
|
55
|
-
_layout.tsx # Root layout (navigation + providers)
|
|
56
|
-
(tabs)/
|
|
57
|
-
_layout.tsx # Tab navigator
|
|
58
|
-
index.tsx # Home tab
|
|
59
|
-
profile.tsx # Profile tab
|
|
60
|
-
(auth)/
|
|
61
|
-
login.tsx # Login screen
|
|
62
|
-
register.tsx
|
|
63
|
-
modal.tsx # Modal screen
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Use **typed routes** for compile-time safety:
|
|
67
|
-
```typescript
|
|
68
|
-
import { Link, useRouter } from 'expo-router';
|
|
69
|
-
|
|
70
|
-
// Typed navigation — TypeScript errors on invalid paths
|
|
71
|
-
<Link href="/profile">Profile</Link>
|
|
72
|
-
|
|
73
|
-
const router = useRouter();
|
|
74
|
-
router.push('/modal');
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
#### 3. API Routes (Expo Functions)
|
|
78
|
-
Expo Router v4 supports API routes for serverless backend logic:
|
|
79
|
-
```typescript
|
|
80
|
-
// app/api/user+api.ts
|
|
81
|
-
export async function GET(request: Request) {
|
|
82
|
-
const user = await db.user.findFirst();
|
|
83
|
-
return Response.json(user);
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
#### 4. State Management
|
|
88
|
-
- **TanStack Query v5**: Primary choice for server state (`useQuery`, `useMutation`).
|
|
89
|
-
- **Zustand**: Lightweight client state management (replace Context for complex state).
|
|
90
|
-
- **MMKV**: Ultra-fast synchronous storage (replace AsyncStorage).
|
|
91
|
-
- **Expo SQLite + Drizzle**: Local-first database with full SQL support.
|
|
92
|
-
|
|
93
|
-
#### 5. Navigation Patterns
|
|
94
|
-
```typescript
|
|
95
|
-
// Deep linking & Universal Links configuration
|
|
96
|
-
// app.json
|
|
97
|
-
{
|
|
98
|
-
"expo": {
|
|
99
|
-
"scheme": "myapp",
|
|
100
|
-
"ios": { "associatedDomains": ["applinks:myapp.com"] },
|
|
101
|
-
"android": { "intentFilters": [{ "action": "VIEW", "data": [{ "scheme": "https", "host": "myapp.com" }] }] }
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
#### 6. Native Modules — Expo Modules API v2
|
|
107
|
-
```typescript
|
|
108
|
-
// modules/my-sensor/src/MyModule.ts
|
|
109
|
-
import { requireNativeModule } from 'expo-modules-core';
|
|
110
|
-
const MyModule = requireNativeModule('MyModule');
|
|
111
|
-
|
|
112
|
-
export function readSensor(): Promise<number> {
|
|
113
|
-
return MyModule.readSensor();
|
|
114
|
-
}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
#### 7. OTA Updates with EAS Update
|
|
118
|
-
```bash
|
|
119
|
-
# Push an instant OTA update (no App Store review)
|
|
120
|
-
eas update --branch production --message "Fix critical bug"
|
|
121
|
-
```
|
|
122
|
-
Use **channels** to target specific user groups (production, staging, beta).
|
|
123
|
-
|
|
124
|
-
#### 8. Performance Best Practices
|
|
125
|
-
- Use **FlashList** (Shopify) instead of `FlatList` for large lists.
|
|
126
|
-
- Use **react-native-reanimated v3** for 60/120fps animations that run on the UI thread.
|
|
127
|
-
- Use **react-native-gesture-handler** for gesture recognition on the native thread.
|
|
128
|
-
- Enable **Hermes** engine (default in SDK 53) for faster startup and reduced memory.
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
<a name="bahasa-indonesia"></a>
|
|
133
|
-
## Bahasa Indonesia
|
|
134
|
-
|
|
135
|
-
### Deskripsi
|
|
136
|
-
Panduan ahli untuk membangun aplikasi mobile cross-platform tingkat produksi menggunakan **React Native 0.79+** dan **Expo SDK 53+**. Mencakup New Architecture (stabil), Expo Router v4, OTA updates, native modules, dan pola state management modern untuk iOS dan Android.
|
|
137
|
-
|
|
138
|
-
### Kondisi Pemicu
|
|
139
|
-
- Membangun aplikasi mobile iOS/Android cross-platform baru.
|
|
140
|
-
- Menggunakan Expo SDK 53+ atau React Native 0.79+ dengan New Architecture.
|
|
141
|
-
- Mengimplementasikan routing berbasis file dengan **Expo Router v4**.
|
|
142
|
-
- Menyiapkan OTA (Over-the-Air) updates dengan EAS Update.
|
|
143
|
-
- Menulis native modules menggunakan JSI atau Expo Modules API v2.
|
|
144
|
-
- Mengintegrasikan fitur perangkat: kamera, biometrik, notifikasi, lokasi.
|
|
145
|
-
|
|
146
|
-
### Yang Baru di 2026
|
|
147
|
-
|
|
148
|
-
#### React Native 0.79 — New Architecture Stabil
|
|
149
|
-
**New Architecture** (Fabric + JSI + TurboModules) kini **sepenuhnya stabil** dan menjadi default untuk semua proyek baru Expo SDK 53:
|
|
150
|
-
- **Fabric**: Engine rendering baru — rendering sinkron, animasi lebih baik.
|
|
151
|
-
- **JSI**: Bridge C++ langsung — tidak ada lagi serialisasi async untuk panggilan native.
|
|
152
|
-
- **TurboModules**: Modul native lazy-loaded — startup jauh lebih cepat.
|
|
153
|
-
- **Concurrent React**: Dukungan penuh untuk `useTransition`, `useDeferredValue`, dan Suspense di mobile.
|
|
154
|
-
|
|
155
|
-
#### Expo SDK 53 — Pembaruan Utama
|
|
156
|
-
- **Expo Router v4**: Routing berbasis file dengan typed routes, API routes, dan universal links.
|
|
157
|
-
- **Expo Camera v15**: API kamera terpadu untuk iOS dan Android.
|
|
158
|
-
- **Expo SQLite v15**: SQLite lengkap dengan mode WAL dan hook `useSQLiteContext`.
|
|
159
|
-
- **Expo Modules API v2**: Pembuatan modul native yang lebih mudah dengan Swift/Kotlin.
|
|
160
|
-
- **EAS Build**: Build lebih cepat dengan runner Mac M-series.
|
|
161
|
-
|
|
162
|
-
### Pola Arsitektur Inti
|
|
163
|
-
|
|
164
|
-
#### 1. Routing Berbasis File (Expo Router v4)
|
|
165
|
-
Expo Router menggunakan konvensi direktori `app/` untuk mendefinisikan semua layar dan navigasi. Gunakan **typed routes** untuk keamanan type-safe di waktu kompilasi.
|
|
166
|
-
|
|
167
|
-
#### 2. API Routes (Expo Functions)
|
|
168
|
-
Expo Router v4 mendukung API routes untuk logika backend serverless langsung di dalam proyek.
|
|
169
|
-
|
|
170
|
-
#### 3. State Management
|
|
171
|
-
- **TanStack Query v5**: Pilihan utama untuk server state.
|
|
172
|
-
- **Zustand**: State klien yang ringan.
|
|
173
|
-
- **MMKV**: Penyimpanan sinkron ultra-cepat (pengganti AsyncStorage).
|
|
174
|
-
- **Expo SQLite + Drizzle**: Database lokal-first dengan dukungan SQL penuh.
|
|
175
|
-
|
|
176
|
-
#### 4. Native Modules — Expo Modules API v2
|
|
177
|
-
Gunakan Expo Modules API untuk membuat modul native kustom dengan Swift (iOS) dan Kotlin (Android) dengan boilerplate minimal.
|
|
178
|
-
|
|
179
|
-
#### 5. OTA Updates dengan EAS Update
|
|
180
|
-
Dorong pembaruan instan ke pengguna tanpa melalui review App Store. Gunakan channel (`production`, `staging`, `beta`) untuk menargetkan kelompok pengguna tertentu.
|
|
181
|
-
|
|
182
|
-
#### 6. Praktik Terbaik Performa
|
|
183
|
-
- **FlashList**: Pengganti FlatList yang jauh lebih cepat untuk daftar panjang.
|
|
184
|
-
- **react-native-reanimated v3**: Animasi 60/120fps yang berjalan di UI thread.
|
|
185
|
-
- **react-native-gesture-handler**: Pengenalan gesture di native thread.
|
|
186
|
-
- **Hermes Engine**: Default di SDK 53 — startup lebih cepat, memori lebih sedikit.
|
|
1
|
+
---
|
|
2
|
+
name: mobile-expo-expert
|
|
3
|
+
description: "Expert guide for React Native 0.76+ and Expo SDK 52+ development. Covers cross-platform mobile architecture, Expo Router v4, New Architecture, OTA updates, and native modules / Panduan ahli pengembangan React Native 0.76+ dan Expo SDK 52+ untuk aplikasi mobile."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Mobile Expert — React Native & Expo (SDK 53 / RN 0.79 Edition)
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
Expert guide for building production-grade cross-platform mobile applications using **React Native 0.79+** and **Expo SDK 53+**. Covers the New Architecture (stable), Expo Router v4, OTA updates, native modules, and modern state management patterns for iOS and Android.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
- Building a new iOS/Android cross-platform mobile app.
|
|
21
|
+
- Using Expo SDK 53+ or React Native 0.79+ with the New Architecture.
|
|
22
|
+
- Implementing file-based routing with **Expo Router v4**.
|
|
23
|
+
- Setting up OTA (Over-the-Air) updates with EAS Update.
|
|
24
|
+
- Writing native modules using **JSI** (JavaScript Interface) or **Expo Modules API**.
|
|
25
|
+
- Integrating device features: camera, biometrics, notifications, location.
|
|
26
|
+
|
|
27
|
+
### What's New in 2026
|
|
28
|
+
|
|
29
|
+
#### React Native 0.79 — New Architecture Stable
|
|
30
|
+
The **New Architecture** (Fabric + JSI + TurboModules) is now **fully stable** and the default for all new Expo SDK 53 projects:
|
|
31
|
+
- **Fabric**: New rendering engine — synchronous rendering, better animations.
|
|
32
|
+
- **JSI (JavaScript Interface)**: Direct C++ bridge — no more async serialization for native calls.
|
|
33
|
+
- **TurboModules**: Lazy-loaded native modules — significantly faster startup time.
|
|
34
|
+
- **Concurrent React**: Full support for `useTransition`, `useDeferredValue`, and Suspense on mobile.
|
|
35
|
+
|
|
36
|
+
#### Expo SDK 53 — Key Updates
|
|
37
|
+
- **Expo Router v4**: File-based routing with typed routes, API routes (Expo functions), and universal links.
|
|
38
|
+
- **Expo Camera v15**: Unified camera API for iOS and Android.
|
|
39
|
+
- **Expo SQLite v15**: Full SQLite with WAL mode and `useSQLiteContext` hook.
|
|
40
|
+
- **Expo Modules API v2**: Easier native module authoring with Swift/Kotlin.
|
|
41
|
+
- **EAS Build**: Faster builds with M-series Mac runners.
|
|
42
|
+
|
|
43
|
+
### Core Architecture Patterns
|
|
44
|
+
|
|
45
|
+
#### 1. Project Setup (Expo SDK 53 + New Arch)
|
|
46
|
+
```bash
|
|
47
|
+
npx create-expo-app@latest MyApp --template tabs
|
|
48
|
+
cd MyApp
|
|
49
|
+
# New Architecture is enabled by default in SDK 53
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### 2. Expo Router v4 — File-Based Routing
|
|
53
|
+
```
|
|
54
|
+
app/
|
|
55
|
+
_layout.tsx # Root layout (navigation + providers)
|
|
56
|
+
(tabs)/
|
|
57
|
+
_layout.tsx # Tab navigator
|
|
58
|
+
index.tsx # Home tab
|
|
59
|
+
profile.tsx # Profile tab
|
|
60
|
+
(auth)/
|
|
61
|
+
login.tsx # Login screen
|
|
62
|
+
register.tsx
|
|
63
|
+
modal.tsx # Modal screen
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Use **typed routes** for compile-time safety:
|
|
67
|
+
```typescript
|
|
68
|
+
import { Link, useRouter } from 'expo-router';
|
|
69
|
+
|
|
70
|
+
// Typed navigation — TypeScript errors on invalid paths
|
|
71
|
+
<Link href="/profile">Profile</Link>
|
|
72
|
+
|
|
73
|
+
const router = useRouter();
|
|
74
|
+
router.push('/modal');
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### 3. API Routes (Expo Functions)
|
|
78
|
+
Expo Router v4 supports API routes for serverless backend logic:
|
|
79
|
+
```typescript
|
|
80
|
+
// app/api/user+api.ts
|
|
81
|
+
export async function GET(request: Request) {
|
|
82
|
+
const user = await db.user.findFirst();
|
|
83
|
+
return Response.json(user);
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
#### 4. State Management
|
|
88
|
+
- **TanStack Query v5**: Primary choice for server state (`useQuery`, `useMutation`).
|
|
89
|
+
- **Zustand**: Lightweight client state management (replace Context for complex state).
|
|
90
|
+
- **MMKV**: Ultra-fast synchronous storage (replace AsyncStorage).
|
|
91
|
+
- **Expo SQLite + Drizzle**: Local-first database with full SQL support.
|
|
92
|
+
|
|
93
|
+
#### 5. Navigation Patterns
|
|
94
|
+
```typescript
|
|
95
|
+
// Deep linking & Universal Links configuration
|
|
96
|
+
// app.json
|
|
97
|
+
{
|
|
98
|
+
"expo": {
|
|
99
|
+
"scheme": "myapp",
|
|
100
|
+
"ios": { "associatedDomains": ["applinks:myapp.com"] },
|
|
101
|
+
"android": { "intentFilters": [{ "action": "VIEW", "data": [{ "scheme": "https", "host": "myapp.com" }] }] }
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
#### 6. Native Modules — Expo Modules API v2
|
|
107
|
+
```typescript
|
|
108
|
+
// modules/my-sensor/src/MyModule.ts
|
|
109
|
+
import { requireNativeModule } from 'expo-modules-core';
|
|
110
|
+
const MyModule = requireNativeModule('MyModule');
|
|
111
|
+
|
|
112
|
+
export function readSensor(): Promise<number> {
|
|
113
|
+
return MyModule.readSensor();
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
#### 7. OTA Updates with EAS Update
|
|
118
|
+
```bash
|
|
119
|
+
# Push an instant OTA update (no App Store review)
|
|
120
|
+
eas update --branch production --message "Fix critical bug"
|
|
121
|
+
```
|
|
122
|
+
Use **channels** to target specific user groups (production, staging, beta).
|
|
123
|
+
|
|
124
|
+
#### 8. Performance Best Practices
|
|
125
|
+
- Use **FlashList** (Shopify) instead of `FlatList` for large lists.
|
|
126
|
+
- Use **react-native-reanimated v3** for 60/120fps animations that run on the UI thread.
|
|
127
|
+
- Use **react-native-gesture-handler** for gesture recognition on the native thread.
|
|
128
|
+
- Enable **Hermes** engine (default in SDK 53) for faster startup and reduced memory.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
<a name="bahasa-indonesia"></a>
|
|
133
|
+
## Bahasa Indonesia
|
|
134
|
+
|
|
135
|
+
### Deskripsi
|
|
136
|
+
Panduan ahli untuk membangun aplikasi mobile cross-platform tingkat produksi menggunakan **React Native 0.79+** dan **Expo SDK 53+**. Mencakup New Architecture (stabil), Expo Router v4, OTA updates, native modules, dan pola state management modern untuk iOS dan Android.
|
|
137
|
+
|
|
138
|
+
### Kondisi Pemicu
|
|
139
|
+
- Membangun aplikasi mobile iOS/Android cross-platform baru.
|
|
140
|
+
- Menggunakan Expo SDK 53+ atau React Native 0.79+ dengan New Architecture.
|
|
141
|
+
- Mengimplementasikan routing berbasis file dengan **Expo Router v4**.
|
|
142
|
+
- Menyiapkan OTA (Over-the-Air) updates dengan EAS Update.
|
|
143
|
+
- Menulis native modules menggunakan JSI atau Expo Modules API v2.
|
|
144
|
+
- Mengintegrasikan fitur perangkat: kamera, biometrik, notifikasi, lokasi.
|
|
145
|
+
|
|
146
|
+
### Yang Baru di 2026
|
|
147
|
+
|
|
148
|
+
#### React Native 0.79 — New Architecture Stabil
|
|
149
|
+
**New Architecture** (Fabric + JSI + TurboModules) kini **sepenuhnya stabil** dan menjadi default untuk semua proyek baru Expo SDK 53:
|
|
150
|
+
- **Fabric**: Engine rendering baru — rendering sinkron, animasi lebih baik.
|
|
151
|
+
- **JSI**: Bridge C++ langsung — tidak ada lagi serialisasi async untuk panggilan native.
|
|
152
|
+
- **TurboModules**: Modul native lazy-loaded — startup jauh lebih cepat.
|
|
153
|
+
- **Concurrent React**: Dukungan penuh untuk `useTransition`, `useDeferredValue`, dan Suspense di mobile.
|
|
154
|
+
|
|
155
|
+
#### Expo SDK 53 — Pembaruan Utama
|
|
156
|
+
- **Expo Router v4**: Routing berbasis file dengan typed routes, API routes, dan universal links.
|
|
157
|
+
- **Expo Camera v15**: API kamera terpadu untuk iOS dan Android.
|
|
158
|
+
- **Expo SQLite v15**: SQLite lengkap dengan mode WAL dan hook `useSQLiteContext`.
|
|
159
|
+
- **Expo Modules API v2**: Pembuatan modul native yang lebih mudah dengan Swift/Kotlin.
|
|
160
|
+
- **EAS Build**: Build lebih cepat dengan runner Mac M-series.
|
|
161
|
+
|
|
162
|
+
### Pola Arsitektur Inti
|
|
163
|
+
|
|
164
|
+
#### 1. Routing Berbasis File (Expo Router v4)
|
|
165
|
+
Expo Router menggunakan konvensi direktori `app/` untuk mendefinisikan semua layar dan navigasi. Gunakan **typed routes** untuk keamanan type-safe di waktu kompilasi.
|
|
166
|
+
|
|
167
|
+
#### 2. API Routes (Expo Functions)
|
|
168
|
+
Expo Router v4 mendukung API routes untuk logika backend serverless langsung di dalam proyek.
|
|
169
|
+
|
|
170
|
+
#### 3. State Management
|
|
171
|
+
- **TanStack Query v5**: Pilihan utama untuk server state.
|
|
172
|
+
- **Zustand**: State klien yang ringan.
|
|
173
|
+
- **MMKV**: Penyimpanan sinkron ultra-cepat (pengganti AsyncStorage).
|
|
174
|
+
- **Expo SQLite + Drizzle**: Database lokal-first dengan dukungan SQL penuh.
|
|
175
|
+
|
|
176
|
+
#### 4. Native Modules — Expo Modules API v2
|
|
177
|
+
Gunakan Expo Modules API untuk membuat modul native kustom dengan Swift (iOS) dan Kotlin (Android) dengan boilerplate minimal.
|
|
178
|
+
|
|
179
|
+
#### 5. OTA Updates dengan EAS Update
|
|
180
|
+
Dorong pembaruan instan ke pengguna tanpa melalui review App Store. Gunakan channel (`production`, `staging`, `beta`) untuk menargetkan kelompok pengguna tertentu.
|
|
181
|
+
|
|
182
|
+
#### 6. Praktik Terbaik Performa
|
|
183
|
+
- **FlashList**: Pengganti FlatList yang jauh lebih cepat untuk daftar panjang.
|
|
184
|
+
- **react-native-reanimated v3**: Animasi 60/120fps yang berjalan di UI thread.
|
|
185
|
+
- **react-native-gesture-handler**: Pengenalan gesture di native thread.
|
|
186
|
+
- **Hermes Engine**: Default di SDK 53 — startup lebih cepat, memori lebih sedikit.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mobile-push-notification-expert
|
|
3
|
+
description: "Expert guide for Cross-Platform Push Notifications (Expo Push, FCM, APNs, Web Push), iOS Live Activities, and background payload handling / Panduan ahli notifikasi push mobile, FCM, APNs, dan Live Activities."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Mobile Push Notification & Live Activities Expert
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Purpose & Overview
|
|
17
|
+
Comprehensive guide for configuring cross-platform push notifications (Expo Push API, Firebase Cloud Messaging FCM, Apple APNs, Web Push API), iOS Live Activities / ActivityKit, background payload handlers, deep-linking routing, and push token lifecycle management.
|
|
18
|
+
|
|
19
|
+
### Key Capabilities
|
|
20
|
+
- **Expo & FCM Push**: Sending batched push notifications with rich media, actions, and custom data payloads.
|
|
21
|
+
- **iOS Live Activities**: Real-time status updates on iOS Dynamic Island and Lock Screen.
|
|
22
|
+
- **Deep Linking**: Routing push notification taps directly to targeted screens within Expo Router / React Native.
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import * as Notifications from 'expo-notifications';
|
|
26
|
+
|
|
27
|
+
export async function registerForPushNotificationsAsync() {
|
|
28
|
+
const { status: existingStatus } = await Notifications.getPermissionsAsync();
|
|
29
|
+
let finalStatus = existingStatus;
|
|
30
|
+
if (existingStatus !== 'granted') {
|
|
31
|
+
const { status } = await Notifications.requestPermissionsAsync();
|
|
32
|
+
finalStatus = status;
|
|
33
|
+
}
|
|
34
|
+
if (finalStatus !== 'granted') return null;
|
|
35
|
+
const token = (await Notifications.getExpoPushTokenAsync()).data;
|
|
36
|
+
return token;
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
<a name="bahasa-indonesia"></a>
|
|
43
|
+
## Bahasa Indonesia
|
|
44
|
+
|
|
45
|
+
### Deskripsi
|
|
46
|
+
Panduan komprehensif untuk konfigurasi push notification lintas platform (Expo Push, FCM, APNs, Web Push), iOS Live Activities / ActivityKit, penanganan payload background, routing deep-linking, dan manajemen siklus token push.
|
|
47
|
+
|
|
48
|
+
### Fitur Utama
|
|
49
|
+
- **Expo & FCM Push**: Pengiriman push notification masal dengan media kaya, tombol aksi, dan payload kustom.
|
|
50
|
+
- **iOS Live Activities**: Update status real-time di Dynamic Island dan Lock Screen iOS.
|
|
51
|
+
- **Deep Linking**: Mengarahkan ketukan notifikasi secara langsung ke layar target di Expo Router / React Native.
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: monday-design-aesthetic
|
|
3
|
-
description: "Expert guide for implementing the modern, spacious, and highly structured Monday.com design system / Panduan desain ala Monday.com."
|
|
4
|
-
author: "Roedy Rustam"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Monday.com Design Aesthetic
|
|
8
|
-
|
|
9
|
-
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
<a name="english"></a>
|
|
14
|
-
## English
|
|
15
|
-
|
|
16
|
-
### Description
|
|
17
|
-
This skill focuses on implementing the modern, spacious, and structured design aesthetic inspired by Monday.com. It is ideal for SaaS landing pages and dashboards.
|
|
18
|
-
|
|
19
|
-
### Trigger Conditions
|
|
20
|
-
Use this when the user asks for:
|
|
21
|
-
- A "Monday.com style" design.
|
|
22
|
-
- A modern SaaS landing page with clean structure.
|
|
23
|
-
- High-quality, spacious UI with vibrant accents.
|
|
24
|
-
|
|
25
|
-
### Core Design Tokens
|
|
26
|
-
- **Primary Brand Color**: Vibrant Blue (`#0073ea`) for active states and primary buttons.
|
|
27
|
-
- **Backgrounds**: Clean White (`#FFFFFF`) for main content, Light Grays (`#F9F9F9`, `#F5F6F8`) for section alternations, Dark Gray/Black (`#111111`) for footers.
|
|
28
|
-
- **Typography**: Clean geometric sans-serif (e.g., Figtree, Circular, Inter).
|
|
29
|
-
- Hero text is extra-bold (48-60px).
|
|
30
|
-
- Section headers are bold (32-40px) in dark slate (`#333333`).
|
|
31
|
-
- Body text is medium (16-18px) in muted gray (`#676879`).
|
|
32
|
-
|
|
33
|
-
### UI Components & Layout
|
|
34
|
-
- **Buttons**: Fully rounded corners (~8px). Primary buttons use vibrant blue with white text and generous padding (e.g., `px-6 py-3`).
|
|
35
|
-
- **Cards**: Large border radius (12-16px) with flat borders or extremely subtle drop shadows (`shadow-sm`).
|
|
36
|
-
- **Layout**: Centered max-width containers (1200-1400px).
|
|
37
|
-
- **Spacing**: Generous vertical padding between sections (80-120px) to let content breathe.
|
|
38
|
-
- **Interactions**: Smooth hover states, interactive tab systems, and collapsible accordions.
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
<a name="bahasa-indonesia"></a>
|
|
43
|
-
## Bahasa Indonesia
|
|
44
|
-
|
|
45
|
-
### Deskripsi
|
|
46
|
-
Skill ini berfokus pada implementasi desain yang modern, luas (spacious), dan terstruktur yang terinspirasi oleh Monday.com. Sangat cocok untuk landing page dan dashboard SaaS.
|
|
47
|
-
|
|
48
|
-
### Kondisi Pemicu
|
|
49
|
-
Gunakan saat pengguna meminta:
|
|
50
|
-
- Desain ala "Monday.com".
|
|
51
|
-
- Landing page SaaS modern dengan struktur bersih.
|
|
52
|
-
- UI berkualitas tinggi dengan ruang bernapas luas dan aksen cerah.
|
|
53
|
-
|
|
54
|
-
### Token Desain Utama
|
|
55
|
-
- **Warna Utama (Brand Color)**: Biru Cerah (`#0073ea`) untuk elemen aktif dan tombol utama.
|
|
56
|
-
- **Background**: Putih Bersih (`#FFFFFF`) untuk konten utama, Abu-abu Terang (`#F9F9F9`, `#F5F6F8`) untuk variasi bagian, Abu-abu Gelap/Hitam (`#111111`) untuk footer.
|
|
57
|
-
- **Tipografi**: Sans-serif geometris bersih (mis. Figtree, Circular, Inter).
|
|
58
|
-
- Teks Hero sangat tebal (48-60px).
|
|
59
|
-
- Header bagian tebal (32-40px) dengan warna dark slate (`#333333`).
|
|
60
|
-
- Teks isi sedang (16-18px) berwarna abu-abu redup (`#676879`).
|
|
61
|
-
|
|
62
|
-
### Komponen UI & Layout
|
|
63
|
-
- **Tombol (Buttons)**: Sudut melengkung (~8px). Tombol utama berwarna biru dengan padding luas (`px-6 py-3`).
|
|
64
|
-
- **Kartu (Cards)**: Radius sudut besar (12-16px) dengan border datar atau bayangan sangat halus (`shadow-sm`).
|
|
65
|
-
- **Tata Letak (Layout)**: Kontainer dengan lebar maksimal (1200-1400px) terpusat.
|
|
66
|
-
- **Jarak (Spacing)**: Jarak vertikal yang sangat lega antar bagian (80-120px).
|
|
67
|
-
- **Interaksi**: Efek hover halus, sistem tab interaktif, dan akordion lipat.
|
|
1
|
+
---
|
|
2
|
+
name: monday-design-aesthetic
|
|
3
|
+
description: "Expert guide for implementing the modern, spacious, and highly structured Monday.com design system / Panduan desain ala Monday.com."
|
|
4
|
+
author: "Roedy Rustam"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Monday.com Design Aesthetic
|
|
8
|
+
|
|
9
|
+
[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a name="english"></a>
|
|
14
|
+
## English
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
This skill focuses on implementing the modern, spacious, and structured design aesthetic inspired by Monday.com. It is ideal for SaaS landing pages and dashboards.
|
|
18
|
+
|
|
19
|
+
### Trigger Conditions
|
|
20
|
+
Use this when the user asks for:
|
|
21
|
+
- A "Monday.com style" design.
|
|
22
|
+
- A modern SaaS landing page with clean structure.
|
|
23
|
+
- High-quality, spacious UI with vibrant accents.
|
|
24
|
+
|
|
25
|
+
### Core Design Tokens
|
|
26
|
+
- **Primary Brand Color**: Vibrant Blue (`#0073ea`) for active states and primary buttons.
|
|
27
|
+
- **Backgrounds**: Clean White (`#FFFFFF`) for main content, Light Grays (`#F9F9F9`, `#F5F6F8`) for section alternations, Dark Gray/Black (`#111111`) for footers.
|
|
28
|
+
- **Typography**: Clean geometric sans-serif (e.g., Figtree, Circular, Inter).
|
|
29
|
+
- Hero text is extra-bold (48-60px).
|
|
30
|
+
- Section headers are bold (32-40px) in dark slate (`#333333`).
|
|
31
|
+
- Body text is medium (16-18px) in muted gray (`#676879`).
|
|
32
|
+
|
|
33
|
+
### UI Components & Layout
|
|
34
|
+
- **Buttons**: Fully rounded corners (~8px). Primary buttons use vibrant blue with white text and generous padding (e.g., `px-6 py-3`).
|
|
35
|
+
- **Cards**: Large border radius (12-16px) with flat borders or extremely subtle drop shadows (`shadow-sm`).
|
|
36
|
+
- **Layout**: Centered max-width containers (1200-1400px).
|
|
37
|
+
- **Spacing**: Generous vertical padding between sections (80-120px) to let content breathe.
|
|
38
|
+
- **Interactions**: Smooth hover states, interactive tab systems, and collapsible accordions.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
<a name="bahasa-indonesia"></a>
|
|
43
|
+
## Bahasa Indonesia
|
|
44
|
+
|
|
45
|
+
### Deskripsi
|
|
46
|
+
Skill ini berfokus pada implementasi desain yang modern, luas (spacious), dan terstruktur yang terinspirasi oleh Monday.com. Sangat cocok untuk landing page dan dashboard SaaS.
|
|
47
|
+
|
|
48
|
+
### Kondisi Pemicu
|
|
49
|
+
Gunakan saat pengguna meminta:
|
|
50
|
+
- Desain ala "Monday.com".
|
|
51
|
+
- Landing page SaaS modern dengan struktur bersih.
|
|
52
|
+
- UI berkualitas tinggi dengan ruang bernapas luas dan aksen cerah.
|
|
53
|
+
|
|
54
|
+
### Token Desain Utama
|
|
55
|
+
- **Warna Utama (Brand Color)**: Biru Cerah (`#0073ea`) untuk elemen aktif dan tombol utama.
|
|
56
|
+
- **Background**: Putih Bersih (`#FFFFFF`) untuk konten utama, Abu-abu Terang (`#F9F9F9`, `#F5F6F8`) untuk variasi bagian, Abu-abu Gelap/Hitam (`#111111`) untuk footer.
|
|
57
|
+
- **Tipografi**: Sans-serif geometris bersih (mis. Figtree, Circular, Inter).
|
|
58
|
+
- Teks Hero sangat tebal (48-60px).
|
|
59
|
+
- Header bagian tebal (32-40px) dengan warna dark slate (`#333333`).
|
|
60
|
+
- Teks isi sedang (16-18px) berwarna abu-abu redup (`#676879`).
|
|
61
|
+
|
|
62
|
+
### Komponen UI & Layout
|
|
63
|
+
- **Tombol (Buttons)**: Sudut melengkung (~8px). Tombol utama berwarna biru dengan padding luas (`px-6 py-3`).
|
|
64
|
+
- **Kartu (Cards)**: Radius sudut besar (12-16px) dengan border datar atau bayangan sangat halus (`shadow-sm`).
|
|
65
|
+
- **Tata Letak (Layout)**: Kontainer dengan lebar maksimal (1200-1400px) terpusat.
|
|
66
|
+
- **Jarak (Spacing)**: Jarak vertikal yang sangat lega antar bagian (80-120px).
|
|
67
|
+
- **Interaksi**: Efek hover halus, sistem tab interaktif, dan akordion lipat.
|