SuperAPI AI 工具集

mobile-developer

编程与开发

查看项目

更新于 10-15 08:46

技能介绍

用途

本技能提供原生移动开发专业能力,专精 Swift(iOS)与 Kotlin(Android),用于构建平台原生应用,最大化设备能力、性能以及 iOS 与 Android 的操作系统特性,例如灵动岛、小组件和折叠屏。

适用场景

  • 构建需要 100% 原生性能的高保真应用
  • 实现复杂的后台服务(位置追踪、音频处理)
  • 为 React Native / Flutter 开发 SDK 或原生模块
  • 与系统 API 深度集成(Siri、快捷指令、HealthKit、Wallet)
  • 需要零依赖架构(银行、医疗类应用)
  • 在系统新特性发布首日即采用前沿 OS 特性(如 iOS 18 API)

技术选型与决策框架

技能提供“原生 vs. KMP vs. 跨平台”的决策框架:

  • 纯原生(Swift/Kotlin):需要深度系统集成、零妥协 UX、团队规模较大(需 iOS/Android 独立团队)时适用。
  • Kotlin Multiplatform(KMP):仅共享业务逻辑、需要原生 UI(iOS 用 SwiftUI、Android 用 Compose)、已有原生应用适合迁移时适用。
  • 跨平台(RN/Flutter):UI 一致性优先、单一代码库优先时适用。

UI 框架选择建议: iOS 上 SwiftUI 成熟且为默认选择,建议 95% 的新应用使用,仅在复杂自定义手势或遗留场景回退 UIKit;UIKit 属于遗留但稳定,仅用于维护或封装旧库。 Android 上 Jetpack Compose 为标准默认,建议 100% 新应用使用,XML/View 属于遗留,仅用于维护。

并发模型最佳实践: iOS 采用 Swift Concurrency,使用 async/await 与 Actor 保证线程安全,避免 GCD/闭包。 Android 采用 Kotlin Coroutines,使用 suspend 函数与 Flow 处理流,耗时任务使用 Dispatchers.IO。

核心工作流

  • 现代 iOS 架构(SwiftUI + MVVM):使用 Swift 6 并发与 SwiftUI 构建可扩展 iOS 应用,目标 iOS 17.0+,启用 Swift 严格并发检查;用 @Observable 定义 ViewModel,在 View 中使用 @State 与 .task 加载数据。文中给出了 ProductListViewModel 与 ProductListView 的示例代码。
  • Kotlin Multiplatform(KMP)搭建:在 iOS 与 Android 之间共享网络与数据库逻辑。共享模块结构为 shared/src/commonMain、androidMain、iosMain。使用 Ktor 编写网络层,Android 在 ViewModel 中直接调用,iOS 通过 Swift 互操作调用(旧版 Kotlin 可能需要包装以桥接 async/await)。

常见反模式

  • “Massive View Controller”:数千行的 ViewController 混入网络、逻辑与 UI,导致无法测试与维护。建议 iOS 使用 MVVM 或 TCA,Android 使用 MVI 或 MVVM,彻底分离逻辑与 UI。
  • 忽略生命周期事件:在 onAppear 发起网络请求却不在 onDisappear 取消,或假设应用总是从头启动(忽略 Android 进程死亡)。会导致内存泄漏、崩溃与数据丢失。建议使用结构化并发(SwiftUI 的 .task 会自动取消),Android ViewModel 用 SavedStateHandle 跨进程死亡持久化状态。
  • 阻塞主线程:在 Main/UI 线程解码 JSON 或过滤大列表,导致掉帧、应用无响应(Android ANR)甚至被看门狗杀死。建议将重工作移到后台调度器(Dispatchers.Default / Task.detached)。

示例(资料提供)

  1. 企业银行应用:Clean Architecture + MVVM,Face ID/Touch ID 与安全隔区集成,证书固定与重试,本地加密与周期同步。给出 iOS 生物认证的示例代码。
  2. HIPAA 合规医疗应用:AES-256 静态加密、完整审计日志、会话超时自动登出、TLS 1.3 与证书固定。给出 Android EncryptedSharedPreferences 示例代码。
  3. BLE 物联网控制应用:后台扫描与过滤、自动重连与退避、协议缓冲区反序列化、本地命令队列与同步;SwiftUI + Jetpack Compose,Combine/Flow 响应式状态管理。

最佳实践与质量清单

  • 平台专属:iOS 优先 SwiftUI,复杂动画用 UIKit;Android 默认 Compose 并逐步从 XML 迁移;导航使用 NavigationPath(iOS)与 NavHost(Android);状态管理使用 Observable(iOS)与 StateFlow(Android)。
  • 性能:懒加载、图片内存与磁盘缓存、监控内存压力、减少后台操作并使用批量更新。
  • 安全:Keychain(iOS)与 EncryptedSharedPreferences(Android)安全存储、证书固定与 TLS 配置、输入校验、发布版启用 ProGuard/R8 混淆。
  • 测试:单元测试覆盖 ViewModel、仓库与业务逻辑;UI 测试覆盖关键流程;集成测试覆盖 API 与数据库;性能测试覆盖启动时间、内存与滚动性能。
  • 分发:遵循 App Store 审核指南、优化 Play Console 与测试轨道、企业分发证书、规划大版本向后兼容。
  • 质量清单涵盖平台标准(Dynamic Type、深色模式、配置变更、返回导航栈、iPad 自适应布局、多屏幕尺寸与密度)、性能(60fps/120fps 滚动、无循环引用/Activity 泄漏、2 秒内可用、高效网络批处理与缓存)、架构(UI 无业务逻辑、依赖注入、ViewModel 单元测试、深链支持)与安全(敏感数据存 Keychain/Keystore、SSL Pinning、发布版无 PII 日志、生物或安全认证、符合 App Store/Play Store 指南)。

技能升级(Escalate)信号

当客户预算只够一名开发者却要做两个应用、应用只是简单表单工具且不使用硬件、双平台上线时间少于 4 周时,应升级到跨平台移动应用开发技能。