Wow, just wow!

AppKit, Catalyst, and SwiftUI walk into a bar

As I was watching the Keynote I couldn’t help but get really excited about developing for the Mac. I’ve had plans off and on to get Stream running on the Mac - it actually does run on the Mac but it’s just a shell of app. The current Mac implementation is using AppKit. I really wanted to learn AppKit because it’s how all the lovely apps we use today are built. Think of Safari (the UI at least), Photoshop (the UI), and my favorites like Twitterrific, Day One, Tot (I’m writing this post with it), NetNewsWire, and BBEdit all use AppKit and the list goes on and on and on. It’s the Mac equivalent of Win32 (A.K.A. Windows API.) It’s tried and true. And until now it was the obvious choice for building an app for the Mac.

The Grizzled Veteran

What I heard: “If you have an AppKit app keep on plugging away but consider mixing in SwiftUI.”

AppKit is going to live on. Makes complete sense to me. You can’t just drop a framework serving, I’d imagine, thousands of apps in the wild. Some of the most popular applications on the Mac use this framework, like I mentioned in my opening paragraph. I failed to mention Microsoft’s Office apps. They’re really popular.

Something else to consider. Large portions of the operating system use AppKit. It seems a waste of time to go through the entire operating system and replace all that working code with SwiftUI, doesn’t it?

Remember that old saying “If it ain’t broke, don’t fix it.” A lot of folks will adopt that saying and Apple can’t just drop AppKit on the floor. At least for now.

AppKit will be around for the foreseeable future. When Apple shows that slide with a hint you should start moving your app to SwiftUI, then you know time is short. Until then keep on keeping on and make sure that new code is written in SwiftUI.

The Utility Player

UIKit is the the most popular framework Apple has ever created. Today’s iOS App Store is full of apps built entirely on UIKit. You can’t make an app without using it - directly or indirectly.

When Apple announces they used Catalyst to bring Messages - which has to be one of the most used UIKit applications on iOS - to the Mac you have to listen.

What I heard: “If you have a great iPad App today and want to get it on the Mac, use Catalyst.”

Indeed. Use Catalyst. Seems pretty obvious.

Again, this technology should be good until AppKit is no longer a thing on the Mac. That’ll take years and years, if it happens at all.

The Rookie

SwiftUI has a lot of promise. It’s definitely Apple’s preferred way of creating applications moving forward. The abstract nature of it means you get most of the work you need for each platform by coding it once. We’re not talking Java’s promise of write once run anywhere. That obviously didn’t work. We’ve come a long way since then and Apple is definitely pushing the boundaries. Will you have #if’s in your Swift code? Absolutely. Is that a horrible thing? No, it is not. It’s a small price to pay to get your application on all of Apple’s platforms.

What I heard: “If you’re building a new application, use SwiftUI. It’s the way forward.”

This changes my calculation for bringing Stream to the Mac. Since it’s in its infancy on the Mac I’m switching to SwiftUI. Once it is completed on the Mac I’ll bring that code back to the iOS version and it’ll stay that way.

The project I’ve always wanted to build will be built from the ground up using SwiftUI for the user experience. That’s just how it has to be to keep it viable for years to come.

Until I’m retired - read as dead - I’m going to invest in SwiftUI.

I’m genuinely surprised Trump hasn’t contracted COVID-19.

I wonder how many tests he’s had? Is that documented anywhere?

I’m very happy with the new Stream icons.

I finally kicked a new BETA of Stream out the door this evening.

It includes the final release icons. Yes, icons, plural. You can pick your favorite under Settings.

Thanks for testing!

Finished hauling the dirt down the hill a bit ago. Sweaty and pooped but it feels great to be physically tired.

Hauling a yard of dirt down to the lower part of our back yard. This will be the third time doing it. It’s very tiring but the payoff will be quite nice. We’ll have a nice place to gather around the fire pit I built a few weeks back. 🔥

Watched My Spy last night. It was really cute. I had some LOL moments. There are definitely some tense moments and violence but it was really good. 🎥

Dub-Dub 2020 day one shirt. Yes, it’s from our friends at The Iconfactory!

I just finished listening to this new Podcast from The Lincoln Project. George Conway is the first guest and it’s really worth hearing what he has to say. It gave me hope we can get the Orange Man out of the Whitehouse. castro.fm

ARM Macs

