组件化与统一路由建设
1.组件化Pod组件化目的有2个1梳理代码模块关系逻辑更加清晰结构更加合理降低耦合方便后续功能开发和维护。2提高开发效率之前所有代码全在一个工程中开发一个简单的功能都要编译整个项目Pod拆分后在功能开发分支只引入涉及到的Pod库。经常出现工程文件冲突需要手动检查工程文件来处理冲突Pod拆分后极大的减少了工程文件的冲突。整体分成3层架构项目中业务代码按照功能模块进行拆分比如PhotoBusinessArticleBusinessVideoBusinessUserCenterBusiness这些模块作为业务层业务库之间相互独立互不引用位于最高层。抽取公共部分作为中间层比如日志库、CacheManager、ToastManagerSkinManagerUserManager抽取最基础的库作为基础层比如AFNetworking、SDWebImage、FMDB、SNBasicKit这些。上层依赖下层同层之间互不依赖。2.统一路由建设统一路由建设是伴随着组件化一起开发的因为组件化完成后业务之间互不依赖页面如何跳转服务如何调用统一路由应运而生。1大部分的功能iOS端、安卓端和H5前端都实现了为了保持三端统一。2而且App无论是安卓端还是iOS端有着很多被H5呼起的场景以及Hybrid跳转端内页面的需求使用统一路由就能很好的处理这些场景。参考了业界方案CTMediator、BeeHive的实现CTMediator缺点1、直接硬编码方式保存类名和方法名降低了可读性也降低了代码的编写效率。而且还需要新建一个Pod存放一个CTMediator的类别在里面进行硬编码并调用CTMediator里面的方法。2、由于是在运行时才确定的调用方法调用方式由 [obj method] 变成 [obj performSelector:‘‘method’’]。这样的话在调用时就缺少类型检查编译期无法发现问题。综合来说CTMediator的优点是无需注册代码量较少性能较好规范性约束和可读性一般。BeeHive需要注册的过程能提前发现问题性能和代码量一般可读性较好。我在任务中具体负责路由的注册和模型的自动赋值runtime以及参数别名处理。路由格式:sinanews://sina.cn/audio/book/player.pg?dataidxmly:483299554326892544以sinanews开头这个是scheme后面跟着pathaudio表示是音频业务而audio/book/player.pg表示了这个是听书的播放器这个是唯一的是前者的诸多业务之一后面的dataid则是业务方需要的参数。配合路由管理后台负责所有路由的注册、参数、审核、生成地址。处理路由的逻辑由connector、model和pathplayer.pg组成其中model是用来保存路由中的参数并传递给具体的业务方。通常情况下一个业务模块Pod中不止一个ViewController所以connector来根据path来区分具体业务的ViewController。connector都是遵守ConnectorProtocol里面定义了处理路由的方法。在App启动后进行调用各个业务的Model进行注册各个业务的Module定义在.m文件中通过__attribute((used, section(DATA,“#sectname” )))指令编译时写入到Mach-O文件中再定义一个__attribute((constructor))的方法这个方法会在在dyld加载App时当Load方法执行完毕后开始执行contructor时执行。这个方法里面会收集所有的__DATA段定义的Module。等App完成SDK的初始化后调用各个Module进行setup。setup里面的流程1将[connector class]和connectorProtocol进行绑定注册到BeeHive中。2将[model class]和modelProtocol进行绑定注册到BeeHive中。3将connectorProtocol和modelProtocol和path进行绑定注册到路由管理器中。这样路由管理器在处理路由时解析出path和参数根据path能找到modelProtocol在BeeHive中找到[model class]并实例化保存路由中的参数。connector同理最后由connector处理具体的业务逻辑。一般的业务通信和跳转都可以用统一路由来完成但还有一个特殊情况需要传递model这种情况下需要定义协议放在公共Pod中去这算是一个不太优雅的解决方案。参考Category 特性在 iOS 组件化中的应用与管控从预编译的角度理解Swift与Objective-C及混编机制Swift 与 Objective-C 混编时我们是如何将编译时间优化了 35%

相关新闻

为什么你的Cursor路由总在CI/CD中失效?揭秘Git Hooks + Docker Build阶段的4层环境变量注入冲突(含可复用Shell脚本)

为什么你的Cursor路由总在CI/CD中失效?揭秘Git Hooks + Docker Build阶段的4层环境变量注入冲突(含可复用Shell脚本)

更多请点击: https://kaifayun.com 第一章:Cursor AI 路由配置的底层设计哲学 Cursor AI 的路由系统并非传统 Web 框架中基于路径字符串匹配的静态映射,而是构建在**意图识别—上下文感知—动态策略生成**三层抽象之上的可编程基础设施。其核…

2026/7/15 14:03:33阅读更多 →
签约“百城千园行”,格创东智加速打造绿色低碳智慧园区

签约“百城千园行”,格创东智加速打造绿色低碳智慧园区

