UI视图层
UI大部分放在了TelegramUI这个工程下面,大部分采用facebook工程是的第三方的UI异步绘制框架Texture(以前叫AsyncDisplayKit)来提高接口的流畅性
而对于异步事件的处理,采用了ReactiveX响应式编程的思想。采用类似于Rxswift框架的SSignalKit。
业务层
在业务层,把UI和逻辑处理抽离开来形成了TelegramUI 和 Telegram-iOS这两个组件。Telegram-iOS我们可以理解为这个工程的组织者,他负责组织和协调各个组件。
协议层
在协议层,用了自家非常安全的MTProtoKit协议,已经对TL语言的swift实现TelegramApi,能够自己定义一套数据的表达语言,在多端同步使用。
基础组件层
在基础组件层,作者把每一个功能模块独立出来,特别需要强调的是TelegramCore这个库,作为核心支撑库。
Telegram API manuals: https://core.telegram.org/api
MTproto protocol manuals: https://core.telegram.org/mtproto
项目结构参考
https://www.jianshu.com/p/6c9256a4d031?from=timeline&isappinstalled=0