A Swiftified, open source, Protocol-Orietated Messages UI Kit for iOS
- SOLID Principle
- Protocol-Orientated Programming to follow the SOLID Principle
- MVC design pattern
- Easy customization and extension for clients
- Swift 3.0
- Xcode 8
- iOS 8
Carthage (Recommended)
github "xmkevinchen/CKMessagesKit"
platform :ios, '9.0'
target 'Your target' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'CKMessagesKit', :git => 'https://github.com/xmkevinchen/CKMessagesKit.git', :branch => 'master'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
Checkout the Sample project in the repository
Use Carthage to download the dependencies of the Sample project
- More build-in message types support
- Image
- Video
- Location
Submit CKMessagesKit to CocoaPods, needs to wait CocoaPods 1.1.0.rc.2 version- Async message content presenting mechanism.
- Try to use
CKViewLayout
protocol to layout message cell, instead of using massive AutoLayout constraint.
- Refactor the message size calculation logic, centralize them into the
CKMessageSizeCalculator
, remove the logic fromCKMessagesViewLayout
- When connect to hardware keyboard,
CKMessagesView
now just update its contentInset with input toolbar size
Finally, CKMessagesKit was inspired by [JSQMessagesViewController](https://github.com/jessesquires/JSQMessagesViewController) and [LayerKit](https://layer.com/). Thanks to Authors and Contributors
However, there're some reasons pushing me to create CKMessagesKit by myself
- Pure Swift implementation, written in Swift 3.0
- Nested collection UI presentation support, like using
UICollectionView
,UITableView
inUICollectionViewCell
to show such Data Card UI design - Protocol-Orientated Programming & SOLID Principle strictly follows