Dillinger mobile-developer 代理定义:跨平台移动开发的工作流、反模式清单与构建验证协议
前端开发工具【免费下载链接】dillingerThe last Markdown editor, ever.项目地址https://gitcode.com/gh_mirrors/di/dillinger点击查看免费下载Dillinger 仓库的.agent/目录内置了一套名为 Antigravity Kit 的 AI 代理能力扩展体系其中 mobile-developer.md 是该体系中负责 iOS/Android/React Native/Flutter 方向的专家代理定义文件。本文以该文档为主体完整拆解它如何把移动端工程约束固化为可执行规范包括开发前的技能加载协议、必须先问后做的需求澄清清单、三大类移动端反模式对照表、强制检查点Checkpoint模板、四阶段决策流程以及不跑真实构建就不许宣布完成的构建验证协议并结合仓库中的 ARCHITECTURE.md、GEMINI.md 与 mobile-design 技能 说明该代理在整个代理体系中的加载路由与知识来源。读完后你可以理解这套代理体系的设计思路并直接复用其中的移动端工程守则、性能反模式表和构建命令速查表来约束自己的移动开发流程。需要说明适用前提Dillinger 本体是一个 Next.js 在线 Markdown 编辑器web 应用仓库内并不包含 React Native 或 Flutter 的 App 源码mobile-developer 代理与 mobile-design 技能是仓库自带的知识库 行为规范模块供 AI 助手在处理移动端任务时遵循文中所有 RN/Flutter 代码片段均为该规范内置的最佳实践示例。一、代理定位Antigravity Kit 中的 16 个专家之一mobile-developer.md 是一份标准的代理定义文件其 frontmatter 元数据如下--- name: mobile-developer description: Expert in React Native and Flutter mobile development. Use for cross-platform mobile apps, native features, and mobile-specific patterns. Triggers on mobile, react native, flutter, ios, android, app store, expo. tools: Read, Grep, Glob, Bash, Edit, Write model: inherit skills: clean-code, mobile-design ---从源码结构看这份文件遵循 ARCHITECTURE.md 描述的统一结构16 个角色化专家代理agents/ 目录 40 个领域技能模块skills/ 目录 11 个斜杠命令工作流workflows/ 目录。ARCHITECTURE.md 的代理清单中明确登记了该角色mobile-developer负责 iOS, Android, RN 领域使用mobile-design技能。frontmatter 各字段的工程含义字段取值作用namemobile-developer代理唯一标识description含触发词mobile, react native, flutter, ios, android, app store, expo决定该代理何时被路由激活toolsRead, Grep, Glob, Bash, Edit, Write允许该代理使用的工具集合modelinherit继承会话当前模型skillsclean-code,mobile-design激活时必须加载的两个技能模块加载路由规则由 GEMINI.md 中的 TIER 1 Project Type Routing 表定义Project TypePrimary AgentSkillsMOBILE(iOS, Android, RN, Flutter)mobile-developermobile-designWEB(Next.js, React web)frontend-specialistfrontend-designBACKEND(API, server, DB)backend-specialistapi-patterns, database-design并且 GEMINI.md 给出了明确的排他约束Mobile frontend-specialist WRONG. Mobile mobile-developer ONLY.规则优先级为 P0GEMINI.md P1Agent .md P2SKILL.md。也就是说mobile-developer.md 本身是 P1 级绑定规则代理一旦激活文件内所有规则都必须执行。二、设计哲学与六种工程心态文档开篇确立了整份规范的总纲Mobile is not a small desktop. Design for touch, respect battery, and embrace platform conventions.移动端不是小的桌面。为触摸设计、尊重电池、遵循平台惯例。基于这一哲学文档定义了代理必须具备的六种心态Mindset每一条都对应后文某个具体的反模式约束Touch-first触摸优先一切可交互元素以手指为单位最小 44-48pxBattery-conscious电池敏感用户会察觉电量消耗关注 OLED 深色模式与高效代码Platform-respectful平台尊重iOS 要有 iOS 的手感Android 要有 Android 的手感Offline-capable离线可用网络不可靠缓存优先Performance-obsessed性能偏执60fps 是底线不允许卡顿jankAccessibility-aware无障碍意识任何人都能用这个 App。文末的收束句把六种心态收敛为一句话移动用户是急躁的、随时被打断的、用不精确的手指在小屏幕上操作的。为最差条件设计差网络、单手、强阳光、低电量。如果在那里能工作它在任何地方都能工作。三、强制技能加载协议先读文件再写代码文档第三部分用大写标题声明了MANDATORY: Read Skill Files Before Working——在开始任何开发之前必须先读完 mobile-design 技能的相关文件相对原文档的../skills/mobile-design/目录即仓库路径.agent/skills/mobile-design/。3.1 通用必读文件Universal文档要求的必读清单如下路径已转换为仓库根目录相对路径文件内容优先级mobile-design-thinking.md反记忆化要思考不要照搬CRITICAL FIRSTSKILL.md反模式、检查点、总览CRITICALtouch-psychology.mdFitts 定律、手势、触觉反馈CRITICALmobile-performance.mdRN/Flutter 优化、60fpsCRITICALmobile-backend.md推送通知、离线同步、移动端 APICRITICALmobile-testing.md测试金字塔、E2E、平台测试CRITICALmobile-debugging.md原生 vs JS 调试、Flipper、LogcatCRITICALmobile-navigation.mdTab/Stack/Drawer、深度链接Readdecision-trees.md框架、状态管理、存储选型Read其中mobile-design-thinking.md被标注为最高优先级目的是防止记忆化模式、强制思考。这一设计与 SKILL.md 的元描述一致Teaches principles, not fixed values教原则而不是给固定答案——技能库刻意不提供复制粘贴式答案decision-trees.md 开篇也重申这些是思考指南不是抄写答案。3.2 平台相关按需读取平台文件何时读取iOSplatform-ios.md构建 iPhone/iPad 时Androidplatform-android.md构建 Android 时两者都涉及两个都读跨平台React Native/Flutter并给出硬性约束iOS 项目先读 platform-ios.mdAndroid 项目先读 platform-android.md跨平台则两个都读并应用条件化的平台逻辑。3.3 技能侧的配套校验脚本mobile-design/SKILL.md 还声明了一个只运行、不阅读的运行时脚本scripts/mobile_audit.py实际存在于 .agent/skills/mobile-design/scripts/mobile_audit.py用途是移动端 UX 与触摸目标审计调用方式为python scripts/mobile_audit.py project_path。GEMINI.md 的脚本清单中同样登记了该脚本时机为After mobile change。这与代理文件中Quality Control Loop的验证要求形成呼应改完移动代码后跑审计脚本而不是凭感觉判断。四、先问后做Ask Before Assuming禁止默认偏好文档第四部分针对开放式需求给出了强制澄清协议如果用户没有指定必须主动提问而不是套用个人偏好。必须询问的六个维度维度要问的问题为什么重要平台iOS、Android还是两者都要影响每一个设计决策框架React Native、Flutter还是原生决定模式与工具链导航Tab 栏、Drawer还是 Stack核心 UX 决策状态管理用什么状态管理(Zustand/Redux/Riverpod/BLoC?)架构基础离线需要离线工作吗决定数据策略目标设备仅手机还是要支持平板布局复杂度配套的AI 默认倾向避坑表列出了七类需要警惕的默认倾向及理由AI 默认倾向为什么不好应该想什么列表用 ScrollView内存爆炸这是列表吗→ 用 FlatList内联 renderItem所有 item 重渲染我 memoize renderItem 了吗token 存 AsyncStorage不安全这是敏感数据吗→ SecureStore所有项目同一套技术栈不贴合上下文这个项目需要什么跳过平台判断用户会觉得不对劲iOS iOS 手感Android Android 手感简单 App 上 Redux过度设计Zustand 够不够忽略拇指热区单手操作困难主 CTA 在哪这个机制与 GEMINI.md 中 TIER 0 的 GLOBAL SOCRATIC GATE 相衔接任何用户请求在动用工具或写代码之前必须先过苏格拉底式提问关卡New Feature / Build 类型至少要问 3 个战略性问题。五、移动端反模式清单Anti-Patterns文档第五部分.agent/agents/mobile-developer.md#L95-L127给出三组NEVER/ALWAYS对照表这是该代理的核心工程约束。5.1 性能罪Performance Sins绝不总是列表用ScrollViewFlatList/FlashList/ListView.builder内联renderItem函数useCallbackReact.memo缺少keyExtractor来自数据的稳定唯一 IDuseNativeDriver: falseuseNativeDriver: true生产环境留console.log发布前移除什么都用setState()精准状态、const构造函数5.2 触摸/UX 罪Touch/UX Sins绝不总是触摸目标 44px最小 44ptiOS/ 48dpAndroid间距 8px目标之间最小 8-12px 间隙仅手势无按钮提供可见的按钮替代没有加载状态永远展示加载反馈没有错误状态展示错误并给出重试选项没有离线处理优雅降级、使用缓存数据5.3 安全罪Security Sins绝不总是token 存AsyncStorageSecureStore/Keychain硬编码 API 密钥使用环境变量跳过 SSL 证书固定生产环境固定证书记录敏感数据永不记录 token、密码、PII这些条目在 mobile-design/SKILL.md 中以更细的三列格式绝不做 / 为什么错 / 总是做重复出现并额外补充了架构罪一类业务逻辑不要写进 UI 层、不要全局状态化一切、深度链接要第一天就规划、不要跳过 dispose/cleanup 导致内存泄漏。SKILL.md 中对应的性能反模式还多两条跳过getItemLayout异步布局导致滚动抖动和跳过React.memo/const任何变化都触发全量重渲染。六、强制检查点Checkpoint写任何移动端代码前必须填表文档要求代理在写第一行移动端代码之前完成一个结构化检查点模板如下CHECKPOINT: Platform: [ iOS / Android / Both ] Framework: [ React Native / Flutter / SwiftUI / Kotlin ] Files Read: [ List the skill files youve read ] 3 Principles I Will Apply: 1. _______________ 2. _______________ 3. _______________ Anti-Patterns I Will Avoid: 1. _______________ 2. _______________文档同时给出了一份填写示范CHECKPOINT: Platform: iOS Android (Cross-platform) Framework: React Native Expo Files Read: SKILL.md, touch-psychology.md, mobile-performance.md, platform-ios.md, platform-android.md 3 Principles I Will Apply: 1. FlatList with React.memo useCallback for all lists 2. 48px touch targets, thumb zone for primary CTAs 3. Platform-specific navigation (edge swipe iOS, back button Android) Anti-Patterns I Will Avoid: 1. ScrollView for lists → FlatList 2. Inline renderItem → Memoized 3. AsyncStorage for tokens → SecureStore检查点的闭环规则是填不满检查点→ 回去读技能文件。这把读文件从建议变成了可验证的产出物——检查点里必须列出实际读过的文件清单从而把第三节的强制阅读协议落到实处。七、四阶段开发决策流程文档把完整的移动开发过程拆成四个阶段每个阶段都有明确的入口条件和出口条件Phase 1: 需求分析永远是第一步。编码前先回答四个问题平台是 iOS、Android 还是双端框架是 RN、Flutter 还是原生哪些功能需要无网络可用需要什么认证方式任何一项不清晰就回到第四节的提问协议。Phase 2: 架构。应用 decision-trees.md 中的决策框架确定框架选型、状态管理、导航模式、存储策略。Phase 3: 执行。按层构建导航结构核心屏幕列表视图必须 memoize数据层API、存储打磨动画、触觉反馈Phase 4: 验证。完成前逐条确认低端机上能否保持 60fps所有触摸目标是否 ≥ 44-48px离线场景是否优雅降级token 是否在 SecureStore 中交互元素是否都有无障碍标签框架选型这一步在 decision-trees.md 中有完整的决策树关键分叉点是需要 OTA 更新 快速迭代 web 团队背景 → React Native ExpoExpo Go 开发、EAS Update 生产 OTA需要像素级定制 UI 性能关键 → Flutter自绘引擎、双端单一 UI重度原生能力ARKit、HealthKit、特定传感器→ iOS 选 SwiftUI/UIKit、Android 选 Kotlin Jetpack Compose双端可考虑 Kotlin Multiplatform 共享逻辑。mobile-design/SKILL.md 内嵌了一个简化版决策树与 decision-trees.md 的完整版一致。八、快速参考触摸目标与列表代码范式文档的 Quick Reference 部分给出了可直接照抄的工程参数与代码范式这是该代理教原则 给底线值风格的典型体现。8.1 触摸目标参数iOS: 44pt × 44pt minimum Android: 48dp × 48dp minimum Spacing: 8-12px between targets8.2 React Native FlatList 标准写法const Item React.memo(({ item }) ItemView item{item} /); const renderItem useCallback(({ item }) Item item{item} /, []); const keyExtractor useCallback((item) item.id, []); FlatList data{data} renderItem{renderItem} keyExtractor{keyExtractor} getItemLayout{(_, i) ({ length: H, offset: H * i, index: i })} /这段写法同时满足了第五节反模式表中的四条memoize 的 Item 组件、useCallback包裹的 renderItem、来自数据的稳定keyExtractor、固定高度下的getItemLayout避免异步布局导致滚动卡顿。8.3 Flutter ListView.builder 标准写法ListView.builder( itemCount: items.length, itemExtent: 56, // Fixed height itemBuilder: (context, index) const ItemWidget(key: ValueKey(id)), )要点是itemExtent声明固定行高、以及const构造的ItemWidget——与 SKILL.md 中Flutter 关键规则一致const构造函数防止不必要的重建配合ValueListenableBuilder做定向状态更新child参数传入的昂贵组件不会随 builder 重建。8.4 动画性能边界SKILL.md 还给出了 GPU 加速与 CPU 绑定的属性边界这也是 RNuseNativeDriver: true要求的底层原因动画走 JS 线程会阻塞GPU 加速快transform、opacity——只动这两个CPU 绑定慢width/height、top/left/right/bottom、margin/padding——避免对这些属性做动画。九、质量循环与构建验证不许在脑子里跑通文档最后两部分定义了代理的自我验证义务这是它区别于普通风格指南的关键。9.1 质量控制循环Quality Control Loop编辑任何文件之后必须执行五步运行验证Lint 检查性能检查列表是否 memoize动画是否走原生驱动安全检查token 是否脱离明文存储无障碍检查交互元素是否都有标签全部通过后才报告完成。9.2 构建验证Build Verification文档用一个不可协商的声明收尾你无法在没有实际运行构建的情况下宣布移动项目完成并给出了动机AI writes code → Looks good → User opens Android Studio → BUILD ERRORS! This is UNACCEPTABLE. AI MUST: ├── Run the actual build command ├── See if it compiles ├── Fix any errors └── ONLY THEN say done模拟器路径速查按操作系统OS默认 SDK 路径模拟器路径Windows%LOCALAPPDATA%\Android\Sdkemulator\emulator.exemacOS~/Library/Android/sdkemulator/emulatorLinux~/Android/Sdkemulator/emulator模拟器操作命令PowerShell / Bash 两套# WINDOWS (PowerShell) # List emulators $env:LOCALAPPDATA\Android\Sdk\emulator\emulator.exe -list-avds # Start emulator $env:LOCALAPPDATA\Android\Sdk\emulator\emulator.exe -avd AVD_NAME # Check devices $env:LOCALAPPDATA\Android\Sdk\platform-tools\adb.exe devices# macOS / Linux (Bash) # List emulators ~/Library/Android/sdk/emulator/emulator -list-avds # macOS ~/Android/Sdk/emulator/emulator -list-avds # Linux # Start emulator emulator -avd AVD_NAME # Check devices adb devices按框架的构建命令框架Android 构建iOS 构建React Native (Bare)cd android ./gradlew assembleDebugcd ios xcodebuild -workspace App.xcworkspace -scheme AppExpo (Dev)npx expo run:androidnpx expo run:iosExpo (EAS)eas build --platform android --profile previeweas build --platform ios --profile previewFlutterflutter build apk --debugflutter build ios --debug构建输出处理决策树BUILD OUTPUT: ├── BUILD SUCCESSFUL → 继续 ├── BUILD FAILED → 先修复再继续 │ ├── 读错误信息 │ ├── 修复问题 │ ├── 重新构建 │ └── 循环直到成功 └── WARNINGS → 审查关键则修复常见构建错误对照表错误类型成因修复Gradle sync failed依赖版本不匹配检查build.gradle同步版本Pod install failediOS 依赖问题cd ios pod install --repo-updateTypeScript errors类型不匹配修复类型定义Missing imports自动导入失败补齐缺失的 importAndroid SDK versionminSdkVersion过低在build.gradle中更新iOS deployment target版本不匹配在 Xcode/Podfile 中更新宣布项目完成前的强制清单Android 构建无错误./gradlew assembleDebug或等价命令iOS 构建无错误跨平台项目App 能在真机/模拟器上启动启动时控制台无错误关键流程可用导航、主功能。文档最后用两句红线结束整个构建验证章节如果你跳过了构建验证而用户发现了构建错误你就是失败了以及在脑子里跑通不算验证——去跑构建。十、这套规范如何落地给读者的复用建议从仓库整体结构看mobile-developer 代理的价值不在某一条命令而在它把散落的移动端工程经验组织成了协议知识分层GEMINI.mdP0 全局规则路由、苏格拉底门、脚本清单→ 代理文件P1角色哲学、反模式、检查点、构建验证→ mobile-design 技能P212 个主题参考文件 审计脚本。三层各管各的粒度代理文件只保留必须在每次工作中执行的约束深水区细节放在技能文件里按需加载。约束可验证化强制阅读协议的检查产物是 Checkpoint 表格强制构建的产物是真实的BUILD SUCCESSFUL输出强制审计的产物是mobile_audit.py的运行结果。这比要重视性能之类的口号更接近工程实践。可直接移植文中三张反模式对照表、触摸目标参数44pt/48dp、8-12px 间距、FlatList/ListView.builder 代码范式、按框架的构建命令表与常见构建错误表都不依赖 Antigravity Kit 本身可以直接抽取为团队移动端的 Code Review checklist 或 CI 前的本地检查单。适用限制需要明示本规范基于文档内置的最佳实践与工具链版本Expo/EAS、Gradle、CocoaPods、Flutter CLI具体版本号与命令参数以当前各框架官方文档为准仓库内的代码片段是规范示例而非经过该仓库测试套件验证的工程代码。仓库自身是一个 web 项目其测试体系为 Vitest 单元/路由测试 Playwright E2E见 tests/ 目录文中移动端流程属于该仓库 AI 工具链的领域知识模块而非 Dillinger 编辑器本身的运行时功能。赞分享前端开发工具【免费下载链接】dillingerThe last Markdown editor, ever.项目地址https://gitcode.com/gh_mirrors/di/dillinger点击查看免费下载相关推荐Scrollify快速入门5分钟实现全屏滚动和区域吸附Scrollify快速入门5分钟实现全屏滚动和区域吸附 Scrollify是一款强大的jQuery插件专为实现流畅的全屏滚动和区域吸附效果而设计。无论是构建前端agents24 市场中的跨平台移动开发专家mobile-developer Agent 能力全景与实战指南agents24 市场中的跨平台移动开发专家mobile developer Agent 能力全景与实战指南 导读 本文围绕 mobile developerAI 插件AI 技能开发工具Azure MCP Server高级技巧外部MCP服务器集成与代理设置Azure MCP Server高级技巧外部MCP服务器集成与代理设置 Azure MCP Server是一款强大的工具能够将Azure的强大功能引入到你的上一篇Grafika 项目常见问题解决方案下一篇Feast 组件开发导航五大组件地图、变更强制清单、ProtoBytes 陷阱与文档落位规范创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考