After over a year in the making – I’m excited to announce another signficant milestone: Starlight has gone gold! Its effectively ready to ship, what’s more, it’s also approved for sale by Apple — feels… pretty good With the app gone gold, I’m now switching to getting ready to ship! Among other things, that includes …
Tag Archives: macOS
Restoring macOS window after close – SwiftUI WindowsGroup
Typical behavior for macOS apps is that the apps will preserve their size and position when closed (Command + W) or quit (Command + Q) by the user. When using SwiftUI & WindowsGroup that’s not the case though: although it works as designed when quitting, it forgets position and size when closing the window …
Continue reading “Restoring macOS window after close – SwiftUI WindowsGroup”
Creating a macOS “About” screen the SwiftUI way
If you’re creating a macOS app, the About screen is that place where you get to “sign” your work. It is also the place where most developers will link to their personal web, thank contributors, etc. For me, it’s one of the areas I work on last… When I get to it, it always feels great. …
Continue reading “Creating a macOS “About” screen the SwiftUI way”
Badges? Gray Badges? Color Badges!
As I was working on cell badges indicating the number of to-dos pending for a given card it hit me… The approach I was taking was good, it gave relevant and timely information… But could be much better: what if the flag changes color when you have a to-do overdue, due today, tomorrow or soon? This …
TextField Recommendations / Autocomplete – SwiftUI macOS and iOS
Another weekend, another set of improvements for MarsManaged. This time, I focused on adding an autocompletion feature for Tags. Let me provide some context first… In MarsManaged, cards may be linked to one or multiple tags. In the below example, the “Welcome to MarsManaged!” card is linked to the tag “Samples” (yellow arrow). To link one …
Continue reading “TextField Recommendations / Autocomplete – SwiftUI macOS and iOS”
SwiftUI macOS Preference Pane | Preferences
As easy as 1, 2, 3. Or is it? 1. Create a new SwiftUI file called PreferencePane and add the desired view within a TabView: import SwiftUI struct PreferencePane: View { var body: some View { TabView { …
Continue reading “SwiftUI macOS Preference Pane | Preferences”
MenuBar Items in SwiftUI
Before SwiftUI you would easily add, change or remove menuBarItems from your app Storyboard. With the transition to SwiftUI however, there’s no longer a StoryBoard file to edit… So, what now? After the initial surprise, and having spent a few hours reading documentation… It’s actually a very straightforward three step process: 1. In your @main …
Preventing edits in TextFields unless cell is selected
For the ToDo section in MarsManaged, the goal is for the user to see and quickly manage their upcoming tasks. The user should be able to easily tweak bookmarked tasks, set target dates, complete or delete them. Now, given that each cell is composed of multiple editable TextFields, it’s important to prevent unintended editing on …
Continue reading “Preventing edits in TextFields unless cell is selected”
Developing on the cutting edge
If you’re working on a new app using the latest Xcode & macOS Monterey betas be aware of a bug that leads to SceneStorage failures appearing on the console: Failed to restore SceneStorage with key selectedTaskId. at SwiftUI/SceneStorage.swift:105[…]Failed to restore SceneStorage with key sidebarSelection. at SwiftUI/SceneStorage.swift:105Binary[2571:23261] Checked for defaults IMKUseDistributedObjects. result is 0Binary[2571:23261] IMK will …
Struggling with a basic macOS SideBar, RowList & DetailView app in SwiftUI
Its amazing how fast you can prototype in SwiftUI, it seems like magic. At the same time, when you start to get into the details, it can be infuriating… Let me explain… After completing the prototype last week and deciding on the key features for the app I started implementing them. One of the very …
Continue reading “Struggling with a basic macOS SideBar, RowList & DetailView app in SwiftUI”