I'll quit my job and buy a farm You've heard the words in that title before. You've probably said them yourself, when your day to day job became so absurd that you couldn’t even tell what it is that you do there. Details shift; maybe you wanted to open a bar and talk to people face to face, hear their problems and make them feel listened. Or maybe you wanted to build a house with your bare hands…
How I made my SwiftUI calendar app 3x faster DayView(day: day, weekday: SHORT_WEEKDAY_SYMBOLS[wk], weekdayNum: wkNum) .overlay(roundRect(radius, fill: todayColor)) + .fixedSize() That's it. Really, what you see in the above diff is all I had to do. I could end the article here and it would still be useful for a bunch of people, but I'm pretty sure you'd like to know why this works, where it…
my spoon carving journey curvy spoon 2024-05-06 Carved a little spoon for my espresso coffee cup, first time I’m doing spoons, but I managed to do it all from a small piece of a walnut branch and my pocket knife. I finished it with sesame oil to give it a little orange tint because the walnut branch was too white. I also carved my signature logo for the first time, kinda hard to do with a simple…
Costs of running a macOS app studio business I created The low-tech guys , a brand under which I develop macOS apps for a living. I started this business with a good friend of mine, thinking I could help him stop working long hours at his consulting job and ease into more creative work. However, getting to a state where you earn enough to live off the app sales takes time, and he did not have that…
Integrating dynamic binaries in macOS apps It's morning, 8:01am. A bit cold, as the fire has long stopped burning in the fireplace and the stone has lost its heat. Cora, the dog, is sleeping alone on the floor. Belly up as well, she seems to enjoy the cold. My wife is still snoozing so I have to carefully choose my activities if I want to avoid her angry “why aren’t you sleeping” stare. I choose…
Fetching land coordinates from Romania's Geoportal In my quest for finding a modest house to buy, I've been asking for cadastral reference numbers from sellers, which I can then lookup on a map using the Imobile eTerra website. Sometimes I'd like to see the house or land in question on Google Maps, to see if it's close to a train track, if cycling is possible, where schools, churches and stores…
Restarting macOS apps automatically on crash Normally apps crash because of bugs introduced by the developer, but in my experience, there are cases where crashes can be out of the developer’s control. For example the app might work with hardware closely, and the expectations the system has on that hardware are not met when a power or connection cord is yanked out (or if there’s any electromagnetic…
Install any website as PWA on iOS I have a few websites that I need to use often on my iPhone. I want to have them as PWA (Progressive Web Apps) so I can use them as if they were native apps. This helps by making those sites readily available in the App Switcher, on the home screen and in Spotlight Search. It also gives me a bit more screen real estate by hiding the browser UI. Websites can be…
Keyboard tricks from a macOS app dev This is a collection of keyboard and trackpad workflows that I accumulated over the last 7 years of using a MacBook. Here are some important abbreviations I am using in this article: Term Meaning Explanation l cmd ⌘ Left Command The Command key on the left side of the spacebar r cmd ⌘ Right Command The Command key on the right side of the spacebar l alt ⌥ Left…
Fullscreen apps above the MacBook notch NOTE: This is not a tutorial. If you don't understand this article in detail, please don't attempt to do what's written in it. On MacBook laptops with a notch, the area above the notch is reserved for the menu bar for most applications. That is good for normal window usage, as the menubar no longer takes precious vertical space that could be used for the…
Can we hide the orange dot without disabling SIP? A bit of background. When macOS Monterey was announced, Apple added an orange dot indicator that appears on top of everything whenever the microphone is in use. This has made a lot of people very angry and been widely regarded as a bad move. Kidding, it was quite a nice privacy addition actually. We could finally see in realtime when an app used…
Decoding monitor EDID on macOS Using Lunar's CLI If you are already using Lunar , I added a simple command-line action in v6 that can do that on both Apple Silicon and Intel. # Install CLI if not already installed /Applications/Lunar.app/Contents/MacOS/Lunar install-cli # Read and decode EDID from all monitors lunar edid # Read and decode EDID from a specific monitor lunar edid dell You'll get a…
Making macOS apps uninstallable Wiggling apps in Launchpad There's this thing called Launchpad on macOS which shows you all the apps on your Mac in an iOS like manner. You may already have it in the Dock, but you can also launch it as any other app. There's even a nifty trackpad gesture for it where you pinch with thumb and three fingers . When holding Option , it wiggles the app icons and shows…
SwiftUI is convenient, but slow I've been sitting on publishing these notes for a while, because I don't want to diminish the work of the talented people that engineered SwiftUI and plowed through years of AppKit and UIKit code to get to this state. But I'd like to draw attention to some performance limitations, in the hope that a SwiftUI engineer might see this and understand pain points that…
How I write this blog on my iPhone, from a train I’ve been unemployed since May 2021, and occupied my time by mostly working on macOS apps for my small app studio: The low-tech guys . That may sound ideal for some, but it’s actually a very frustrating type of work most of the time. And to vent that frustration, somehow, I started writing. I’m not really sure how it happened. One day, I just found…
My App Store review timeline (mostly rejections) Lunar Lite This was my first attempt at publishing on the App Store. I started earning money on my 🌕 Lunar Pro app for controlling native monitor brightness in May 2021 . But after a few months I noticed some people were asking for a cheaper and more basic alternative to Lunar, that can also be installed from the App Store. So I built Lunar Lite ,…
Weird monitor bugs people sent me in the last 5 years I develop 🌕 Lunar , a macOS app for getting intelligent adaptive brightness on external monitors and controlling every aspect of your monitor using DDC and other obscure protocols. I get tons of email about Lunar, especially after it became my full time “job” in 2021. A lot of those emails complain about Lunar bugs, but sometimes, after a good…
App Store doesn't accept "too simple" apps I've had my fair share of App Store rejections in the past: ⌘ rcmd was rejected for usage of private APIs GammaDimmer was rejected for having a link to 🌕 Lunar (my app for controlling monitors that would never get accepted on the App Store) But I wasn't prepared to be rejected because my app is "not good enough" for the App Store. 4.2.2 - Design -…