Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hilen/tswechat
A WeChat alternative. Written in Swift 5.
https://github.com/hilen/tswechat
alamofire audio json keyboard project rxswift snapkit swift-3 ui wechat
Last synced: 1 day ago
JSON representation
A WeChat alternative. Written in Swift 5.
- Host: GitHub
- URL: https://github.com/hilen/tswechat
- Owner: hilen
- License: mit
- Created: 2016-02-27T10:01:20.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2019-07-28T08:57:46.000Z (over 5 years ago)
- Last Synced: 2024-12-20T13:04:25.609Z (1 day ago)
- Topics: alamofire, audio, json, keyboard, project, rxswift, snapkit, swift-3, ui, wechat
- Language: Swift
- Homepage:
- Size: 28.3 MB
- Stars: 3,766
- Watchers: 151
- Forks: 789
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
TSWeChat - A [WeChat](https://itunes.apple.com/cn/app/wei/id414478124) alternative, updated to Swift 5. [中文说明](Chinese_README.md)
## Requirements
- [Cocoapods](https://github.com/CocoaPods/CocoaPods) 1.2.0 +
- iOS 10.0+ / Mac OS X 10.9+
- Xcode 10.0+## Features
- Send your rich text, expression, image and voice.
- The cell image in `TSChatImageCell` is drawn by using `Mask Layer` . The chat background can be changed freely so that UI will look perfect.
- Custom expression keyboard, custom tool keyboard.
- Audio `wav` files can be automatically converted into `amr` files which facilite file transfer to Android devices. Both of the two type files have been doing cache.
- When you tap the `TSChatVoiceCell`. It will automatically check the cache and download it by [Alamofire](https://github.com/Alamofire/Alamofire).
- When you send the image, it will be stored locally by using the caching mechanism of [Kingfisher](https://github.com/onevcat/Kingfisher). After successfully uploaded, it will be automatically modified to image link's `MD5` value file name.
- The data are loaded from the JSON file. All the `Models` are created via [ObjectMapper](https://github.com/Hearst-DD/ObjectMapper) which is easy to convert model objects (classes and structs) from JSON.## Preview
Run `pod install` in the `Terminal` and then run `TSWeChat.xcworkspace` to see all the views.
![](images/preview1.gif)![](images/preview2.gif)
![](images/preview3.gif)
## Directory
Directory name|Introduction
---|---
Classes| To deposit different folders like `ViewController`, `View`. Sub directories are divided based on business logic, Such as `Message`,`Address Book`,`Tabbar`,`Me`,`Login` and etc, divided according to their functions.
Classes/CoreModule| To deposit encapsulation of business logic of basic classes, like HttpManager, Models, ApplicationManager and etc.
General|To deposit reused `View and Class` related with business logic, such as color extension.
Helpers|Non-business logic extension, such as: `UIView+Extension.swift`, `UIImage+Resize.swift` and etc.
Macro|To deposit macros and constant definitions used in the whole application, such as ` Notifications ` name , and the third party librarie's keys.
Resources| Resources. Such as `Assets.xcassets`, `Media.xcassets`, `JSON files`, `media files`, `plist files` and etc.
Vendor| To deposit the third party liabraries that cannot be installed by `Cocoapods`.
Supporting Files| To deposit the original files
Scripts| APNs script, export IPA file script and etc.
Sketch| To deposit the original Sketch files. All the recourses in the project are come from the WeChat IPA folder, but some images I can't find. So I decided to do it myself. Yeah, I love design, sometimes coder become a designer is feeling good. XD## Vendor
[See more details](https://github.com/hilen/TSWeChat/blob/master/Podfile)## License
TSWeChat is released under the MIT license. See [LICENSE](https://github.com/hilen/TSWeChat/blob/master/LICENSE) for details.## To Do
- The custom photo album
- WeChat custom ActionSheet
- Long press the chat cell
- The image viewer
- Address book
- GIF image cell in TSChatViewController
- QRCodeViewController
- ShakeViewController
- Send my address
- Video cell in TSChatViewController
- TimelineViewController
- Multilanguage support
- And so on...## Contributing
- All kinds of contributions (enhancements, new features, documentation & code improvements, issues & bugs reporting & todo task) are welcome. Let's make it better. XD