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...
- 1
- 1 / 1