Polymarket Viewer
March 18, 2026 ยท View on GitHub
Android app for convenient Polymarket market browsing, including home screen widget support.
Built with Jetpack Compose and modern Android practices following Clean Architecture.
Screenshots
Features
Discover
- ๐ Browse active prediction market events
- ๐ Search, filter, and sort with key metrics
- โญ Save favorite events to your watchlist
Analyze
- ๐ View event details, outcomes, markets, and volume
- ๐ Explore interactive market price history charts
- ๐ฌ Read threaded comments and open user profiles
Widget
- ๐งฉ Add selected events as home screen widgets
- ๐ Open from widget and refresh manually or periodically
Download
F-Droid (Recommended)
GitHub Releases
Download the latest APK from Releases.
Enable "Install from unknown sources" in Android settings before installing.
Architecture
This project follows Clean Architecture principles with clear separation of concerns:
- Presentation Layer (
ui/) - Jetpack Compose screens, ViewModels, and UI state models - Domain Layer (
domain/) - Repository contracts and domain-facing models (e.g.,PolymarketRepository) - Data Layer (
data/) - API clients, repository implementations, preferences, and DTOs - Dependency Injection (
di/) - Koin modules for dependency management
Technologies
- Language: Kotlin
- UI: Jetpack Compose with Material 3
- Navigation: Navigation 3
- Networking: Ktor Client
- Widgets: AndroidX Glance App Widgets
- Background Work: WorkManager
- Local Storage: DataStore Preferences
- Charts: Vico Charts
- DI: Koin
- Images: Coil
Acknowledgments
Special thanks to the maintainers and contributors of the open source libraries that make this project possible:
- Vico Charts by @patrykandpatrick - Beautiful charts for Compose
- Coil - Efficient image loading for Android
- Ktor - Kotlin multiplatform HTTP client
- Koin - Pragmatic lightweight dependency injection for Kotlin
- Kotlin - The amazing language powering this app
Requirements
- Android: 8.1+ (API level 27)
- Target SDK: 36 (Android 16)
- Build JDK: 21 (Temurin/Adoptium)
Gradle daemon JVM is pinned in gradle/gradle-daemon-jvm.properties and should stay aligned with CI.
Disclaimer
This is an unofficial, experimental application and is not affiliated with Polymarket. Data is sourced from Polymarket.com via their public API. Use at your own discretion.
Contact
If you have any questions or suggestions, please contact us at: streamatico+polymarket@gmail.com.
Visit our website: streamatico.com
