Fork of tommyxchow/frosty with TwitchAdSolutions (vaft) adblock https://frostyapp.io
Find a file
Tommy Chow 9a6892746d
Update to Material 3/You and other changes/fixes (#280)
* Use adaptive refresh indicators

* Add new message count indicator in chat

* Sync pubspec.lock

* Initial migration to material 3

* Restore default bottom sheet style

* Remove FrostyListTile and reset styles

* Use "Clear" button for all search history

* Add `require_trailing_commas` lint rule

* Exclude generated files from linter

* Use ListView for safe area support in bottom sheet

* Add initial dark theme

* Make sizing and units consistent

* Update onbaording spacings & copy

* Migrate to default material 3 buttons

* Add headers to chat details bottom sheet

* Simplify token log in method

* Use bottom sheet for account options

* Remove `AnimateScale` widget

* Tweak search paddings

* Update message spacing divisions

* Upgrade packages

* Update message spacing divisions

* Regenerate splash screens

* Update Inter & add google fonts

* Add initial material 3 themes

* Use adaptive alert dialogs

* Revert to oultined inputs

* Fix tooltip message

* Revert add google_fonts

* Improve themes and various styling

* Convert categories grid to list

* Tweak stream card thumbnail radii

* Tweak settings headers

* Left align floating snackbars

* Tweak search header padding

* Fix profile pics occasionally not rounded

* Use profile pic for settings button if logged in

* Redesign sleep timer

* Use divider theme and reduce thickness

* Use 0 letter spacing for tab bar titles

* Redesign category streams list

* Add border to tooltips

* Increase category card font weight

* Use outlined icon btton for chat user modal

* Reduce profile pic radius in search results

* Fix scrolll to top button safe area

* Add support for reply threads

* Reduce tooltip and snackbar border thickness

* Rebuild reply threads on new messages

* Upgrade packages (iOS)

* Reduce font weight for all chat alerts

* Use tabbars for pageview

* Add dividers everywhere

* Revert "Add dividers everywhere"

This reverts commit 5f0d349fdb.

* Remove fill from inputs

* Add dividers to settings

* Use segmented button for settings list

* Add scrollbar to lists with scrollcontroller

* Redesign badge/emote tooltip

* Remove outline from chat user modal buttons

* Remove divider from reply thread

* Use tap for chatters list and increase font weight

* Constrain emote tooltip width
2023-10-22 18:38:32 -04:00
.github Update GitHub actions 2023-04-30 17:40:03 -04:00
android Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
assets Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
ios Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
lib Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
test Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
.gitignore Upgrade Flutter/Dart and dependencies (#265) 2023-05-30 21:10:04 -04:00
.metadata Upgrade Flutter/Dart and dependencies (#265) 2023-05-30 21:10:04 -04:00
analysis_options.yaml Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
LICENSE Create LICENSE 2022-01-11 15:29:38 -05:00
pubspec.lock Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
pubspec.yaml Update to Material 3/You and other changes/fixes (#280) 2023-10-22 18:38:32 -04:00
README.md Update README.md 2022-08-31 14:21:04 -04:00

The Frosty rounded logo.

Frosty

A mobile Twitch client for iOS and Android with 7TV, BTTV, and FFZ support. Built with Flutter.

Badge showing the CI status. Badge showing the number of open issues. Badge showing the date of the last commit. Badge showing the current license of the repo. Badge showing the version of the latest release.

Apple App Store badge. Google Play Store badge.

Buy Me A Coffee badge.

iOS screenshot of the Followed Streams section. iOS screenshot of xQc's channel with the stream and chat. iOS screenshot of the search section with results from the query "pokelaw".

Motivation

The official Twitch mobile app doesn't support emotes from 7TV, BetterTTV (BTTV), and FrankerFaceZ (FFZ) — third-party services and extensions for Twitch used by millions of viewers and many top channels. This results in a poor mobile chat experience since only emote codes render rather than their image or GIF counterpart.

Features

  • Support for 7TV, BetterTTV, and FrankerFaceZ emotes and badges
  • Browse followed streams, top streams, and top categories
  • Autocomplete for emotes and user mentions
  • Light, dark, and black (OLED) themes
  • Search for channels and categories
  • See and filter chatters in a channel
  • Local chat user message history
  • Theater and fullscreen mode
  • Watch live streams with chat
  • Picture-in-picture mode
  • Block and report users
  • Emote menu
  • Sleep timer
  • And more...

For a more detailed overview, visit frostyapp.io.

Development setup

  1. Go to the Twitch dev console and register a new application to retrieve a Client ID and Client Secret.

  2. Clone the repo to a directory (e.g., git clone https://github.com/tommyxchow/frosty.git).

  3. Navigate to lib/constants.dart and replace the clientId and secret constants with your client ID and client secret from step 1 (if using VSCode, use --dart-define to define them as environment variables).

  4. Run flutter pub get to fetch all the dependencies.

  5. Choose an emulator or device and run the app!

Note

Frosty uses MobX for state management. Please refer to the documentation about code generation, otherwise your changes within MobX stores may not be applied.

Warning

I built Frosty while learning Flutter, so some of the code may not be optimal. I'm working on refactoring, documenting, and cleaning up various parts as much as I can.

Feature requests and issues

If you have a feature request, found a bug, or have a general issue, you can submit it here on the issues tab. Doing so makes it easier for me to keep track of them and makes it publicly visible for others to review.

Note

I work on Frosty in my free time and take occasional breaks, so I may not respond immediately.

Donate

Downloading Frosty and leaving a review or starring this repository is more than enough to show support.

If you're feeling generous and would like to support me with a donation, you can do so through the following:

If you decide to support me monetarily, it is extremely appreciated and further motivates me to continue improving and maintaining Frosty ❤️.

License

Frosty is licensed under AGPL-3.0-or-later.