跳转到正文
YGJoon 技术博客

iOS 工程架构与并发

本专题聚焦 iOS 应用中的模块边界、页面状态、数据依赖与 Swift 并发协作,并通过网络、支付、地图和测试场景讨论工程取舍。每篇文章尽量把状态变化、失败分支和验证方式放进代码路径中说明。

适合人群:适合维护 Swift/SwiftUI 应用、准备拆分模块,或正在处理并发请求、页面状态和回归测试问题的开发者。

阅读建议:可以从目录依赖与数据流文章建立基础,再按业务场景选择并发、地图、支付或 XCTest 文章阅读。

共 14 篇,按入门到进阶的时间顺序排列。

  1. SwiftUI 启动流程设计:隐私同意与登录恢复状态

    隐私确认、登录恢复和系统回调谁先发生,会影响首屏状态。本文用显式启动状态串起确认、恢复与首页创建。

  2. iOS 依赖注入设计:目录数据协议与渐进式替换

    页面要能替换数据源,协议边界就应位于网络实现之外。本文用目录分类和分页加载展示依赖注入的落点。

  3. iOS 表单请求校验:金额边界与提交条件收敛

    金额、地点和时间等字段都齐全,怎样把提交条件集中到一处?本文用纯请求构造器给出一条可测的校验路径。

  4. iOS Core Location 首页刷新:手动选址优先与位置阈值

    手动选址优先于设备定位,小幅位置漂移也不必触发刷新。本文用单飞加载和距离阈值安排附近内容更新。

  5. iOS MapKit 地图选址:请求竞态与镜头状态同步

    地图拖动、区域搜索和定位查询可能乱序返回。文章把镜头状态与候选地址分开保存,再用请求标识丢弃旧结果。

  6. iOS 订单状态矩阵:后端状态与页面操作映射

    后端状态码应映射成明确的页面操作。文章对照列表、详情、状态卡和条目卡的入口差异,并给出可读的映射方式。

  7. iOS 退款流程设计:金额校验、申请理由与进度状态

    退款表单展示服务端金额,用户填写理由后提交申请;进度再按订单状态更新。金额、账号和异步响应各有边界。

  8. iOS 支付回跳对账:待处理记录持久化与服务端确认

    支付 SDK 回调只是一个信号,服务端交易状态才是对账依据。本文将待处理记录持久化,并在应用回到前台时重查。

  9. iOS Keychain 会话隔离:请求快照与迟到响应处理

    切换账号时,棘手的往往不是 Keychain 读写,而是旧请求稍后返回。会话代次和请求快照可阻止迟到数据写入新账号界面。

  10. SwiftUI 详情页并发加载:请求竞态与导航状态保留

    详情区块并发加载后,导航返回时怎样避免重复请求和过期覆盖?示例用请求代次与路由状态处理这两个边界。

  11. iOS 图片缓存与对象存储:actor 并发去重和尺寸变体

    同一图片被多个视图同时请求时,actor 合并下载并缓存解码结果;不同展示尺寸则通过对象存储变体分别获取。

  12. Swift actor 网络客户端设计:共享上下文隔离与请求取消

    多个请求共享认证信息或取消状态时,网络客户端会遇到竞态。这里用 actor 管理共享上下文,同时让请求方表达取消意图。

  13. XCTest 异步业务回归:规则边界与并发时序控制

    异步回归要验证规则,也要控制时序。文章演示依赖替换和可控等待如何覆盖成功、失败及并发边界。

  14. iOS 工程架构审查:模块边界、安全风险与发布检查

    发布前的工程审查从模块依赖延伸到凭据、日志与计价边界。文中用匿名化客户端代码说明每项风险从哪里查。