TLChat
High imitation of WeChat, iOSAppTemplate code reconstruction. This version of TLChat is implemented based on TLKit and ZZFLEX.
Recent plans
In the near future, the project structure will be sorted out and the entire project will be modularized at the code level, mainly including:
- The chat interface is reconstructed and logically independent;
- Main control logic arrangement;
- The main list is reconstructed using ZZFLEX to increase its scalability;
- ZZFLEX is a one-layer encapsulation of UIKit, which mainly includes a data-driven list framework and chain expansion of commonly used controls in UIKit. ZZFLEX related information is being compiled and is now open source;
- iOS11 adaptation;
- Other functions should be improved.
Implemented features
- Message interface
- Message list (new session joined, DB)
- Message slides to delete
- Friend search (supports fuzzy query)
- More menus (items can be customized dynamically)
- Address book interface
- Friends list (grouping algorithm, DB)
- Friend search
- Friend information (UI abstract template), information setting UI (using setting class UI template)
- New friends (read mobile phone contact information)
- Group chat (UI, DB)
- Tags (UI, logic)
- Discovery interface (using menu UI template)
- Moments (overall structure, part of UI)
- Scan (UI, QR code scanning, barcode scanning)
- Shake the UI
- Drift bottle UI
- Shopping, games (encapsulating WebView)
- My interface (using menu UI template)
- Personal information (using the settings class UI template)
- Emoticons (UI, network requests, downloads, management)
- Settings (abstract settings class UI universal template)
- font size
- Chat background
- my expression
- Clear chat history
- Chat interface
- Chat input box
- Message display view
- text message
- Picture message
- Emoticon messages
- voice message
- chat keyboard
- Emoticon keyboard (dynamic addition and deletion of emoticons)
- More keyboards
- Chat record storage (DB)
Planned features
- Chat interface: video message
- Chat interface: location message
- Friends circle: CoreText implements the functions of likes and replies from friends
- Chat module extraction
Third-party libraries mainly used by the project
- Masonry: automatic layout framework, simple and efficient
- FMDB: sqlite database management framework
- AFNetworking: network request
- SDWebImage: Internet image downloading and caching
- MJExtension: JSON - Model interconversion framework, efficient and low coupling
- MJRefresh: Pull down to refresh, pull up to load more, simple inheritance
- CocoaLumberjack: Log classification and localization
- MWPhotoBrowser: Picture selector
- SVProgressHUD: progress prompt box