Skip to content
lechixyPublic

About

Unofficial Kick.com client built with Jetpack Compose for Android ๐Ÿ’š

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

ย 

History

58 Commits

Folders and files

Repository files navigation

Kicker

A free and open source Android client for Kick ๐Ÿ’š
Native Material 3 design. Live streams, chat, and VODs. Built for phones and tablets.

English โ€ข Tรผrkรงe

License: MIT Android 11 or newer Latest GitHub release, including prereleases GitHub downloads Open issues

Download โ€ข Features โ€ข Screenshots โ€ข Roadmap โ€ข Contribute

Why Kicker?

Kicker was created to address the stuttering, lag, excessive device heating, and instability experienced with the official Kick Android app. The goal is a smoother, more dependable viewing experience with a native interface and controls that feel at home on Android. Performance and battery use still depend on your device, stream quality, and network.

Important

Independent, unofficial project. Kicker is not affiliated with, endorsed by, or sponsored by Kick. Kick names, logos, and content belong to their respective owners. The name Kicker distinguishes this community client from the official app.

Features

  • Watch live and recorded streams: browse channels and categories, search for creators, and watch VODs.
  • Use it without an account: watch streams, search, play VODs, and read chat as a guest.
  • Connect your Kick account: access your follows, follow or unfollow channels, and send chat messages.
  • Make playback yours: automatic or manual quality selection, low-latency mode, picture-in-picture, a mini player, and a sleep timer.
  • Keep your place: local favorites, watch history, and saved VOD playback progress.
  • Enjoy native Material 3: adaptive layouts for phones and tablets, light/dark/AMOLED themes, and dynamic colors on Android 12+.
  • Customize chat: adjust text size, message spacing, timestamps, and chat panel width.
  • View your Kicks balance: balance display without an in-app checkout or real-money transactions.
  • Choose your language: English and Turkish, with support for following the system language.

Account features depend on Kick's service availability and may need updates when its web APIs change.

Goals

  • Deliver smooth playback and responsive navigation while reducing unnecessary resource use.
  • Offer a consistent, accessible Material experience on small and large screens.
  • Keep account connection optional and session storage local to your device.
  • Keep development open, reviewable, and welcoming to community contributions.

See the roadmap and planned work. Goals describe the project's direction; they are not guarantees of delivery dates or benchmark results.

Screenshots

Phone

phone appearance settings
Make it yours
phone stream player and chat
Watch & chat
phone home and discovery screen
Discover

Tablet

tablet discovery layout
Discover on a larger screen
tablet player with side-by-side chat
Player & chat, side by side

How to install

Requires Android 11 (API 30) or newer. Package ID: com.lechixy.kicker.

Download from GitHub Releases Add Kicker to Obtainium Check F-Droid availability Check IzzyOnDroid availability

Source Installation
GitHub Releases Download an APK from a published release and install it manually.
Obtainium Install release APKs from GitHub and track updates with Obtainium.
F-Droid Search for Kicker or its package ID in the F-Droid client. Listing availability is not yet confirmed; use GitHub if it is absent.
IzzyOnDroid Search the repository for Kicker or its package ID. Listing availability is not yet confirmed; use GitHub if it is absent.

Install and update with Obtainium

  1. Install Obtainium on your Android device.
  2. Tap the Add to Obtainium badge above and confirm the import. The configuration tracks stable GitHub releases, excludes debug APKs, and enables automatic APK filtering by device architecture.
  3. Install Kicker through Obtainium and use it to check for future updates.

To add it manually, paste https://github.com/lechixy/Kicker into Obtainium's Add App screen. Set the APK filename filter (regular expression) to _release\.apk$, enable automatic APK filtering by architecture, and leave prereleases disabled. Enable prereleases only if you want test versions.

Obtainium downloads the same APKs as GitHub Releases. No separate store listing is required; see the Obtainium deep-link documentation.

Install an APK from GitHub

  1. Open Releases and read the release notes.
  2. Choose a release APK for your device: arm64-v8a for most current phones, armeabi-v7a for 32-bit ARM devices, or x86/x86_64 for compatible Intel devices and emulators. Choose universal if you are unsure.
  3. If a sha256sums.txt file is provided, compare the APK's SHA-256 hash with its entry.
  4. Open the APK, allow installation from that source if Android asks, and follow the installer.

For updates, install a newer APK signed with the same certificate. Different distribution channels may use different signing keys, so switching sources can require uninstalling first. Uninstalling removes local app data and the saved session.

Build from source

Use Android Studio with support for the project's Android Gradle Plugin, JDK 21, and the Android SDK required by the app build configuration. Open the project, let Gradle sync, and run the app configuration, or build a debug APK:

git clone https://github.com/lechixy/Kicker.git
cd Kicker
./gradlew assembleDebug

