分析版本:Telegram 8.7.1
一、 联系人模块:ContactsController
-
DeviceContactInfoController:
导航栏Navigation
右上角按钮,调用系统的创建联系人。 -
PeersNearbyController:
cellFind People Nearby
的响应界面,它的cellCreate a Local Group
则是跳转到PermissionController
中间页,进入创建当前位置群聊的业务逻辑。 -
InviteContactsController:
cellInvite Friends
的响应界面,邀请业务相关。
二、消息列表模块:ChatListController
-
ComposeControllerl:
导航栏Navigation
右上角按钮响应控制器,功能为创建新的消息;其页面有三个 cell 响应事件。
New Group:
对应控制器ContactMultiselectionController
;
New Contact:
对应控制器DeviceContactInfoController
,创建联系人公用控制器。
New Channel:
对应控制器PermissionController
,中间页公用展示控制器,进入创建 Channel 业务逻辑。 -
ChatController:
消息列表被点击,进入聊天消息页面,核心控制器,里面16000行代码,各种逻辑嵌套,高度耦合,极难阅读区分对应功能模块; 点击导航栏Navigation
右上角按钮,进入PeerInfoScreen
对应场景。
三、设置模块:PeerInfoScreen
以默认设置模块为例:
-
@ Set Username:
对应UsernameSetupController
;设置用户名。 -
Saved Messages:
对应ChatController
;收藏夹。 -
Recent Calls:
对应CallListController
;最近呼叫。 -
Devices:
对应RecentSessionsController
;设备。 -
Chat Folders:
对应ChatListFilterPresetListController
;对话文件夹。 -
Notifications and Sounds:
对应NotificationsAndSoundsController
;通知和声音。 -
Privacy and Security:
对应PrivacyAndSecurityController
;隐私和安全。 -
Data and Storage:
对应DataAndStorageSettingsController
;数据和存储。 -
Appearance:
对应ThemeSettingsController
;外观。 -
Language:
对应LocalizationListController
;语言。 -
Stickers and Emoji:
对应InstalledStickerPacksController
; -
Ask a Question:
对应ChatController
;我有疑问。 -
IM FAQ:
跳转web链接Url ;常见问题。