* Fix a bug causing keyboard view offset to be incorrect In some rare cases, if the height of the view is a fractional point (i.e., not a whole number), it would cause the views to not be offset despite the keyboard being shown on top of them. This does not happen with every fractional height. Different devices also behave a little differently in seemingly identical layouts, due to their pixel density being different. The base issue is that, due to floating point rounding errors, two values that _should_ be identical and pass the guard fail to do so, because the lack of precision results in them not being equal. By flooring the values, we can ignore really minor differences and ensure rounding errors don't cause this issue. * Unify bma_round methods to use correct calculation Thanks to @diegosanchezr for the suggested improvement. * Revert ChattoAdditions bma_round change Unfortunately, removing this in favor of the Chatto version broke size calculations, so putting it back... * Switch to using infix operator to check float comparison * Add utils to Chatto project |
||
|---|---|---|
| Chatto | ||
| Chatto.xcworkspace | ||
| ChattoAdditions | ||
| ChattoApp | ||
| readme-images | ||
| .gitignore | ||
| .swiftlint.yml | ||
| .travis.yml | ||
| AUTHORS | ||
| CHANGELOG.md | ||
| Chatto.podspec | ||
| ChattoAdditions.podspec | ||
| LICENSE | ||
| README.md | ||
README.md
Chatto

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 install
CocoaPods
-
Make sure
use_frameworks!is added to yourPodfile. -
Include the following in your
Podfile:
pod 'Chatto', '= 2.0.1'
pod 'ChattoAdditions', '= 2.0.1' # 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'
- Run
pod install
Carthage
If you’re using Carthage, simply add Chatto to your Cartfile:
github "badoo/Chatto"
Manually
- Clone, add as a submodule or download.
- Drag and drop
Chattoand/orChattoAdditionsproject to your workspace - Add
Chattoand/orChattoAdditionsto Embedded binaries
License
Source code is distributed under MIT license.
Android
Check our colleagues' project Chateau!
##Blog Read more on our tech blog or explore our other open source projects