Skip to content
/ Chatto Public

A lightweight framework to build chat applications, made in Swift

License

Notifications You must be signed in to change notification settings

badoo/Chatto

Folders and files

NameName
Last commit message
Last commit date
Sep 26, 2020
Aug 2, 2021
Dec 4, 2023
Oct 24, 2024
Feb 28, 2023
Nov 26, 2015
Oct 24, 2024
Nov 19, 2016
Jan 23, 2019
Oct 5, 2017
Sep 21, 2020
May 20, 2021
Aug 4, 2021
Aug 4, 2021
Nov 25, 2015
Aug 8, 2022
May 20, 2021

Repository files navigation

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