بنقرة واحدة
rn-app-builder
基于真实项目沉淀的 React Native 移动端 App 一键构建方案。覆盖 Expo 初始化、monorepo 共享包、鉴权路由、API 适配、主题系统与构建发布。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
基于真实项目沉淀的 React Native 移动端 App 一键构建方案。覆盖 Expo 初始化、monorepo 共享包、鉴权路由、API 适配、主题系统与构建发布。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
读取 arxiv 论文的 LaTeX 源码并生成结构化中文摘要或中文博客 JSON。当用户给出 arxiv URL(如 https://arxiv.org/abs/2601.07372)并要求阅读、总结、提炼论文观点时,使用默认工作流生成 ./knowledge/summary_{tag}.md;当用户要求生成中文博客、输出 JSON、保留图表并输出到测试工作区时,启用 read-paper 工作流。
知乎 OAuth 2.0 接入指南。用于帮助开发者完成知乎 Authorization Code 授权流程,包括 APP_ID/APP_KEY 申请、授权页跳转、Token 换取、用户信息获取及社交关系接口调用。适用于 Web 应用第三方登录场景。
Use when you need to design, scaffold, refactor, or document a medium-sized admin console built as an independent Vite/React SPA backed by modular Go admin APIs, Cookie session auth, and CLI-provisioned administrator accounts. Helpful for tasks like planning a new admin console, extracting reusable architecture from an existing console, adding `/api/admin/*` modules, or converting a one-off internal page into a structured admin system.
Build and send Feishu (Lark) interactive rich-text cards using lark_md format. Use when the user needs to: (1) construct Feishu card messages with markdown support, (2) send interactive cards via the Feishu Bot API, (3) format text with bold, inline code, lists, tables, or code blocks inside Feishu cards, or (4) convert markdown content into Feishu card elements.
腾讯云官方的邮件推送 SES 服务使用 skill。 涵盖:SMTP 发送邮件所需的全部环境变量、API 接口设计规范、验证码邮件的完整发送流程(含人机验证、频率控制、Redis 存储)。 本 skill 以网络协议 / HTTP API 接口级别描述,不绑定具体编程语言。
观猹(Watcha)OAuth2.0 接入指南。用于帮助开发者完成观猹 Authorization Code 授权流程,包括客户端申请、授权页跳转、Token 换取、用户信息获取、Token 刷新与校验。适用于 Web 应用、移动 App 等场景,支持 PKCE 扩展。
| name | rn-app-builder |
| description | 基于真实项目沉淀的 React Native 移动端 App 一键构建方案。覆盖 Expo 初始化、monorepo 共享包、鉴权路由、API 适配、主题系统与构建发布。 |
| tags | ["react-native","expo","mobile-app","typescript","monorepo"] |
| model | deepseek-chat |
| rootUrl | https://cdn.jsdelivr.net/gh/LSTM-Kirigaya/jinhui-skills@main/skills/rn-app-builder/SKILL.md |
一键搭建或复刻一个生产级 Expo + React Native + TypeScript 移动端 App。适用于:
apps/mobilepackages/core(类型/纯计算)与 packages/api-client(平台无关 HTTP 客户端)AuthProvider + React Navigation 7,启动自检 token,未登录进登录页,已登录进主 Tabfetch、AsyncStorage、文件上传,业务代码保持平台无关python3 skills/rn-app-builder/scripts/create-rn-app.py \
--target apps/mobile \
--app-name MyApp \
--package-name com.example.myapp \
--api-base-url http://127.0.0.1:3010
生成后按需替换:
app.json 中的应用名、scheme、bundleIdentifier / package、图标src/config.ts 中的 API_BASE_URLsrc/screens/LoginScreen.tsx 的登录方式(密码 / 短信 / 微信)src/navigation/RootNavigator.tsx 的业务路由与 Tabsrc/theme/index.ts 的品牌色apps/mobile/
App.tsx
app.json
index.ts
package.json
babel.config.js
metro.config.js
tsconfig.json
tsconfig.typecheck.json
src/
api.ts # 创建 apiClient,注入 RN 适配器与 AsyncStorage
config.ts # API_BASE_URL、版本号、调试开关
env.d.ts # 环境变量类型
theme/ # colors / spacing / radius / shadow
components/ # Page、AppButton、Card 等基础组件
providers/ # AuthProvider、DialogProvider 等
navigation/ # RootNavigator、TabBar、types
screens/ # LoginScreen、HomeScreen、ProfileScreen ...
hooks/ # useHomeDashboard 等业务 hooks
utils/ # date、image、errors 等工具
packages/
core/ # DTO、枚举、纯计算(平台无关)
api-client/ # 适配器式 HTTP 客户端 + TokenStorage 接口
职责单一:
AsyncStorage 中是否有 tokenisBootstrapping / isAuthenticatedloginWithPassword、loginWithSMSCode、loginWithWechat、logoutRootNavigator 据此渲染登录栈或主 Tabpackages/api-client 定义接口:
interface ApiClientAdapters {
request(url: string, options?: { method?; headers?; body?; timeoutMs? }): Promise<{ status; data; headers }>
uploadFile(input: UploadFileInput): Promise<{ status; data; headers }>
tokenStorage: {
getAccessToken(): Promise<string | null>
setTokens(tokens: { accessToken; refreshToken; userId }): Promise<void>
clearTokens(): Promise<void>
}
}
apps/mobile/src/api.ts 注入:
fetch 做请求,自动 JSON 序列化AsyncStorage 存取 tokenXMLHttpRequest 做多文件上传(带进度与超时)RootStack
├── 未登录:Login
└── 已登录:MainTabs
├── HomeTab
├── StatsTab
├── CommunityTab
└── ProfileTab
业务子页面(分析、记录、设置、消息等)统一挂在 RootStack 下,通过 navigation.navigate('ScreenName') 跳转。
统一导出:
export const colors = { brand, brandDark, background, surface, text, textSecondary, danger, warning, ... }
export const spacing = { xs, sm, md, lg, xl }
export const radius = { sm, md, lg, pill }
export const shadow = { shadowColor, shadowOpacity, shadowRadius, shadowOffset, elevation }
所有 screen / component 只引用 theme,不硬编码色值。
{
"expo": "~56.0.0",
"react": "19.2.3",
"react-native": "0.85.3",
"@react-navigation/native": "^7.3.1",
"@react-navigation/bottom-tabs": "^7.18.0",
"@react-navigation/native-stack": "^7.17.3",
"@react-native-async-storage/async-storage": "2.2.0",
"react-native-safe-area-context": "~5.7.0",
"react-native-screens": "4.25.2",
"react-native-svg": "15.15.4",
"lucide-react-native": "^1.20.0"
}
按需追加:
expo-image-picker — 相册 / 拍照expo-file-system — 本地文件读写expo-clipboard — 剪贴板expo-media-library — 保存图片到相册所有 TextInput 必须支持 iOS Simulator / Android Emulator 的电脑键盘:
value + onChangeTextautoCapitalize="none" autoCorrect={false}inputMode="email" keyboardType="email-address"inputMode="numeric"returnKeyType + onSubmitEditing,用 ref 聚焦下一项或提交npm install
npm --workspace apps/mobile run typecheck
npx expo export --platform ios --output-dir /tmp/mobile-ios-export --clear
运行:
npm --workspace apps/mobile run start
# 或
npm --workspace apps/mobile run ios
npm --workspace apps/mobile run android
确认:
packages/core,保持 screens 薄references/stack.md — 依赖版本与脚本references/structure.md — 目录结构详解references/auth-api.md — 鉴权与 API 客户端references/simulator-keyboard-input.md — 模拟器键盘输入规范references/verification.md — 验证与发布检查User: 帮我基于一个已有后端,从零搭建一个 React Native 移动应用,放到 apps/mobile,包含登录、首页、我的三个 Tab。
AI:
我会使用 rn-app-builder 帮你一键搭建 apps/mobile:
packages/core 存放用户、首页数据等 DTO。packages/api-client 作为平台无关 HTTP 客户端。apps/mobile/src/api.ts 注入 fetch + AsyncStorage。AuthProvider 做 token 自检与登录状态管理。app.json、主题色、API 基地址后即可运行验证。User: 我们的 monorepo 里已经有 web 和小程序了,现在想加一个原生 App,共享类型和 API 请求逻辑,该怎么做?
AI:
按 rn-app-builder 的 monorepo 模式来做:
packages/core 定义共享 DTO 与纯函数(web/小程序/App 共用)。packages/api-client 定义 ApiClientAdapters 接口与业务请求方法。apps/mobile,注入 RN 专属的 fetch、AsyncStorage、文件上传适配器。packages/*。tsconfig.json paths 指向本地 packages/*/src。