Repository navigation
Conversation
- Built with Swift 6 and SwiftUI targeting macOS 14+ (Sonoma & Sequoia) - 3-column navigation: Library categories, Profiles, diagnostic Tools, and Nexus Services - Center-view collapsible mod groups with centered status toggles and batch controls - Official Nexus Mods API integration with live key validation and Premium detection - Live SMAPI launcher with symlink staging and SMAPI_MODS_PATH injection - In-app mod config.json editor - Native About dialog with environment diagnostics, attribution, and license links - Full compatibility with existing Stardrop Settings.json and Profiles/*.json - Packaged build script build-mac-app.sh and dedicated StardropMac/README.md
… toolbar bulk actions
…rotection - Add ModSeparator model, SeparatorService, and management sheets - Support grouping mods by separator with collapse/expand, reorder, and bulk actions - Add direct list toggling via checkbox and status pills - Add Spacebar shortcut for toggling selected mod with Up/Down arrow navigation - Fix case-insensitive manifest decoding for SMAPI core mods (UniqueId vs UniqueID) - Enforce core SMAPI component protection (ConsoleCommands, SaveBackup, ErrorHandler) - Clean up sidebar profile header controls and update indicators
- Add build-dmg.sh packaging tool with Retina background generation - Configure Finder layout, custom volume icon, and /Applications symlink - Support UDZO maximum compression and SHA256 checksum generation - Add CFBundleURLTypes (nxm://) to build-mac-app.sh Info.plist - Update StardropMac README with DMG build instructions
- Support installing mods from archives (.zip, .7z, .rar, .tar.gz) and folders - Enable drag-and-drop onto the main window with visual drop zone and progress overlay - Add manual archive picker via Command+O, toolbar '+' button, and context menu - Preserve user config.json files when updating existing mods - Support Nexus Mods endorsements with AES-256-CBC key obscurity compatible with Notion.json - Modularize MainView view modifiers to optimize Swift compiler type-check performance
…ht click & sidebar - Add 'Delete Mod...' to table row context menu and right inspector sidebar - Detect if mod is a required dependency of any currently enabled mods - Present warning confirmation dialog listing affected dependent mods - Safely move deleted mod folder to macOS Trash via FileManager.trashItem - Clean up deleted mod references across profiles and separators - Protect core SMAPI mods from deletion
- Support range selection via Shift+Click and Shift+Arrow Up/Down - Support individual toggle selection via Command+Click and Command+A (Select All) - Enable Space shortcut to batch toggle all selected mods (mixed -> enabled -> disabled) - Update context menu and inspector sidebar with batch actions and batch deletion
- Centralize app versioning in AppVersion.swift (1.11.0, build 2) - Update AboutSheet, ModUpdateService, and NexusService headers to 1.11.0 - Update build-mac-app.sh and build-dmg.sh defaults to 1.11.0
|
Hello! While I agree there are some benefits in utilizing Swift, I don't believe they outweigh the cost of having to maintain two separate codebases for cross-platform support (which is one of the reasons I went with Avalonia). Stardrop currently already enjoys cross-platform support and I believe some of the more outstanding compatibility issues will be resolved after migrating to the latest Avalonia version. My project is open source, so please feel free to maintain your own fork! |
|
Thanks for your response, so I can upload it on nexus? |
|
As Stardrop is open-source, you are free to do as you like so long as you follow the project's license. I am fairly sure you will need to upload it under a different name (i.e. not Stardrop) for Nexus Mods, as they have their own rules. |
Summary
This pull request introduces StardropMac, a native macOS mod manager for Stardew Valley built with Swift and SwiftUI. It resides independently in the
StardropMac/directory, leaving the existing C# / Avalonia codebase completely untouched while sharing the exact same configuration files, profiles, and data directory structure.Why a Native macOS Version?
While Stardrop already offers a cross-platform build via Avalonia (.NET / C#), running a desktop application on macOS through cross-platform UI frameworks comes with inherent platform limitations:
True AppKit / Cocoa UI vs. Canvas Rendering:
Performance, Startup Time, and Runtime Overhead:
Deep macOS System Integration:
NavigationSplitViewwith translucent sidebars.⌘,,⌘O,⌘R,⌘U).FileManager.default.trashItem, safely sending files to the macOS Trash Bin (~/.Trash) rather than performing unrecoverable disk deletion.100% Data and Profile Compatibility:
Settings.json,Profiles/*.json, andNotion.json(using AES-256-CBC obscurity matching Stardrop's C# implementation) in~/Library/Application Support/Stardrop/Data/.Key Features
Shift + ClickandShift + ↑ / ↓.Command + ClickandCommand + A.Spacebar..zip,.7z,.rar,.tar.gz) or uncompressed folders into the app with automatic manifest discovery andconfig.jsonpreservation.ConsoleCommands,SaveBackup,ErrorHandler) against accidental disabling or deletion.Selected Mods/for SMAPI launching.config.jsonediting with syntax validation.build-mac-app.sh) and compressed disk images (build-dmg.sh).How to Test
StardropMacdirectory:cd StardropMac~/Library/Application Support/Stardrop/Data/are loaded properly.