2.0.0
What's New
- Migrated from Swift 5 to Swift 6
- Added keyboard shortcut
Command ⌘
+,
for settings
Other Changes
- Pre-calculated
startingOffset
and total spacing for wire and bulb loops, reducing redundant computations - Consolidated
xOffset
,yOffset
, and control point calculations - Released references immediately after closing windows to avoid holding unnecessary memory
- Optimized
refreshLights
to prevent redundant animations or operations during refresh - Guard conditions in
animateWindows
andrefreshLights
to prevent unnecessary calls when no windows are present - Unified alert logic into a single reusable
showAlert
method with optional completion handlers - Simplified management of
aboutWindow
andsettingsWindow
using a dictionary indexed by window IDs - Abstracted menu bar icon creation into a dedicated
menuBarIcon
method - Refactored version comparison logic
- Replaced raw strings with a
BulbColor enum
- Made bulb size configurable using a size property
- Improved fade in and out animation for lights when toggled on or off
- The
toggleGlow
logic now runs at random intervals between 0.5 and 2 seconds - Combined glow animation and color change logic into a single entry point
- Leveraged
repeatForever
for continuous glow animations without relying on timers - Used
Task
instead ofTimer
for improved control and to avoid resource leaks or unintended behavior
Full Changelog: 1.0.2...2.0.0