首页
Andy's Den
取消

iOS组件化-业务组件拆分指南

1. 背景  随着公司的发展壮大,app的功能也不断增多,主工程的编译速度越来越慢,严重影响了开发效率,因此进行app不同功能的组件化改造变的非常有必要。  组件化改造后各组件团队可以聚焦于组件内部的开发,依赖于登录模块即可实现独立调试。各业务组件之间通过路由或协议+依赖注入的方式进行通信。 2. 创建组件  1. 在主工程创建一个SubModules的子文件夹,用于存放所有子组件,...

iOS StoreKit2新特性

1. 客户端相关:  1. 使用iOS15以上可用的Swift异步并发API进行开发,代码可以做到最简洁。  2. 使用JWS来校验订单,不需要服务器进行验票,客户端直接就能拿到支付成功后的订单。  关键代码如下: //根据productId获取product products = try await Product.products(for: Set(productIds)) //...

iOS IAP内购全流程解析

1. iOS IAP时序图 2. 实际操作  1. 用户点击”Add License“  2. iOS app调用自己服务器 ../productIds接口去获取界面上多个订阅项  3. 自己服务器返回productIds  4. 根据服务器返回展示单个年订阅、月订阅和无限制订阅列表给用户  5. 用户选择一个订阅计划,点击”Subscribe Now“  6. 通过prod...

iOS网络层设计二-缓存方案深入

1. YYCache分析  1. 优点:   1. 内部支持数据库存储、文件存储、或混合存储。   2. 使用LRU算法,最久未被使用的优先清除,以缓存总个数、缓存总开销、是否过期三个维度进行清理。  2. 缺点:   1. 是否过期这个维度不是根据写入时间去做的判断,而是根据访问时间,一次访问将更新刷新缓存时间,依此为基础再重新开始算过期时长   2. 所以,更加适合的是图片这种...

iOS网络层设计一-架构设计

一、我认为,一个设计合理的网络层应支持以下方面: 1. 应该支持缓存(三方框架:hyperoslo/Cache)  1. 使用缓存有以下优点:使用缓存可以降低服务器的压力,更快速的响应用户的请求,提升用户体验。   1. 对于很长时间都不会有变化的接口来说,可以设置一个时效性,在时效性之内使用缓存,当然这个时效性要通知到客服及Cloud人员,以便支持用户需求。localOrRemote...