Chatto

A lightweight framework to build chat applications, made in Swift

4488
596
Swift

Chatto Build Status codecov.io CocoaPods Compatible Carthage compatible

Chatto is a Swift lightweight framework to build chat applications. It’s been designed to be extensible and performant. Along with Chatto there is ChattoAdditions, a companion framework which includes cells for messages and an extensible input component. You can find more details about how it was implemented in our blog. See them in action!

Features

  • Calculation of collection view changes and layout in background
  • Supports pagination in both directions and autoloading
  • Message count contention for fast pagination and rotation with thousands of messsages
  • Accessory view revealing by swiping from right
  • Interactive keyboard dismissal
  • Text bubbles
  • Photo bubbles
  • Extensible input bar

How to use

Check the wiki!

How to contribute

If you just have a question, please reach us in our gitter room

If you’d like to file a bug report, suggest changes or submit a pull request, please check our contribution guide

How to install

CocoaPods

  1. Make sure use_frameworks! is added to your Podfile.

  2. Include the following in your Podfile:

# Swift 5
pod 'Chatto', '= 4.1.0'
pod 'ChattoAdditions', '= 4.1.0' # if you want to use the cells or the input component
# Swift 4.2
pod 'Chatto', '= 3.4.0'
pod 'ChattoAdditions', '= 3.4.0' # if you want to use the cells or the input component
# Swift 4
pod 'Chatto', '= 3.3.1'
pod 'ChattoAdditions', '= 3.3.1' # if you want to use the cells or the input component
# Swift 3
pod 'Chatto', '= 3.2.0'
pod 'ChattoAdditions', '= 3.2.0' # if you want to use the cells or the input component
# Swift 2.x
pod 'Chatto', '= 2.1.0'
pod 'ChattoAdditions', '= 2.1.0' # if you want to use the cells or the input component

If you like living on the bleeding edge, you can use the master branch with:

pod 'Chatto', :git => 'https://github.com/badoo/Chatto', :branch => 'master'
pod 'ChattoAdditions', :git => 'https://github.com/badoo/Chatto', :branch => 'master'
  1. Run pod install

Carthage

If you’re using Carthage, simply add Chatto to your Cartfile:

# Swift 5
github "badoo/Chatto"
# Swift 2.x
github "badoo/Chatto" "swift-2"

Manually

  1. Clone, add as a submodule or download.
  2. Drag and drop Chatto and/or ChattoAdditions project to your workspace
  3. Add Chatto and/or ChattoAdditions to Embedded binaries

License

Source code is distributed under MIT license.

Blog

Read more on our tech blog or explore our other open source projects