TSWeChat

A WeChat alternative. Written in Swift 5.

3686
808
Swift

TSWeChat 中文说明

A WeChat alternative, written in Swift 4.

运行环境

  • Cocoapods 1.2.0 +
  • iOS 10.0+ / Mac OS X 10.9+
  • Xcode 9.0+

##预览
在终端里面运行 pod install,然后运行TSWeChat.xcworkspace 来查看所有的 UI

特色

  • 可以发送富文本,表情,图片还有声音。
  • TSChatImageCell 中显示的图片使用 Mask Layer 进行绘制,你可以自由的切换聊天背景图,这样看上去 UI 也不会糟糕。
  • 自定义的表情键盘,自定义的工具键盘。
  • 录音的 wav 文件会被自动转换成 amr文件,这样可以方便和 Android 设备进行文件传输。这两种文件都已做了缓存。上传使用 amr 文件,播放使用 wav 文件。
  • 当你点击声音 TSChatVoiceCell 的时候,它会自动检测缓存,如果没有那么会使用 Alamofire 自动进行下载。
  • 当你发送图片的时候,系统会使用 Kingfisher 缓存机制存放在本地,上传成功后会自动修改成图片链接的 MD5 值文件名字。
  • 数据是从 JSON 文件里面加载来的, 所有的 Model 是使用 ObjectMapper 创建的。

文件目录

目录名称 介绍
Classes 主要存放项目中的不同业务的 ViewControllerViewModel 等文件,子文件夹按照业务逻辑划分。比如按照功能划分有 Message,Address Book,Time,Me,Login 子目录等
Classes/CoreModule 主要存放一些基础类库的业务逻辑的封装,比如Network,Socket 引擎,Model文件夹
General 这个目录放会被重用的 Views/Classes 和 Categories,存放和业务逻辑相关的 class,比如颜色的分类,
Helpers 存放一些非业务逻辑的类或者 category
Macro 存放整个应用会用到的宏定义,常量名等,比如 Notifications名称,页面 title 名称,第三方库所使用的 key 等
Resources 存放资源文件,包括Assets.xcassets,Media.xcassets音频文件plist 文件
Vendor 存放一些第三方库,尽量使用cocoapods来管理,万不得已可以存放在这里
Supporting Files 项目原有的目录
Scripts APNs 测试脚本, 导出 IPA 文件的脚本目录,当然还有一些其他的,慢慢持续添加。
Sketch 存放一些图片的 Sketch 源文件。项目工程中的所有资源文件都来自 微信的 IPA 文件夹, 但是有一些资源是没有的或者没有找到,于是我决定自己来做。体验一下当设计师的感觉,2333

第三方库

License

MIT license. 可以点击目录中 LICENSE 文件查看