基于Telegram二次开发 --- App一级页面逻辑

前言:

Telegram 这个项目 clone 的时候我们就能直观的看到这个项目是有多大,整整32800多个文件需要 clone 下来,还经常因为在 clone 过程中丢失文件造成各种各样的问题;

更痛苦的是,当我们编译出项目文件,文件里几乎找不到任何注释信息,导致我们基于Telegram二次开发时极大地上手难度,与信息壁垒,但我们将程序Run起来以后,又会惊叹于此App简洁且流畅的使用体验;

从简入繁,我们先从App页面逻辑跳转以及它们所对应的控制器逐个击破。


分析版本:Telegram 8.7.1


Telegram App.png

一、登录流程

RMIntroViewController: App启动完毕我们看见的第一个界面,由pageView组成六个介绍文案,提供了 Start Messaging 交互按钮,进入到登录流程界面,第一个页面还挺让我诧异,此页面居然没有被swift重构,还是使用的OC。

image.png

AuthorizationSequencePhoneEntryController: 点击 Start Messaging 以后进入的页面,输入对应的国家区码和手机号,确认无误以后,点击右上角 Next 按钮,进入验证码界面。
AuthorizationSequenceCodeEntryController: 验证码界面,输入收到的验证码,验证成功以后就进入主界面。

二、主界面

TabBarController: 登录以后的 rootViewController 分为三个模块。

image.png

ChatListController: 消息列表模块, TabBarController 默认展示的控制器,负责收发消息的管理。
ContactsController: 联系人模块,负责联系人管理。
PeerInfoScreen: 设置模块, PeerInfoScreen 从命名上就可以看出它跟其他 Controller 的不同,它是作为 Screen(场景) 来构建了多个公共模块,比如 ChatController 点击右上角按钮进入的详情页,以及设置模块右上角 Edit 按钮,切换成编辑模式。

三、Debug界面

Review 代码时发现,为了方便调试,Telegram 提供了 DebugController ,进入这个界面的方式很有意思:连续点击 Tabbar 第三个item Settings 10下 ,我们就能进入到隐藏的Debug界面。

image.png

以上,就是Telegram提供的所有的一级页面。

你可能感兴趣的:(基于Telegram二次开发 --- App一级页面逻辑)