Objective
Remove or replace the window_manager dependency so SuperDeck macOS apps can adopt Flutter's Swift Package Manager (SPM) plugin integration without falling back to CocoaPods.
Motivation
Flutter is moving to SPM as the default dependency manager for iOS and macOS (Flutter 3.44+). Plugins that only ship CocoaPods integration block full SPM migration and trigger fallback warnings during builds.
The window_manager package used by SuperDeck does not currently support SPM at the version resolved in this repo (0.4.3 in demo/pubspec.lock). SPM support was added upstream in window_manager 0.5.0, but we should still evaluate whether to keep the dependency or replace it with a lighter approach.
Current usage
window_manager is imported directly in the superdeck package:
packages/superdeck/lib/src/utils/app_initialization.dart — initializes window size (1280×720), aspect ratio (16:9), hidden title bar, show/focus on startup
- Called from
packages/superdeck/lib/src/ui/superdeck_app.dart via initializeDependencies()
The dependency appears transitively in desktop app lockfiles and macOS Podfile.lock files (e.g. demo/macos/Podfile.lock, packages/playground/macos/Podfile.lock), indicating CocoaPods-based macOS plugin integration.
Proposed directions
- Upgrade — Bump to
window_manager ≥ 0.5.0 if SPM support is sufficient for our macOS targets and no other blockers remain.
- Replace with native setup — Configure window size, aspect ratio, and title bar style in platform runner code (
MainFlutterWindow.swift on macOS, equivalents on Windows/Linux) and drop the plugin where possible.
- Alternative package — Evaluate another desktop window plugin with SPM support if runtime window control is still required from Dart.
Acceptance criteria
References
Objective
Remove or replace the
window_managerdependency so SuperDeck macOS apps can adopt Flutter's Swift Package Manager (SPM) plugin integration without falling back to CocoaPods.Motivation
Flutter is moving to SPM as the default dependency manager for iOS and macOS (Flutter 3.44+). Plugins that only ship CocoaPods integration block full SPM migration and trigger fallback warnings during builds.
The
window_managerpackage used by SuperDeck does not currently support SPM at the version resolved in this repo (0.4.3indemo/pubspec.lock). SPM support was added upstream inwindow_manager0.5.0, but we should still evaluate whether to keep the dependency or replace it with a lighter approach.Current usage
window_manageris imported directly in thesuperdeckpackage:packages/superdeck/lib/src/utils/app_initialization.dart— initializes window size (1280×720), aspect ratio (16:9), hidden title bar, show/focus on startuppackages/superdeck/lib/src/ui/superdeck_app.dartviainitializeDependencies()The dependency appears transitively in desktop app lockfiles and macOS
Podfile.lockfiles (e.g.demo/macos/Podfile.lock,packages/playground/macos/Podfile.lock), indicating CocoaPods-based macOS plugin integration.Proposed directions
window_manager≥ 0.5.0 if SPM support is sufficient for our macOS targets and no other blockers remain.MainFlutterWindow.swifton macOS, equivalents on Windows/Linux) and drop the plugin where possible.Acceptance criteria
flutter config --enable-swift-package-manager) without CocoaPods fallback caused bywindow_managerwindow_manageris removed from dependencies or explicitly justified if upgradedReferences