在国家数字化转型大背景下,园区正在成为“数字经济”、“双碳”等相关指导政策的重要落脚点,随着工业互联网的快速发展,工业互联网园区也在加速崛起。工业园区、高新技术产业开发区、工业化产业示范基地及各种产业集聚区正在加速引入工业互联…

2026/7/15 14:03:33阅读更多 →
Awesome Rust Streaming的未来发展:如何让这个社区项目持续成长

Awesome Rust Streaming的未来发展:如何让这个社区项目持续成长

Awesome Rust Streaming的未来发展:如何让这个社区项目持续成长 【免费下载链接】awesome-rust-streaming A community curated list of Rust Language streamers 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-rust-streaming Awesome Rust Streami…

2026/7/15 14:03:33阅读更多 →
开发者必看:SingGuard-8b-GGUF的Fast与Fast-Slow模式应用场景与代码示例

开发者必看:SingGuard-8b-GGUF的Fast与Fast-Slow模式应用场景与代码示例

开发者必看:SingGuard-8b-GGUF的Fast与Fast-Slow模式应用场景与代码示例 【免费下载链接】SingGuard-8b-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/SingGuard-8b-GGUF SingGuard-8b-GGUF是一款策略自适应的多模态安全护栏模型&#xf…

2026/7/15 15:59:25阅读更多 →
计算机毕业设计之中医处方推荐系统

计算机毕业设计之中医处方推荐系统

中医处方推荐系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从两个对象:由管理员和医生来对系统进行设计构建。主要功能包括:个人信息修改,对医生、常见处方…

2026/7/15 15:59:25阅读更多 →
AI简历被拒率高达67%?揭秘2024最新ATS算法逻辑,及ChatGPT精准适配的7个隐藏指令

AI简历被拒率高达67%?揭秘2024最新ATS算法逻辑,及ChatGPT精准适配的7个隐藏指令

更多请点击: https://intelliparadigm.com 第一章:AI简历被拒率高达67%?揭秘2024最新ATS算法逻辑,及ChatGPT精准适配的7个隐藏指令 2024年,主流ATS(Applicant Tracking Systems)系统已全面升级…

2026/7/15 15:59:25阅读更多 →
3分钟掌握洛雪音乐音源配置:从零搭建个人音乐库的完整指南

3分钟掌握洛雪音乐音源配置:从零搭建个人音乐库的完整指南

3分钟掌握洛雪音乐音源配置:从零搭建个人音乐库的完整指南 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 还在为音乐资源匮乏而烦恼吗?想要打造一个功能强大的个人音乐库却…

2026/7/15 15:59:25阅读更多 →
为什么83%的企业ChatGPT项目在3个月内失败?——拆解行业入门最关键的5个隐性门槛与破局节点

为什么83%的企业ChatGPT项目在3个月内失败?——拆解行业入门最关键的5个隐性门槛与破局节点

更多请点击: https://codechina.net 第一章:为什么83%的企业ChatGPT项目在3个月内失败? 企业级大模型落地并非“接入API即成功”。一项覆盖217家已启动LLM项目的中大型企业的追踪调研显示,83%的ChatGPT集成项目在上线后90天内陷入…

2026/7/15 15:59:25阅读更多 →
Burp Suite中文汉化终极指南:3步轻松实现安全测试工具界面中文化

Burp Suite中文汉化终极指南:3步轻松实现安全测试工具界面中文化

Burp Suite中文汉化终极指南:3步轻松实现安全测试工具界面中文化 【免费下载链接】BurpSuiteCN-Release BurpSuite汉化发布 项目地址: https://gitcode.com/gh_mirrors/bu/BurpSuiteCN-Release 还在为Burp Suite复杂的英文界面而苦恼吗?Burp Sui…

2026/7/15 15:54:24阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/15 6:42:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/15 6:12:45阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/15 10:54:00阅读更多 →
AI框架决定企业AI能走多远

AI框架决定企业AI能走多远

企业AI建设的第一性原理 企业搞AI,最关键的决定是什么?不是选哪家大模型,不是先做哪个场景,不是招多少AI人才——而是选哪个AI开发框架。 为什么?因为框架决定了企业AI能力的"天花板"。选对了框架&#xff0…

2026/7/15 0:01:30阅读更多 →
Java企业为什么需要AI框架

Java企业为什么需要AI框架

Java企业在AI时代的尴尬处境 Java是全球企业级应用开发的主流语言——全球超过一半的企业系统跑在Java上。但在AI浪潮面前,很多Java企业感到尴尬:大模型的接口是各种语言的,AI开发社区以其他语言为主流,似乎Java在AI时代"掉队…

2026/7/15 0:01:30阅读更多 →
CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

1. 项目概述:为什么需要关注CC3230x的SD主机、定时器与低功耗?在物联网和嵌入式设备开发领域,我们常常面临一个核心矛盾:设备需要具备强大的连接能力、可靠的数据存储和实时控制功能,同时又必须严格控制功耗以延长电池…

2026/7/15 0:01:30阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/15 8:52:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/15 14:06:23阅读更多 →