SwiftUI StreamChat SDK
The SwiftUI SDK is built on top of the StreamChat framework and it's a SwiftUI alternative to the StreamChatUI SDK. It's built completely in SwiftUI, using declarative patterns, that will be familiar to developers working with SwiftUI. The SDK includes an extensive set of performant and customizable UI components which allow you to get started quickly with little to no plumbing required.
The complete documentation and capabilities of the SwiftUI SDK can be found here and you may find our SwiftUI Chat App tutorial helpful as well.
Main Features
- Channel list: Browse channels and perform actions on them.
- Message list: Fast message list that renders many different types of messages.
- Message Composer: Powerful and customizable message composer, extendable with your own custom attachments.
- Message reactions: Ready made reactions support, easily configurable depending on your use-cases.
- Offline support: Browse channels and send messages while offline.
- Highly customizable components: The components are designed in a way that you can easily customize or completely swap existing views with your own implementation.
Main Principles
- Progressive disclosure: The SDK can be used easily with very minimal knowledge of it. As you become more familiar with it, you can dig deeper and start customizing it on all levels.
- Familiar behavior: The UI elements are good platform citizens and behave like native elements; they respect
tintColor
, paddings, light/dark mode, dynamic font sizes, etc. - Swift native API: Uses Swift's powerful language features to make the SDK usage easy and type-safe.
- Uses
SwiftUI
patterns and paradigms: The API follows the declarative nature and patterns of SwiftUI. It makes integration with your existing SwiftUI code easy and familiar. - Fully open-source implementation: You have access to the complete source code of the SDK here on GitHub.
Architecture
The SwiftUI SDK offers three types of components:
- Screens - Easiest to integrate, but offer small customizations, like branding and text changes.
- Stateful components - Offer more customization options and possibility to inject custom views. Also fairly simple to integrate, if the extension points are suitable for your chat use-case. These components come with view models.
- Stateless components - These are the building blocks for the other two types of components. In order to use them, you would have to provide the state and data. Using these components only make sense if you want to implement completely custom chat experience.
Free for Makers
Stream is free for most side and hobby projects. You can use Stream Chat for free if you have less than five team members and no more than $10,000 in monthly revenue.
We are hiring
We've recently closed a $38 million Series B funding round and we keep actively growing. Our APIs are used by more than a billion end-users, and you'll have a chance to make a huge impact on the product within a team of the strongest engineers all over the world. Check out our current openings and apply via Stream's website.