Every time I realize there is no built-in cgPath
method on NSBezierPath
, but on UIBezierPath
, I am reminded that macOS development has been really a second-class experience. Good thing it's changing since WWDC19.
Catalyst will affect nothing about macOS’s game landscape, since most of the games are built with either Unity or Unreal, and they both have a Catalyst-like check box called ☑macOS.
∞ The Volkswagen Beetle Says Auf Wiedersehen
RIP Volkswagen Beetle. Does that increase their resell values? Asking for a friend.
Spaces in App Names Just Bit Me
One of the necessary dA 5Star's features is to launch at login. While users can add it to login items in System Preferences, automatic launch-at-login with opt-out would be much more convenient and discoverable.
To do that with a macOS App Store app, Tim Schröder wrote a great tutorial on this topic.
The idea is to use SMLoginItemSetEnabled
with a bundled helper app. The helper app can be launched at login, the helper can in turn launch your main app.
So I followed the instructions. But I just couldn't get it to work. After a few hours I gave in: I downloaded the example Xcode project. It works! So there must be something wrong with my setup.
After a few more hours of comparing the differences between the sample app and my app, I finally discovered what the issue is. At this point you already guessed from this post's title. Yes that's because I named my helper dA 5Star Helper
, and it contains spaces. I renamed to simply Launcher
and it solved the mystery.
Ouch.
I’m still not sure how I feel about the FaceTime Attention Correction in iOS 13. Is it creepy? Probably not. But how far it can go until it’s creepy? Not too much.
Accessibility is for Everyone
In this episode of @ParallelPods, @shelly interviewed Sarah Herrlinger of Apple. It’s all great, but this clip in particular reminds me how accessibility is for *everyone*. https://t.co/zi4dqYhWtEhttps://t.co/tEVgtU6ARe pic.twitter.com/rie01d8eJQ
— Casey Liss (@caseyliss) June 12, 2019
Exactly the reaction I had when hearing the iPadOS mouse support feature could be turned on in Accessibility. It’s for everyone, so everyone can turn on.
This also infers that the desire to use a mouse on iPadOS is just like any other need like to use Voice Control. It can't be more normal.
Those who skipped adopting storyboards and autolayout for whatever reason, well you no longer have to look back.
One thing will inevitably happen: CoreData DSL in Swift.
Focused Language Evolutions in Acceleration
It was in either 2010 or 2011, I started following Go, I was attracted to its simplicity, its focus. Not long after, I re-wrote my website in Go from Python, just because of my love.
It was also Go that kick started my interest in the evolution of a language. I started reading all the Go blog posts, watching many Go talks.
This is not by accident. Before that time, the language landscape had actually been relatively quiet. Then Go (2009), Rust (2010), Dart (2011), Swift (2014) appeared in public. Not only they are modern, but they also made language development mainstream again.
Go initially focused on concurrency in a large code base, Rust system programming, Dart first a replacement of Javascript, now the Flutter language, Swift the Apple client applications. Because of their focus and the active evolutions, they are bringing us into a new era of software engineering.
More importantly, the evolutions are accelerating.
2017, Go started the Go 2 evolution process.
2018, Swift for TensorFlow was announced, bringing Dynamic Member Lookup [SE-0195], Dynamic Callable [SE-0216], Static Callable [SE-0253]. Differentiation [SE-XXXX], Dynamic Property Iterations [SE-XXXX].
2019, Dart "UI as Code" happened in 2.3.
2019 WWDC, SwiftUI surprised and excited the Apple developer community, marking the end of the NeXT era. It’s bringing Property Wrappers [SE-0258] and Domain Specific Language [SE-XXXX].
It has never been a greater time for programming languages.
∞ iTunes: An Error Occurred
Allen Pike's perfect farewell to iTunes, by presenting his collected error messages. My favorite is this one:
A simple, elegant, completely useless iTunes error message captured by Allen Pike