A SwiftUI Chat UI framework with fully customizable message cells and a built-in media picker.
Chat is a SwiftUI framework for building chat interfaces in iOS apps. It provides customizable message cells, a built-in media picker, and support for various message types like text, images, audio, and GIFs. It solves the problem of implementing complex chat UIs by offering a flexible, ready-to-use component that developers can adapt to their needs.
iOS developers building chat features into their SwiftUI applications, particularly those needing a customizable UI with media handling and extensible actions.
Developers choose Chat for its deep customization capabilities, built-in media picker, and support for advanced features like large file uploads and Giphy integration, all while maintaining a native SwiftUI experience.
A SwiftUI Chat UI framework with fully customizable message cells and a built-in media picker
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers extensive view builders for message cells and input views, allowing developers to override every UI element while leveraging built-in chat logic, as shown in the messageBuilder and inputViewBuilder examples.
Includes a photo/video picker and Giphy integration for stickers/GIFs, reducing the need for external libraries and simplifying media-rich chat implementations.
Supports large file uploads over 100 MB with flexible progress tracking options, from simple indicators to percentage-based updates, as detailed in the Attachment documentation.
Allows custom swipe actions and long-press menus with configurable handlers, enabling rich interactive features without reinventing common chat gestures.
Limited to iOS 17+ and SwiftUI only, making it unsuitable for cross-platform projects, older iOS versions, or UIKit-based apps, which narrows its adoption scope.
Deep customization requires managing multiple closures and understanding intricate view builder parameters, which can be overwhelming for developers not well-versed in SwiftUI patterns.
Key features like message editing and document attachments are marked as 'coming soon' in the README, potentially delaying projects that rely on these capabilities immediately.
Implementing percentage-based upload progress for large files requires careful WebSocket synchronization between sender and receiver, adding significant backend development effort beyond the UI layer.