How macchiato1239/desktopbuddy works
Desktop Buddy is a macOS desktop app for importing local images or choosing built-in assets, displaying each as an always-on-top movable buddy, and adjusting its position and size. The documented workflow runs through the Flutter interface and a native macOS overlay implementation. README behavior supports the UI stages, while sampled AppDelegate code confirms method-channel operations, panel management, image loading and frame notifications. Flutter source files were not sampled, so detailed UI-to-channel wiring is not asserted.
Main entry points: main.dart App interface · AppDelegate.swift Native app delegate · library.dart Built-in library · buttons.dart Import controls
Components 14
Flutter interface
- App interface
lib/main.dart - Built-in library
lib/library.dart - Import controls
lib/buttons.dart - Layer list
lib/layer.dart - Buddy properties
lib/layer.dart - Background UI
lib/background.dart - Focus handling
lib/focus.dart
Buddy workflow
- Local image files
- Bundled assets
assets
macOS overlays
- Method channel
macos/Runner/AppDelegate.swift - Native app delegate
macos/Runner/AppDelegate.swift - Floating overlays
macos/Runner/AppDelegate.swift - Image display
macos/Runner/AppDelegate.swift
Other components
- User
Connections 15
- User → App interface: uses
- User → Local image files: chooses
- Built-in library → App interface: offers assets
- Import controls → App interface: offers import
- Layer list → App interface: shows layers
- Buddy properties → App interface: edits properties
- App interface → Method channel: dispatches commands
- Method channel → Native app delegate: delivers calls
- Native app delegate → Floating overlays: creates and updates
- Native app delegate → Local image files: opens selection dialog
- Native app delegate → Bundled assets: loads built-in image
- Native app delegate → Image display: loads selected image
- Image display → Floating overlays: renders into
- Floating overlays → Method channel: sends frame updates
- Method channel → App interface: returns notifications