# Technical Documentation: badoo/Chatto

> ℹ️ **Provenance:** Hybrid Fusion: `badoo/Chatto` (README + 1 In-Tree Chapters) · [CodeWiki Reference](https://codewiki.google/github.com/badoo/Chatto) · Recency: Active (< 180 days)

## 1. Project Overview & Quickstart (badoo/Chatto)

# Chatto [](https://travis-ci.org/badoo/Chatto) [](https://codecov.io/github/badoo/Chatto?branch=master) [](https://img.shields.io/cocoapods/v/Chatto.svg) [](https://github.com/Carthage/Carthage)


`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](https://techblog.badoo.com/blog/2015/12/04/how-we-made-chatto/). 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!](https://github.com/badoo/Chatto/wiki)

## How to contribute

If you **just have a question**, please reach us in [our gitter room](https://gitter.im/chatto-framework/community)

If you'd like to file a bug report, suggest changes or submit a pull request, please [check our contribution guide](.github/CONTRIBUTING.md)

## 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'
  ```
3. Run `pod install`

### Carthage

If you’re using [Carthage](https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos), 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.](https://github.com/badoo/Chatto/archive/master.zip)
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](https://medium.com/bumble-tech) or explore our other [open source projects](https://github.com/badoo)

## 2. In-Tree Documentation Chapters (badoo/Chatto)

# Chatto [](https://travis-ci.org/badoo/Chatto) [](https://codecov.io/github/badoo/Chatto?branch=master) [](https://img.shields.io/cocoapods/v/Chatto.svg) [](https://github.com/Carthage/Carthage)


`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](https://techblog.badoo.com/blog/2015/12/04/how-we-made-chatto/). 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!](https://github.com/badoo/Chatto/wiki)

## How to contribute

If you **just have a question**, please reach us in [our gitter room](https://gitter.im/chatto-framework/community)

If you'd like to file a bug report, suggest changes or submit a pull request, please [check our contribution guide](.github/CONTRIBUTING.md)

## 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'
  ```
3. Run `pod install`

### Carthage

If you’re using [Carthage](https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos), 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.](https://github.com/badoo/Chatto/archive/master.zip)
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](https://medium.com/bumble-tech) or explore our other [open source projects](https://github.com/badoo)

--- METRICS ---
- Files Extracted: 2
- Estimated Token Budget: ~1598 tokens
- Recency Window: Active (< 180 days)
- Canonical Reference: https://codewiki.google/github.com/badoo/Chatto
