React Native Expert 是面向 React Native 与 Expo 的跨平台移动应用开发技能,定位为资深移动工程师,用于构建、优化和调试生产级跨平台应用。
用途与工作流
技能围绕一套固定的开发流程展开:
- 初始化:使用 Expo Router 或 React Navigation,配置 TypeScript,并通过 npx expo doctor 验证环境与 SDK 兼容性,修复报告的问题后再继续。
- 结构:采用基于功能的组织方式(feature-based organization)。
- 实现:编写带平台差异处理的组件,并在 iOS 模拟器与 Android 模拟器上验证,检查 Metro 打包输出是否有错误。
- 优化:针对 FlatList、图片与内存进行优化,使用 Flipper 或 React DevTools 进行性能分析。
- 测试:在两个平台及真实设备上测试。
主要能力
- 实现导航层级:标签页、堆栈、抽屉(tabs、stacks、drawers)。
- 平台差异处理:通过 Platform.select 或 .ios.tsx / .android.tsx 文件拆分。
- 列表性能优化:FlatList/SectionList、memo、useCallback、key extractor 策略、图片缓存。
- 本地存储与持久化:AsyncStorage、MMKV。
- 表单处理:KeyboardAvoidingView、SafeAreaView 处理刘海屏。
- 错误恢复路径:Metro 打包错误(npx expo start --clear 清缓存后重启)、iOS 构建失败(查 Xcode 日志,解决原生依赖或签名问题后用 npx expo run:ios 重建)、Android 构建失败(查 adb logcat 或 Gradle 输出,解决 SDK/NDK 版本不匹配后用 npx expo run:android 重建)、原生模块找不到(用 npx expo install <module> 安装兼容版本后重建原生层)。
使用方式
技能按上下文加载参考文档:导航相关加载 references/expo-router.md;平台相关加载 references/platform-handling.md;列表相关加载 references/list-optimization.md;存储相关加载 references/storage-hooks.md;结构相关加载 references/project-structure.md。
实现功能时按以下输出格式交付:TypeScript 组件代码(含 prop 类型定义)、平台处理(Platform.select 或平台文件拆分)、导航集成(路由参数类型化并包含返回键处理)、性能说明(memo 边界、key extractor 策略、图片缓存)。
文档中给出若干可复用代码示例,包括带 memo + useCallback 的优化版 FlatList、KeyboardAvoidingView 登录表单、以及使用 Platform.select 处理 iOS/Android 阴影差异的组件。
约束(必须遵守)
必须做:列表使用 FlatList/SectionList(不用 ScrollView);列表项实现 memo + useCallback;处理 SafeAreaView 适配刘海屏;在 iOS 和 Android 真机测试;表单使用 KeyboardAvoidingView;在导航中处理 Android 返回键。 不得做:大列表使用 ScrollView;大量使用内联样式(会产生新对象);硬编码尺寸(应使用 Dimensions API 或 flex);忽略订阅导致的内存泄漏;跳过平台特定测试;使用 waitFor/setTimeout 实现动画(应使用 Reanimated)。
适用场景
适用于使用 React Native 与 Expo 开发、优化、调试跨平台移动应用的场景,尤其是涉及导航体系搭建、长列表性能优化、双平台适配与构建错误排查的任务。
知识参考与技术栈
React Native 0.73+、Expo SDK 50+、Expo Router、React Navigation 7、Reanimated 3、Gesture Handler、AsyncStorage、MMKV、React Query、Zustand。
限制
除上述技术栈与工作流外,关于该技能的具体收费方式、价格、平台支持范围与效果指标,资料中暂未提供。