Telegram-iOS通过200多个子模块和200万行代码来构建源代码。我将这些模块大致分为五类:
App,支持主要应用功能的模块,例如基础工具,UI,网络等。
VoIP,语音通话功能(已于2017年3月发布)。
Watch,Watch应用程序。
TON,与新区块链平台的实验性集成。
3rd-party,项目所依赖的其他开源库
Signal定义了一系列的操作符来服务基础函数。这些基础函数根据它们的功能被划分为几类:Catch,Combine,Dispatch,Loop,Mapping,Meta,Reduce,SideEffects,Single,Take,和Timing。
有一个方便的|>操作员可以将这些操作符像管道一样链接起来:
该操作符|>也许是受到JavaScript中建议的管道操作启发。通过Swift的结尾闭包支持,可以直观地读取所有操作符的流水线:
Telegram-iOS内置了几个用于冷启动的种子地址:
let seedAddressList: [Int: [String]]
seedAddressList = [
1: [“149.154.175.50”, “2001:b28:f23d:f001::a”], //AS59930
2: [“149.154.167.50”, “2001:67c:4e8:f002::a”], //AS62041
3: [“149.154.175.100”, “2001:b28:f23d:f003::a”], //AS59930
4: [“149.154.167.91”, “2001:67c:4e8:f004::a”], //AS62041
5: [“149.154.171.5”, “2001:b28:f23f:f005::a”] //AS62014
]
Telegram 相关网站:
“telegra.ph/“,
“te.legra.ph/“,
“graph.org/“,
“t.me/iv?”,
“telegram.org/blog/“,
“telegram.org/tour/“
编译方式:
官方代码下载下来直接编译会有一些报错,在iss中找到一些编译脚本配置后编译正常,参考如下:
python3 build-system/Make/Make.py –cacheDir=”$HOME/telegram-bazel-cache” generateProject –configurationPath=”$HOME/telegram-configuration/appstore-configuration.json” –disableExtensions –disableProvisioningProfiles –codesigningInformationPath “$HOME/telegram-configuration/fake-codesigning”