Avatar of Matt Moriarity
Matt Moriarity

Just set up Basecamp Personal for some of my iOS app side projects. Not sure how much use it is without collaborators; I’ll find out I guess.


Still giddy that I got to see The Adventure Zone live this week.


So excited that I ended up being in Chicago for work the same week as an Adventure Zone live show! Tonight’s gonna be a good night.


Look at that, I filed my first Swift bug! It’s a pretty weird one if you ask me, but I think I managed to reduce this one down to a pretty small reproducible example.




Creating Pipelines with Combine and Core Data

In the last post, I adapted my existing observation of Core Data objects to use Combine by replacing callbacks with publishers and subscriptions. But Combine can do a lot more than just make your callbacks harder to use! It’s designed to let you build data pipelines, where different parts of your app can produce data that can be consumed and transformed in interesting ways,and decoupled ways by other parts. If I really think about what’s happening in my app, there is a flow of data from Core Data to the fetched results controller to my view controller and finally to the diffable data source. I’d really like to model that data flow in Combine in a declarative way.

Read more…


Getting Started with Combine and Core Data

Because Apple released SwiftUI and Combine together, you could be forgiven for ignoring Combine if you’re only using UIKit in your app. I certainly ignored it for a while, but I think Combine provides a huge opportunity to use better app architectures in your iOS app without feeling like UIKit is fighting you the entire time.

I want to demonstrate a progression I went through in my app for observing data changes from Core Data. I think that this shows the power that’s available in Combine if you’re willing to embrace it.

Read more…


I could listen to The Adventure Zone: Suffering Game soundtrack all day long.


I tried to build this kind of character in my first Pathfinder campaign (a “Demagogue” bard) but it turns out I was incredibly bad at role playing it. People should do it more, though.


I think Combine and diffable data sources might finally unlock MVVM as an actually usable model for UIKit apps.


Kim is great, and so is this talk of hers from DevOpsDays in Denver earlier this year. So much useful advice on how to grow new engineers and support them.



Twitterrific changed the navigation gesture to dismiss tweets in iOS 13, and the new one is better and more reliable, but apparently my muscle memory for this gesture does not let go easily.



Share Menus with Mac Catalyst

I’ve been working on porting a new iOS app to the Mac using Catalyst. Part of my app uses UIActivityViewController to support sharing projects you create in the app via a public URL. I had trouble finding good resources about how to make share menus first-class in Catalyst, so I thought I would write up what I found from digging through API docs.

Read more…


I named the new WiFi network “Shrimp Heaven Now” and I feel its power throughout the house.


In the newest Adventure Zone, Justin made an I Think You Should Leave reference and it delighted me.



Opening mail can be surprisingly intimidating with ADHD. Austin has a few toll roads, so when we lived there, there were many times where I paid late fees just because it took me so long to finally open and pay the bill.


My coffee grinder broke yesterday, and my wife had the car, so I missed my normal afternoon coffee.

And that’s how I ended up tired and going to sleep at 9PM.


Is there a way in Catalyst to update the main menu bar after app launch? If I want to include dynamic content in a menu, I can’t seem to find how I would ever update it when the content changes.


I’m porting an iOS app to Mac with Catalyst. While there’s a bunch of things that could be easier or better documented, overall it’s really fun and exciting to get to a pretty decent app so fast.





I haven’t been sure how to talk about this, but here goes: it’s been about two months since I started getting treated for adult ADHD. Still trying to find what helps best, but it’s so validating to have a professional confirm what I’ve suspected for about a year.


I would have upgraded to iOS 13 just for the new indicator when you change the volume.


See more posts in the archives.