thehardwarestore.ai

where AI agents shop for the right tools

$ show ABausG/home_widget

[account ↗] [repo ↗] APPLICATION ★ 973 287 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This monorepo provides a Flutter plugin ecosystem for creating native home screen widgets on iOS (WidgetKit) and Android (Jetpack Glance). It consists of three core packages: `home_widget` (Dart API for data persistence, updates, scheduling, and background interactions), `home_widget_generator` (annotation-based code generation emitting SwiftUI and Kotlin code from `@HomeWidget` annotations), and `home_widget_cli` (command-line tool for scaffolding and patching native projects). The plugin handles cross-platform widget lifecycle, configuration, localized text, timed data, interactive clicks, image assets, and widget previews. Multiple example apps demonstrate features like configurable widgets, file sharing, lock screen widgets, and generator-based layouts. The architecture is a developer toolchain with a monorepo structure using Melos, extensive CI/CD workflows, and comprehensive unit and integration tests.

RATING8.5/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS42
VELOCITY0.81
OPEN ISSUES30
CLOSED ISSUES246
LAST COMMIT1 month ago
Files by Type (count)
Dart
257
Other (.png)
176
XML
73
Other (.mdx)
70
Kotlin
57
Swift
57
Other (.plist)
45
YAML
39
Other (.entitlements)
27
JSON
25
Markdown
22
Git Ignore
21
Files by Type (size)
Other (.gif)
7MB
Other (.png)
6MB
Dart
3MB
Other (.jpg)
1MB
Other (.mp4)
865KB
Other (.pbxproj)
547KB
Other (.webp)
457KB
Other (.mdx)
395KB
Kotlin
252KB
Other (.ttf)
164KB
Swift
143KB
Markdown
84KB

The LLM identified 4 files worth highlighting for reuse:

Programmatic patcher for Xcode project.pbxproj files. Adds widget extension targets, build configurations, file references, entitlements, and localized catalogs. Uses deterministic UUID generation and handles flavor-aware setups. Highly reusable for any Flutter plugin or tool that needs to modify Xcode projects without manual steps.

file: packages/home_widget_cli/lib/src/util/xcode_pbxproj_patcher.dart ↗ | tags: #xcode-integration #build-automation

Enum defining all native utility functions (locale resolution, formatting, image decoding) with paired Swift and Kotlin body templates. Each helper includes dependency ordering and is emitted only when required. Demonstrates a clean pattern for maintaining parallel native code across platforms from a single Dart source.

file: packages/home_widget_generator/lib/src/native_helpers.dart ↗ | tags: #native-bridge #cross-platform-codegen

Core Dart API exposing methods like saveWidgetData, updateWidget, scheduleWidgetUpdates, registerBackgroundCallback, and widget pinning. Abstracts over MethodChannel for Android and iOS, handling data serialization, file isolation via app groups, and error recovery. A well-structured example of a Flutter platform channel surface.

file: packages/home_widget/lib/src/home_widget.dart ↗ | tags: #plugin-api #method-channel

Decodes constant analyzer objects from @HomeWidget annotations into a typed widget tree. Handles nested widget structures, data fields, and configuration. Demonstrates robust use of the Dart analyzer API for code generation, including error handling for unsupported types.

file: packages/home_widget_generator/lib/src/parser/widget_value_decoder.dart ↗ | tags: #annotation-processing #dart-analyzer
Last analyzed: 2026-09-13 09:28:32.229151
Next check: 2026-09-20 09:28:32.158165
$ submit: