Accepting Select Projects — Let’s Build Something Rare.
ChartGenerator.kt
Android Home Screen Widgets use RemoteViews, a restrictive system that does not support third-party charting libraries or custom UI drawing. To work around this, the class manually draws the line chart onto a static image (Bitmap) using Android's low-level Canvas and Paint tools. This generated image is then passed to the widget to display, allowing us to show complex data visualizations in an environment that normally wouldn't support them.
MarketScannerWidget.kt
Serves as the core UI definition, utilizing Jetpack Glance to render the interface with modern, declarative syntax instead of traditional XML. It implements a robust responsive layout system that dynamically switches between three distinct views—a compact row, a vertical chart, and a full dashboard—based on the widget's specific aspect ratio and dimensions. This file also acts as the central state consumer, retrieving persistent market data and user preferences (such as background opacity) to ensure the UI remains consistent across updates.
RefreshAction.kt
functions as the widget's logic controller, utilizing the ActionCallback interface to handle user interactions and simulate a live data feed. It generates randomized market metrics and rotates news headlines, then persists this state to Android's DataStore to ensure data consistency across widget updates. This separation of concerns allows the UI to remain purely reactive while this class handles data management and backend simulation.
ToggleOpacity.kt
manages the user interaction for customizing the widget's visual density, implementing an ActionCallback to cycle through distinct background transparency levels. It reads the current state from DataStore, calculates the next opacity setting, and triggers an immediate UI refresh, allowing users to personalize the widget's aesthetics directly from the home screen without needing a complex settings menu.
Want to know more?
Check out my blog post to see the process of how I translated my Figma design into Android Studio Jetpack Glance.
Automatically creates and organizes standard Blender collections (Models, FX, Lighting, etc.) for a clean, production-ready Outliner. Avoids duplicate names and seamlessly links existing collections when available.
Generates a fully-wired Principled BSDF node setup, complete with Texture Coordinate → Mapping → 5 image texture slots (Base, Albedo, Roughness, Metallic, Normal) and a MixRGB node for color blending.
Auto-assigns the material to your active object. Makes clean, customizable material networks in seconds.
Quickly renames all selected objects in your scene with a custom prefix and padded numbering (e.g., Prop_001, Prop_002). The base name can be customized to suit your specific needs—for example, you can change "Prop" to "Camera", or "Lighting", or any other label you prefer.
Perfect for keeping things clean during export or large asset builds. No more "Cube.014" — just precision and control.