Cross-platform Twitch Chat application with 3rd-party addon support!

Overview

Chatsen

Chatsen is a cross-platform application that allows you to chat on Twitch with support for 3rd-party services such as 7TV, BTTV and FFZ.
It also features a built-in video player and a variety of other features, such as auto-completion, notifications (on supported platforms), whispers, and more to come!

Media

Downloads

You can find the latest release for supported platforms (iOS, Android) here.

Store Releases

Supported platforms

  • Android 5+ (>=4.1 && <5.0 also supported but without login/video player)
  • iOS 12.2+

Support and donations

Support the project on Patreon and get some cool badges next to your username in return! https://www.patreon.com/chatsen

iOS Sideloading Guide

Note: the .ipa file is not signed but will be signed automatically with AltStore on your device.

Build instructions

To build Chatsen, all you should need is the Flutter SDK on the master branch and it's require dependencies for your platform (Android Studio for Android and XCode for iOS).
Running the following commands should allow you to build the application successfully:

flutter create .
rm -rf test

# Android
sed -i '/<\/manifest>/i \ \ \ \ <uses-sdk tools:overrideLibrary="io.flutter.plugins.webviewflutter"/>' ./android/app/src/main/AndroidManifest.xml
sed -i '/.*package=".*".*/i \ \ \ \ xmlns:tools="http://schemas.android.com/tools"' ./android/app/src/main/AndroidManifest.xml
sed -i '/.*package=".*".*/a \ \ \ <uses-permission android:name="android.permission.INTERNET"/>' ./android/app/src/main/AndroidManifest.xml
sed -i '/.*release {.*/a \ \ \ \ \ \ \ \ \ \ \ \ shrinkResources false\n\ \ \ \ \ \ \ \ \ \ \ \ minifyEnabled false' ./android/app/build.gradle
flutter pub run flutter_launcher_icons:main
flutter build apk

# iOS
flutter pub run flutter_launcher_icons:main
flutter build ios --no-codesign

You may also check the Github Actions file here for more details.

Licensing

Chatsen is distributed under the AGPLv3 licence. A copy may be found in the LICENCE file in that repository. All the dependencies remain under their original licenses.

Usage

This project and it's releases are provided as-is, no support is provided. Use at your own discretion.

Privacy Policy

Chatsen does not collect any personal or identifying information whatsoever. There are no servers, services or backend running related to the project either.
Since Chatsen interfaces with Twitch however, you are subject to their Privacy Policy available at https://www.twitch.tv/p/en/legal/privacy-notice/

Contact

You might also like...

A cross platform application written in flutter to help people stick to their routines and achieve their goals

A cross platform application written in flutter to help people stick to their routines and achieve their goals

Scheduler Scheduler is a cross platform application written in flutter to help people stick to their routines and achieve their goals. Our service inc

Jan 21, 2022

Relive is a cross-platform application that can be used both in Android/IOS and it is made using Flutter

Relive is a cross-platform application that can be used both in Android/IOS and it is made using Flutter

📌 Introduction Relive is a cross-platform application that can be used both in Android/IOS and it is made using Flutter. It aims to solve the mental

Nov 4, 2022

Self Host Group Chat App (firebase + clean architecture) is full functional group chat where you can create new groups and update profile and communicate in different groups easily. there 2 auth firebase method [Google & Email Password]

Self Host Group Chat App (firebase + clean architecture) is full functional group chat where you can create new groups and update profile and communicate in different groups easily. there 2 auth firebase method [Google & Email Password]

Self Host Group Chat App (firebase + clean architecture) Show some and star the repo to support the project Screenshots Packages we are using: flutter

Jan 8, 2023

The most complete Chat UI for flutter highly customizable and helps developing chat UI faster.

⚠️ Dashchat v2 is available in v2 branch ⚠️ You can open issues for the v2 to indicate things we need to implement/fix. Also the API can change until

Dec 11, 2022

Chat-App - A Chat App with flutter and Firebase and Video Calling using WebRTC

chat_app A chat app with flutter and firebase with image message support and vid

Nov 23, 2022

A simple, cross-platform password manager created with Flutter.

A simple, cross-platform password manager created with Flutter.

PassMan PassMan Logo © 2021 by Yash Ahir is licensed under CC BY-NC 4.0 A simple, cross-platform password manager created with Flutter. How to run thi

Dec 14, 2022

This is the new version of my Task app "Tasko" which was done in Java. She is now in Flutter for the HotReload and the native Cross-Platform.

This is the new version of my Task app

tasko_rem The Tasko App is now compatible on iOS, Android and others distribution, because it's made with Flutter ✨ You can now add task, check them o

May 2, 2022

Private, cross-platform package tracking app

Private, cross-platform package tracking app

LibreTrack Private, cross-platform package tracking app. Track postal items directly on your device using accounts of postal services. The app respect

Jan 1, 2023

A cross platform GUI, soon to be the official GUI.

CCExtractor Flutter GUI The new cross platform interface is all you need, as it includes all the options. After installing GUI you will have a shortcu

Nov 19, 2022
Comments
  • add: support for automatically loading in 7TV emotes via 7TV events API

    add: support for automatically loading in 7TV emotes via 7TV events API

    Hello! I see you've got both a master and a dev. If you're not accepting PRs on master I can submit one for dev as well.

    This PR adds support for automatically adding, renaming, and removing 7TV channel emotes by listening to the 7TV events websocket API (documented here). Each time an event is received over the websocket, a corresponding Emote is created/deleted for the corresponding channel.

    Originally, I coded it so that setting up the event listener was synchronous, sending a join message to the websocket for each channel in joinChannels (here). While testing it out, I noticed that this could hang the UI by not adding channels to the bottom bar if there's a problem with the socket. So I reworked it so that setting up the event listener for channels is done asynchronously (and for all channels at once on launch).

    Both of these approaches have a drawback: either 1) a less responsive UI but you're more-or-less guaranteed to always have a correct state of channel emotes, or 2) a more responsive UI but it's possible you'll miss an event right after joining a channel (before the event listener is ready). I opted for 2), but I can also revert to 1) if you think it's more appropriate.

    I think the code itself is relatively straightforward, with code comments where something may not be obvious. I'm used to working with JavaScript/Promises, and am not too familiar with Dart, so if something can be done better please let me know and I will fix it.

    Here's what I tested:

    • Adding an emote makes it appear in the emote pane (and in future chat messages)
    • Removing an emote makes it disappear from the emote pane (and from future chat messages)
    • Setting an alias for an emote changes the text that is input

    I also mocked up the API with a simple websocket server to test some of the logic:

    • Disconnect/reconnect handling
    • Errors when trying to join/part channels

    Notes:

    • I don't check to see if an emote with the same id exists before adding it; I assume it doesn't
    • There is a shortcoming with the way I'm handling success/fail messages from the API when the socket is in a failed state. Because of the the retry logic, several messages could be sent at once when the socket comes back up, and there's no way to associate a success/fail with a particular request. Multiple requests can consume the success/fail message of a single request (e.g. see here). I couldn't figure out a way around this. Such a situation should be exceedingly rare, but it's still worth pointing out -- maybe you can think of a smarter way of handling it.
    opened by squarebracket 1
Releases(1.1.81+81)
Owner
Chatsen
Chatsen
It is a simple group chat application made with flutter back-end by Firebase. People can chat like a community chat.

flash_chat A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Moideen Rafih P A 4 Aug 7, 2022
A powerful Flutter chat UI component library and business logic for Tencent Cloud Chat, creating seamless in-app chat modules for delightful user experiences.

<style> .button-9 { appearance: button; backface-visibility: hidden; background-color: #1d52d9; border-radius: 6px; border-width: 0; box-shadow: rgba(

Tencent Cloud 63 Aug 11, 2023
A beautiful and cross platform NHentai Client, Support desktop and mobile phone

A beautiful and cross platform NHentai Client. Support desktop and mobile phone (Mac/Windows/Linux/Android/IOS).

null 324 Dec 29, 2022
Encord's cross-platform chat app similar to Discord

Encord-Chat Encord's cross-platform chat app similar to Discord Getting Started This project is a starting point for a Flutter application. A few reso

Black Eagle Strike Force 1 May 17, 2022
Chat-application - Build Chat Application using Flutter and Firebase

Build Chat Application using Flutter & Firebase Source Code - Enjoy ! Social Med

Muhammad Irvan 0 Jan 3, 2022
A simple crypto tracker Flutter app with cero third party package

Crypto Tracker A simple crypto tracker Flutter app with cero third party package, that incorparates the Nomics api. This application collects the hist

null 28 Oct 10, 2022
Bloon - One click, One party - app to find club in Paris

Bloon Bloon is mobile application for E3 project in ESIEE Paris. It list all night clubs and events in Paris and recommend you according to you person

null 57 Oct 17, 2021
Drishti is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning and Artificial Intelligence

Drishti is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning and Artificial Intelligence to help visually impaired people recognize different currency bills and perform daily cash transactions more effectively. We plan to expand Drishti to other applications like Short Text and Document Reading in the future.

Drishti Nepal 23 Oct 8, 2022
Cross platform application for iOS and Android using Google's SDK Flutter.

scout Cross platform application for iOS and Android using Google's SDK Flutter. Launch screen for the application. The menu for selecting cookies. Cu

null 0 Nov 9, 2021