Code Monkey home page Code Monkey logo

stream-chat-android's Introduction

Official Android SDK for Stream Chat

API

This is the official Android SDK for Stream Chat, a service for building chat and messaging applications. This library includes both a low-level chat SDK and a set of reusable UI components. Most users start with the UI components, and fall back to the lower level API when they want to customize things.

We're proud to say that we're the first Android Chat SDK that supports Jetpack Compose! We released our Compose UI Components one day after the official Jetpack Compose 1.0 release and our team members have been working hard on it since then.

Now it's mature and stable enough for us to officially recommend it for all new applications and all modern chat implementations. If you're looking for something highly customizable and extremely performant, check out our Compose SDK.

The Android SDK supports both Kotlin and Java, but we strongly recommend using Kotlin.

Note: The Compose SDK supports only Kotlin, since Compose uses Kotlin compiler plugins to process the UI.

🔗 Quick Links

👩‍💻 Free for Makers 👨‍💻

Stream is free for most side and hobby projects. To qualify, your project/company needs to have < 5 team members and < $10k in monthly revenue. For complete pricing details, visit our Chat Pricing Page.

🗺️ Overview and Documentation 📚

This SDK consists of two low-level artifacts you can build on:

We also have two UI SDKs. You can use our Compose UI Components SDK, or if you're using older UI solutions, the XML-based UI Components:

Learn more about the modules by visiting the documentation.

📖 Tutorial

The best place to start is the Compose Chat Messaging Tutorial. It teaches you the basics of using the Compose Chat SDK and also shows how to make frequently required changes.

Note: If you're using older UI toolkits, like XML, you can follow the Android Chat Messaging Tutorial which features the XML-based UI Components.

🛠️ Installation and Getting Started 🚀

See the Dependencies and Getting Started pages of the documentation.

🔮 Sample Apps

Compose Sample App

Our Jetpack Compose implementation comes with its own example app, which you can play with to see how awesome Compose is.

To run the sample app, start by cloning this repo:

git clone [email protected]:GetStream/stream-chat-android.git

Next, open Android Studio and open the newly created project folder. You'll want to run the stream-chat-android-compose-sample module.

Since Compose is a highly customizable SDK, we're eager to hear your feedback on how it helps you build complex Chat UI. Join us in this repo's discussions or tweet at us @getstream_io!

Sample App

However, if you're still using XML due to technical limitations, our UI Components SDK includes a fully functional example app featuring threads, reactions, typing indicators, optimistic UI updates and offline storage. To run the sample app, start by cloning this repo:

git clone [email protected]:GetStream/stream-chat-android.git

Next, open Android Studio and open the newly created project folder. You'll want to run the stream-chat-android-ui-components-sample app.

Other Sample Apps

We also maintain a dedicated repository for fully-fledged sample applications at GetStream/Android-Samples.

💡 Supported features 🎨

Here are some of the features that the SDK supports out-of-the-box:

  • Channels list UI
  • Channel UI
  • Message reactions
  • Link previews
  • Image, video and file attachments
  • Editing and deleting messages
  • Typing indicators
  • Read indicators
  • Push notifications
  • Image gallery
  • GIF support
  • Light and dark themes
  • Style customization
  • UI customization
  • Threads
  • Slash commands
  • Markdown message formatting
  • Unread message counts

For more, see the SDK's website.

🛠️ R8 / ProGuard

When utilizing R8, the rules for shrinking and obfuscation are applied automatically.

If you are using ProGuard, you will need to add the following rules from client and ui-common modules to your application.

You might also need apply rules for Coroutines, Retrofit and OkHttp which are dependencies of the SDK.

💼 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.

License

Copyright (c) 2014-2022 Stream.io Inc. All rights reserved.

Licensed under the Stream License;
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://github.com/GetStream/stream-chat-android/blob/main/LICENSE

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

stream-chat-android's People

Contributors

jcminarro avatar leandroborgesferreira avatar zsmb13 avatar bychkovdmitry avatar adrian09h avatar samiuelson avatar tschellenbach avatar adasiewiczr avatar elevenetc avatar tbarbugli avatar andriizhumela avatar marintolic avatar filbabic avatar kanat avatar skydoves avatar bevzaanton avatar zetbaitsu avatar github-actions[bot] avatar tgazica avatar danielnovak avatar nikomancy avatar emitenma avatar carterhudson avatar philipbrito avatar stream-pr-merger[bot] avatar aleksandar-apostolov avatar jeffdgr8 avatar stream-public-bot avatar dmarin avatar maxmaxandr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.