explaingit

badoo/chatto

4,503SwiftAudience · developerComplexity · 3/5LicenseSetup · easy

TLDR

A Swift framework for building high-performance iOS chat screens, with background layout calculations, bidirectional pagination, and pre-built message bubble cells included.

Mindmap

mindmap
  root((chatto))
    What It Does
      iOS chat framework
      High-performance messages
    Key Features
      Background layout
      Bidirectional pagination
      Gesture support
    Companion Package
      Pre-built bubbles
      Text input bar
    Use Cases
      Chat apps
      Messaging UIs
      Social feeds
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add a performant chat message list to an iOS app that scrolls smoothly through thousands of messages without dropping frames.

USE CASE 2

Use ChattoAdditions to drop in pre-built message bubble cells and a text input bar without designing them from scratch.

USE CASE 3

Implement bidirectional pagination so users can load both older and newer messages as they scroll through a conversation.

Tech stack

SwiftObjective-CCocoaPodsCarthageXcode

Getting it running

Difficulty · easy Time to first run · 30min

Swift version compatibility must be matched to the correct Chatto release, check the README version table before installing.

Use freely in any project, commercial or personal, as long as you keep the copyright notice.

In plain English

Chatto is a Swift framework for building chat screens inside iOS apps. It was made by the team at Badoo (the company behind the Bumble dating app) and is designed to handle the performance challenges that come with large message histories. A companion package called ChattoAdditions provides pre-built message bubble cells and an extensible text input bar, so you can drop in the visual pieces without writing them from scratch. The framework handles layout calculations and collection view updates in a background thread, which keeps the interface responsive while the app processes incoming messages. It supports pagination in both directions (loading older and newer messages as the user scrolls), autoloading, and message count management intended to keep scrolling fast even with thousands of messages in memory. Gesture details like revealing an accessory view by swiping right and dismissing the keyboard by dragging down are also included. Installation works via CocoaPods, Carthage, or by dragging the project files directly into your Xcode workspace. The README lists specific version numbers for each Swift version going back to Swift 2, so older projects can pick the right release. The current release targeting Swift 5 is version 4.1.0. The wiki linked from the README is the main documentation resource. Questions can be asked in the project's Gitter community room, and contributions follow a guide in the repository. The source code is available under the MIT license.

Copy-paste prompts

Prompt 1
Using the Chatto framework, set up a basic iOS chat view controller that loads 50 messages from an array, displays them in a collection view, and supports loading older messages on scroll.
Prompt 2
How do I customize a ChattoAdditions message bubble cell to change the background color and font for my app's brand?
Prompt 3
Show me how to integrate Chatto via CocoaPods in an Xcode project targeting Swift 5 and display a list of simple text messages.
Prompt 4
Using Chatto, implement swipe-right-to-reveal an accessory timestamp view on each message cell, show the key delegate methods required.
Open on GitHub → Explain another repo

← badoo on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.