SideBar: The Silent Super-Feature

If done right you will almost never notice it.. It is however one of the most used parts of any app: the sidebar.  With MarsManaged we’ve gone through quite a few iterations. Here’s a retrospective on the improvements made, and the thinking behind them.  First Iteration (A): Although it was purely a SwiftUI non-functional prototype, …

MarsManaged July Update: New Palette, Icon, UX Improvements…

Back in Sunny California! Portugal was great: the food, the weather, the people… In between hikes, museums and reading breaks I’ve done quite a bit of progress on MarsManaged: it’s looking better and better. Every day a bit more polished and user feedback is helping raise the bar big time. Here’s how the main screen looks like now: …

Replacing NSTextView text programmatically without affecting its style and format

In the previous post I discussed the addition of Dynamic Date parsing to MarsManaged. In a nutshell: actions containing certain keywords (i.e. today, tomorrow, next month) are automatically converted to target dates.  High level, the flow is as follows: Nice right? Well, I quickly discovered an unexpected surprise: the TextView format was being lost when the keyword …

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.  …

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 …

Making an editable Label with SwiftUI

Let’s say you’re showing the user a list of sidebar selectable categories. These categories appear on the sidebar as SwiftUI Labels and, depending on the one selected, the app will show one view or another. So far, so good… But what if the user would like to rename one of the categories? Ideally Label would have …

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 …

Using NSSortDescriptor to sort Dates and nil values

Today I’ve been working on sorting tasks, as I’m using swiftUI and CoreData I use a FetchRequest with the following SortDescriptor: NSSortDescriptor(keyPath: \Task.targetDate, ascending: true) The idea being it will sort based on the task due date from smallest to the largest, meaning you’ll see the ones you should act on first at the top. …

Counting CoreData entries based on relationship entities

As I continue working on the new product management app, I was trying to get a quick CoreData count. To be precise,  I needed to get the count for how many of its relationships met a given criteria. There’s quite a few approaches but none as clean as “the filter”:  Using it for boolean arguments:     …