Swiftpack.co - badoo/Chatto as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by badoo.
badoo/Chatto 4.1.0
A lightweight framework to build chat applications, made in Swift
⭐️ 4,427
🕓 2 years ago
.package(url: "https://github.com/badoo/Chatto.git", from: "4.1.0")

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!


  • 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


  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


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

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


  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


Source code is distributed under MIT license.


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


Stars: 4427
Last commit: 2 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

Chatto 4.1.0
2 years ago

4.1.0 (May 20, 2021)


  • Dynamic content insets for compond bubble #685 by @magic146
  • Added support for Swift Package Manager #690 by @NicholasMata
  • Add double tap handler #692 by @AKoulabukhov
  • Add support of failed loading icon to compound bubble #695 by @azatZul
  • Added camera type to callback when a photo is taken #696 by @KaneCheshire
  • Introduce custom live camera cell behaviour #698 by @magic146
  • Custom input camera picker #699 by @magic146
  • Make timestamp revealing optional #704 by @simoneBumble
  • Handle live camera and photo cells taps #705 by @magic146


  • Contribution guide #676 by @wiruzx
  • Enabling library evolution support #677 by @dive
  • Add github actions #678 by @wiruzx
  • Make presenter public to fire send #701 by @ChaosCoder
  • Replace presentingController with presentingViewControllerProvider #703 by @magic146


  • Fix false positive test runs #680 by @wiruzx
  • Add empty scroll view delegate methods #684 by @wiruzx
  • Fix resource name collision #686 by @khramtsoff
  • Fix the resources bundle signing #697 by @azatZul

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics