Collin Donnell

@collin@ruby.social
1.9K Followers
491 Following
8.7K Posts

I coined the term “Mac Assed Mac App.”

A software developer from Portland Oregon. I’ve been writing iOS and Mac apps since 2008 and Ruby since 2021.

📱 #Swift (iOS and Mac).
🚂 #Ruby (and Rails)

Cohost of the #RooftopRuby podcast. Friend of DeSoto.

Bloghttps://collin.blog
Photo Bloghttps://collin.photo
Musichttps://collin.band
Ruby Podcasthttps://www.rooftopruby.com
@lettie Oh yes. You can keep intents private. Only have to expose the ones you want :)
@harpaa01 that’s a great idea! I am certainly not an expert when it comes to CSS so it’s one of the things I was hoping other people might contribute 😂
@harpaa01 oh thank you! I’m glad it worked! That reminds me I need to spend a little time adding a couple features this week :)
@kyle @dimillian @esnssr I absolutely agree with this 100%. I don’t know if this is why, but at least when I was at Apple, they don’t know any better on the inside. Every app does its own thing. The SwiftUI data flow sessions are probably the closest we get.

@dimillian @esnssr What’s your feeling on adding a command pattern using AppIntent to this? With Dependency and some other things, I feel like that might be the direction they’re pushing us in. Fire intent that has access to your BlueSky client, database gets updated, views update via SwiftData.

I don’t see how someone can look at SwiftData, AppStorage, Environment, and not get that Apple wants well factored views to be where view state lives.

This is an excellent post that covers a lot of my thoughts on MVVM, TCA, etc versus vanilla SwiftUI and why it’s enough. https://dimillian.medium.com/swiftui-in-2025-forget-mvvm-262ff2bbd2ed
SwiftUI in 2025: Forget MVVM - Thomas Ricouard - Medium

It’s 2025, and I’m still getting asked the same question: “Where are your ViewModels?” Every time I share this opinion or code from my open-source projects like my BlueSky client, IcySky, or even the…

Medium
But what if it was for puppies?
@dimillian @esnssr this is right where I am. People think they need view models or TCA or whatever, because vanilla SwiftUI only works for simple apps, but I don’t see any convincing evidence for that. Everyone thinks their app is special and needs all that complexity.
@lettie Back in the day, it was common to do this exact thing using NSOperationQueue with NSOperation subclasses, but app intents seem correct now.

@lettie For firing off an update, I’m specifically thinking of a command pattern using app intents. If you didn’t want to do that, you could update your models another way.

I find it compelling because aside giving you Shortcuts support for near nothing, and it encapsulates certain kinds of updates which can be classified as actions, like an API request for a list of objects.

If I were just updating one property or something, I’d probably just have that in the view. Depends.