Maintaining the Fritter feed, originally by Quacker
- Install with Obtainium (one tap): https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22com.x2premium.squawkkers%22%2C%22url%22%3A%22https%3A%2F%2Fgithub.com%2FX2premium%2Fsquawkkers-public%22%2C%22author%22%3A%22X2premium%22%2C%22name%22%3A%22Squawker%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22includePrereleases%5C%22%3Atrue%2C%5C%22fallbackToOlderReleases%5C%22%3Atrue%2C%5C%22filterReleaseTitlesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22filterReleaseNotesByRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22verifyLatestTag%5C%22%3Atrue%2C%5C%22sortMethodChoice%5C%22%3A%5C%22date%5C%22%2C%5C%22useLatestAssetDateAsReleaseDate%5C%22%3Atrue%2C%5C%22releaseTitleAsVersion%5C%22%3Afalse%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%5C%22%2C%5C%22versionDetection%5C%22%3Atrue%2C%5C%22releaseDateAsVersion%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22squawkkers%20%5C%22%2C%5C%22appAuthor%5C%22%3A%5C%22CRYPTD777%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22allowInsecure%5C%22%3Atrue%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22%5C%22%2C%5C%22refreshBeforeDownload%5C%22%3Afalse%2C%5C%22includeZips%5C%22%3Afalse%2C%5C%22zippedApkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22github-creds%5C%22%3A%5C%22%5C%22%2C%5C%22GHReqPrefix%5C%22%3A%5C%22%5C%22%7D%22%2C%22overrideSource%22%3A%22GitHub%22%7D
- Latest release page: https://github.com/X2premium/squawkkers-public/releases/latest
- Latest universal APK: https://github.com/X2premium/squawkkers-public/releases/latest/download/squawkkers-universal.apk
- Current app version:
3.8.9(build52)
Important note: If you are switching install source (for example from direct APK to Obtainium), backup your app data first (Settings/Data, tap Export), then reinstall and import the backup (Settings/Data, tap Import).
Compared to the original Fritter/Quacker baseline, this fork includes:
- Full Android UI refresh with a modern Material 3 design language (updated typography, spacing, cards, and surfaces)
- Theme readability fixes across screens (removed hardcoded white text and low-contrast UI states)
- Improved tweet card and menu styling for consistent dark/light contrast
- Video/media download reliability fixes (options-sheet context fix, HTTP fallback headers, and save dialog fallback when storage permission is denied)
- Subscription import improvements (supports
@username, profile URLs, and safer comma-separated parsing with lookup fallback) - Subscription refresh stability improvements (graceful handling when user lookup endpoints fail)
- Thread parsing fixes for home timeline chains and reply handling correctness
- Rate-limit handling fixes in account selection/recovery flows
- X account header flow fixes (consistent auth header usage on requests)
- Safer network behavior for transaction-id provider calls (HTTPS + app HTTP client path)
- Sensitive logging cleanup (removed auth header/token leak prints)
- Profile credential storage hardening with backward-compatible password encryption at rest
- Translation cache read-path fix to avoid unnecessary repeat network calls
- Update-check version comparison fix (semantic version-aware instead of lexicographic string compare)
- Swipe physics tuning to prevent non-stop/looping horizontal slide behavior
- Android package migration to
com.x2premium.squawkkersand updated launcher icon colors/assets - About screen and update-check links updated to this repository (
X2premium/squawkkers-public) - Profile bio text readability fix in light mode (removed white-on-light description rendering)
- Profile tab behavior fixes for Tweets / Tweets & Replies / Media routing and state isolation
- Profile header/tab overlap fix (tab labels no longer merge into profile bio/metadata)
- Media timeline parsing hardening for additional X timeline entry formats
- Replies timeline fallback improvements when upstream query shapes vary
- Saved tab duplication-loop fix (no infinite repeated saved tweets while scrolling)
- Retry callback fixes on profile/saved tab error states
- Privacy: No tracking, with all data local
- No ads: Not clogged by multiple ads
- Feed: View all your subscriptions in a chronological feed
- Subscriptions: Follow and group accounts
- Search: Find users and tweets
- Bookmarks: Save tweets locally and offline
- Trends: See what's trending in the world
- Polls: View results without needing to vote
- Light and Dark themes: Protect your eyes
- And more!
If you'd like to help make Squawker even better, here are a just a few of the ways you can help!
If you've found a bug in Squawker, open a new issue, but please make sure to check that someone else hasn't reported it first on Fritter or on Squawker.
If you're looking for something to dip your toes into the codebase, check if there are any issues labelled good first issue. Otherwise, if you see another issue you'd like to tackle, go for it - just fork the repository, push to a branch, and create a PR detailing your changes. We'll review it and merge it in, once it meets all our checks and balances!
Most of Squawker's translations have come from Weblate
Duck Icon: Bathroom Vectors by Vecteezy


