Add a performant chat message list to an iOS app that scrolls smoothly through thousands of messages without dropping frames.
Use ChattoAdditions to drop in pre-built message bubble cells and a text input bar without designing them from scratch.
Implement bidirectional pagination so users can load both older and newer messages as they scroll through a conversation.
Swift version compatibility must be matched to the correct Chatto release, check the README version table before installing.
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.
← badoo on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.