Bloomberg: “The first Mac processors will have eight high-performance cores, codenamed Firestorm, and at least four energy-efficient cores, known internally as Icestorm. Apple is exploring Mac processors with more than 12 cores for further in the future, the people said.”

Lots of hubbub this week in the developer community around Mac transition to ARM chips has been about how can we build ARM apps without ARM hardware?

Think about how we build iOS, tvOS, and Watch apps today. We run them in a simulator. Xcode builds our iOS apps for x86 so they’re actually running in the simulator app on the intel chipset in our computers.

What if Apple spent time developing an emulator? Yes, an ARM emulator. Why not? They have the resources and it’s not like they couldn’t start with something like Virtual Box or do some crazy licensing deal with VMWare or Parallels for that matter.

Given that you’d either fire up the VM and run your entire environment in the virtual machine or maybe they take it a step further and you use Xcode on your Mac, the way you do today, and it fires up a virtual machine app that your newly ported Mac app runs in?

It could happen.

It’s crazy what you can get in a workstation replacement. I wish Apple could do something like this. Especially for the price. Just wild. This is a Serval WS from System76.

If I buy another Windows box it’ll be from them.

I just saw my first firefly since we’ve moved east. I’m unbelievably excited about it. These were not a thing in California.

There is some wonder left in the world.

Almost finished building our fire pit. Time for a beer.

Nothing but the best $5 headphones for Mr. Fahrni.

Yes, I’d own AirPods if they didn’t cost a bazillion dollars and only last for two years. 😀

Time for some summer sun!

Stream Update

I feel like I’ve been working on this app forever. 😀

But, I haven’t. It’s been a couple years of fits-and-starts. The last TestFlight build I sent out was, I believe, back in late February.

I only have a few new items to add then it’s all about bug fixes.

What’s left?

Import and Export OPML

I have the core of importing and exporting working fine. It’s what I worked on today.

The one stumbling block I have is where it fits in the UI, like it’s a little thing. I have some ideas, of course, but I’m not thrilled about any of them. I’ll probably pick the least icky idea and do that.

Once that’s done I’d imagine the Export feature will live next to it.

Sharing

This goes two ways. I’d like to add an extension that will allow someone to Add to Stream from a web browser and I’d like to allow folks to share out of the article view. This should allow folks to start a blog post of their own or post to their favorite social media site.

Nice to haves

Extra Icons

I have some beautiful icons to share with everyone and I really hope you all enjoy them as much as I do.

Tip Jar

I’ve struggled with this one a bit. Stream is going to be free. It’s not going to be something folks just gotta have. I did this for me. I wanted an app that was simple and felt more like a Twitter feed. I think it hits both marks.

The reason I’ve struggled with the idea of having a tip jar is I don’t want folks to feel like they have to pay anything for it. I would appreciate it but it’s not necessary.

Wrapping up

I have a few bugs I’m aware of, mostly around stripping of HTML tags.

Thanks for following along.

Two things I want to do today.

  1. Work on Stream
  2. Have Chipotle for lunch.

It’s a bold list. Let’s see if I can make at least one happen.

No real RSS reader has anything to fear from Stream. It’s something I wanted to do, something different. It’s intended to be overly simplistic, probably to a fault, but I’m ok with that.

I doubt many folks will install it. I just had to do it. It’s so close.

I need to buckle down and finish Stream. It’s been months since I last worked on it. 😟 Stream - dark mode.

Hire this Kid

Can someone please hire my daughter to do some kind of design work?

How to draw a face - 101

Rogan and Podcasting

Watch out! It's a blog fly!New York Times: “If you want to understand why podcasting is killing, he says, you first need to appreciate the world-changing, brain-rewiring transformation in how we consume information.”

I wonder if people understand the subtle difference between a podcast and content locked behind a proprietary format? Super subtle.

In a nutshell Podcasting is spoken word, published as a feed - RSS or other open type, in an open audio format, like MP3.

If I can’t subscribe to it in my podcast player of choice, it’s not a podcast.

Dear Facebook Recruiters

I’m not a good enough developer to work for you.

Even if I were, I wouldn’t want to work for you.

Thanks for asking.

My WWDC 2020 Wishlist

Time to get in on the action.

Here goes: Custom Watch Faces, iOS stability and performance improvements, and macOS stability and performance improvements

That’s it.

I’d really love to have a Dumbledore watch face.

The weather is conspiring against us. It makes working outside fun when all it does is rain all weekend. 😀