On Windows, use gradlew.bat assembleDebug. APKs are written to app/build/outputs/apk/debug/. No separate backend or Kick developer application registration is required.

Notices & privacy

No real-money transactions

Kicker does not process purchases, subscriptions, subscription gifts, Kicks purchases, or other real-money transactions. It only displays your Kicks balance. For all purchases and subscription management, use the official Kick website or official mobile app.

Your account stays under your control

  • Signing in is optional and happens on Kick's own login page inside the app.
  • Kicker does not send your sign-in credentials or session to a developer-operated backend. Authentication communicates directly with Kick; using Kick still involves its own services and privacy practices.
  • The retained session is encrypted locally with AES-GCM using a key held in Android Keystore. The encrypted session is stored in the app's private, no-backup directory, outside Android backup/device transfer and settings exports.
  • Kicker uses that session to authenticate your account actions and maintain the connected Kick experience, including follows, chat, and playback-related requests.
  • Signing out clears the app's saved session and account state. Uninstalling removes its local session data and app-scoped Keystore key. To revoke sessions on Kick's side, use Kick's account security settings.

Review the implementation in SecureSessionStore.kt, AuthRepository.kt, and KickWebLoginActivity.kt.

Contributing

Bug reports, translations, accessibility improvements, documentation, and code contributions are welcome.

  1. Check existing issues and the roadmap before starting larger changes.
  2. For a bug, include the app version and installation source, Android version, device model, steps to reproduce, and expected/actual behavior. Remove cookies, tokens, personal information, and private chat content from logs or screenshots.
  3. Fork the repository, make a focused change, and open a pull request explaining the change and how you verified it.
  4. For code changes, run relevant tests (./gradlew testDebugUnitTest) and check affected UI on a phone and tablet when applicable. Instrumented tests require a connected device or emulator (./gradlew connectedDebugAndroidTest).

Keep both README translations in sync when changing shared documentation.

Language support

Language App interface README
English Supported; default resources in values English
Tรผrkรงe Supported; translations in values-tr Tรผrkรงe

To add a language, translate the relevant strings*.xml files into app/src/main/res/values-<language>/, preserve resource names and format arguments, and add the locale to locales_config.xml and the language options in SettingsCatalog.kt. README translations are welcome too; add a language link once its file exists.

FAQ

Is Kicker the official Kick app?

No. It is an independent community project. Use Kick's official channels for billing, account recovery, and platform support.

Do I need to sign in?

No. Watching live streams and VODs, searching, and reading chat work as a guest. Sign in to access your Kick follows and send chat messages.

Can I buy Kicks or subscribe to a creator?

No. Kicker only shows your Kicks balance and does not handle real-money transactions. Use Kick's website or official app for purchases and subscriptions.

Where is my session stored?

On your device, encrypted with an Android Keystore key. It is not uploaded to a Kicker backend or included in backups or settings exports. See Notices & privacy for details.

Why did login, chat, or a stream stop working?

Kicker depends on Kick's web APIs and WebSocket services. Service changes, expired sessions, outages, or network conditions can affect features. Try the newest release, sign in again if prompted, and report reproducible problems with sensitive information removed.

Will Kicker always run cooler or use less battery?

Reducing stutter and unnecessary resource use is a development goal, not a guarantee for every device. Stream resolution, decoding hardware, network conditions, and display brightness all affect heat and power consumption.

Can I switch between GitHub, F-Droid, and IzzyOnDroid builds?

Only builds with matching package IDs and compatible signatures can update one another. If signatures differ, Android requires uninstalling the existing build first, which removes its local data.

Dependencies

Kicker is built on the work of these open source projects:

Project Used for
Kotlin & kotlinx.serialization Application code and JSON serialization
Jetpack Compose & Material 3 Native UI, themes, and adaptive layouts
AndroidX Activity, AppCompat, Lifecycle, Navigation, DataStore, splash screen, and profile installation
Media3 / ExoPlayer HLS playback and media sessions
Dagger Hilt & KSP Dependency injection and code generation
Retrofit & OkHttp HTTP APIs and WebSocket connections
Coil Image loading and GIF support
Markwon Markdown rendering
Android Identity Credential Identity utilities declared by the app
JUnit, Espresso, UI Automator & Macrobenchmark Tests and performance tooling

For exact coordinates and versions, see gradle/libs.versions.toml, app/build.gradle.kts, and baselineProfile/build.gradle.kts. Dependencies retain their respective licenses.

License

Kicker is free and open source software released under the MIT License. The software is provided without warranty; see the license for its full terms. Third-party trademarks, platform content, and dependencies remain subject to their owners' rights and applicable licenses.

About

Unofficial Kick.com client built with Jetpack Compose for Android ๐Ÿ’š

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages