Skip to content

Repository files navigation

Widget Factory

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.

Features

  • 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 WorkManager for 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.

Architecture & Tech Stack

  • 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

Getting Started

  1. Open the project in Android Studio.
  2. Allow Gradle to sync and download the necessary dependencies.
  3. Build and run the app on an Android device or emulator (Android 8.0+ recommended).
  4. Long press on your homescreen to add the widgets, or use the "Add" button directly from the Widget Factory app interface.

API Keys

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.

About

An app for all the best Android Large Screen Widgets

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages