Widget Factory is a modern Android application that serves as a central hub for managing and configuring a collection of homescreen widgets. Built entirely with Kotlin, Jetpack Compose, and Jetpack Glance, the app provides a high-fidelity, Material Design 3 experience for both the main app interface and the widgets themselves.
- Modern Pod Grid Interface: Browse and manage your available widgets in a sleek, responsive grid layout.
- Stock Ticker Widget: Track up to 3 of your favorite stocks simultaneously. Powered by the Tiingo API, it automatically updates in the background and displays current prices, daily highs/lows, and percentage changes.
- Stats for Nerds Widget: A clean, minimalist widget that provides real-time device diagnostics including Manufacturer, Android Version, API Level, System RAM, Hardware IDs, and Display Resolution.
- Dynamic Background Sync: Utilizes Android's
WorkManagerfor efficient, battery-friendly periodic background updates while ensuring immediate fetch responses upon configuration changes. - Jetpack Glance: Widgets are built using modern declarative UI paradigms with Glance, rather than legacy RemoteViews.
- Language: Kotlin
- UI Toolkit: Jetpack Compose (App), Jetpack Glance (Widgets)
- Networking: Retrofit, OkHttp3, GSON
- Background Processing: WorkManager (Coroutines)
- Local Storage: DataStore (PreferencesGlanceStateDefinition), SharedPreferences
- Navigation: Jetpack Navigation Compose
- Open the project in Android Studio.
- Allow Gradle to sync and download the necessary dependencies.
- Build and run the app on an Android device or emulator (Android 8.0+ recommended).
- Long press on your homescreen to add the widgets, or use the "Add" button directly from the Widget Factory app interface.
The Stock Ticker widget uses the Tiingo API for real-time stock data. The API key is currently configured within StockUpdateWorker.kt. For production forks, it is recommended to move this key to a secure local.properties or environment variable.