11 years ago, I wrote my first Mac app, Coords, and released it on the Mac App Store. It was the first time I had tried to develop for the Mac, having come from the rather straightforward world of iOS development in the 2010s. It was a simple utility app that allowed you to interact with Apple Maps and do some semi-complex tasks, such as adding simple circular overlays to markers and easily see location information such as decimal degrees, minutes, and seconds. While many websites included a lot of this functionality, even to this day I donāt think anything can beat native Mac apps.
After many years, I just abandoned the app to work on other projects. However, every year or so I would think back on the app and get an urge to rewrite it and bring it up to date with the latest in Mac OS features. Every year that idea popped into my head and so did about a dozen other app ideas which I tended to lean towards working on rather than rewriting something I had already built. Plus, somehow over the years I had managed to keep almost every scrap of code and failed project I had ever created with Xcode, except for the source code to this app. I have searched every hard drive, Time Machine backup, and zip of old projects and still havenāt been able to find any code for the project.
All that changed this year when planning some of my yearly goals. I wanted to work on bringing back one of my apps into modern macOS times, utilizing the latest in SwiftUI and some of the new Tahoe-style UI elements. I finally buckled down over the past weekend and started to re-write Coords from the ground up. I had the basic functions of the app rewritten and running smoothly after only a few hours of SwiftUI tinkering!
My goal is to release this app within the next month or two back to the Mac App Store, and for the first time on my own website. It has been great working on this app again, and I canāt wait to share (again) it once it is ready!
This is most certainly not the first Mac App I purchased on the Mac App Store back in 2009…makes me wonder what app sold itself to a random company to just be renamed and taken over?
I remember hearing rumors of Apple making a service bundle of their Pro/Creative apps last year, but it really surprised me when I saw they finally released it today! As someone who uses Final Cut Pro, and wanted to explore the other Pro apps, the low monthly price is really attractive. Especially compared to Adobe CC which feels so expensive for my particular workflows. However, the thing Iām most excited to try out is Pixelmator Pro. I havenāt used Pixelmator since its earlier versions when it was first released, but I remember loving it and some of the new vector and photo editing support looks really solid!
Finally stumbled across the a great reference site for the NSDateFormatter string options. Can’t tell you how many times I’ve needed this over my years of dealing with both Objective-C and Swift.
I spend a lot of my free time reading. While I do almost always prefer reading a physical book, the one thing that keeps me coming back to digital is the ease of creating highlights. Iām not someone who enjoys highlighting in a physical book, but Iāll highlight a ton on my Kindle or iPad when reading. The only issue is after Iām done reading a book, I tend to forget about those highlights until some random day when Iām trying to remember something I read in a book months past.
Kindle, of course, supports exporting all of your annotations, within reason due to DRM, to an HTML document for archiving purposes. Apple, on the other hand, has limited ability to export your highlights made in the Books app. There is a very handy command-line tool that lets you export your annotations by reading the SQLite database used by the Books app on macOS. This is a great tool, but I was finding it always slightly annoying to have to drop down to the command line every time I wanted to collect my notes. Plus, the command-line tool couldnāt interact with the Kindle exported HTML documents, which meant I never could have a single app for both Apple Books and Kindle.
A few months later, and I’ve built a new app! After digging around in the SQLite database, I was able to find all the relevant fields, databases (yes, there are actually two databases that the Books app uses), and tables that I needed to build my app. Like many of the personal apps I build for myself, though, I cared less about the UI and spent more time building out features. This led the app to look like this:
It was bare bones and all built in App Kit, but it worked great! And I was able to easily add an HTML parser so I could convert my Kindle notes as well. All in a single app with only a few clicks.
A few weeks ago though, I sat down to use it and felt with a bit of work, mainly a full rewrite to SwiftUI, I could have a proper-looking Mac app. So I sat down and got to work. I replaced the entire UI layer of App Kit and Xibs with a more modern SwiftUI interface. Which did make some things, like custom table views, much easier to build and implement. And thankfully, since my data layer was abstracted already, I could easily slot it into the new SwiftUI app without many problems. After about a week, I had a whole new UI that I felt looked much more like a real Mac app!
Now Iām happy to announce that Iāve released the app for free on my website! It works great, and I do have some small improvements to make, but hopefully, a few other people will find it helpful. I am debating if I should submit it to the Mac App Store, but Iām not sure how Apple will feel about me accessing the Books appās SQLite databases, even though my app just makes a copy of the databases before interacting with it.
Brief side noteā¦I really dislike the fact that Apple renamed iBooks to Books. I know why they did it, but it just makes the whole app and reading on the iPad feel so generic when it shouldnāt. And it also makes it harder to really talk about the app since calling it āBooksā doesnāt do a good job of explaining what it is.
Saw this meme on IG from @disappointingaffirmations that really motivated me to finish and release some recent projects. Few days later and it is still front and center while I cleanup my Developer folder of various projects Iāve started over the past few years.
It is pretty easy to tell what parts of macOS aren’t used by a ton of people within Apple by how off the new Liquid Glass design looks. The screenshot is from a connected networked Mac.
Excited to finally release my new Mac app, Bookmark Manager! One easy app that lets you export all of your Safari bookmarks and Reading List items into CSV format. Great for archiving old bookmarks to cleanup your Safari usage! Available to download on my site!
In 2009, The Beatles released their entire discography on a unique green apple with a removable USB-branded drive. This device has long been on my list of Beatles releases that I have wanted to pick up for years now. And, thanks to a recent eBay listing and no one else bidding, I was finally able to add the infamous green apple to my collection.
While the package was shipped across the country, I kept worrying about finally receiving the device, only to discover it was wiped by the previous owner. But thankfully, the previous owner didnāt mess with the drive, and it worked perfectly once I plugged it in for the first time. Well, other than the fact that the included Beatles application requires a previous version of Mac OS X that supports 32-bit applications since it is actually a wrapped Adobe Flash application.
Once I pulled the files off of the green stem USB drive, I figured I had two main problems.
Since the drive is over 16 years old, I didnāt want to worry about it failing and corrupting all the data on it. While I did pull the FLAC, more on these files later, and MP3 folders, I still like having as close to a 1:1 copy of the drive for archival purposes.
To solve this problem, I opened Disk Utility, right-clicked the drive, and created a new Disk Image from it. After waiting about 30 minutes, USB drives from 2009 werenāt the fastest, I had a perfectly working copy of the USB.
The second problem relates to the included files. This USB is unique as it is one of the few official FLAC releases of The Beatles discography. And while it is great to have the FLAC files for playing on more high-end equipment, they donāt natively sync with my music service of choice, the Music app. Instead, I need to convert them to something more compatible with the Apple ecosystem.
After a little bit of Googling, I came across the method I knew I would have to useā¦trusty FFMPEG. My goal was to transcode the FLAC files into both AAC and ALAC. ALAC being Appleās lossless file format which they have used for decades. The added benefit of using ALAC is I can actually sync them to my iPods and play them on my Mac. Unfortunately, these ALAC files are not synced with my iPhone/iPad since the iTunes/Apple Music Match service only seems to sync AAC files.
Either way though, I want to be able to convert these FLAC files to something I can use on iPods at the very least. To do this, all I needed was a single Terminal command.
# For ALAC Conversionfor i in *.flac; do ffmpeg -i "$i" -acodec alac -vcodec copy "${i%.*}.m4a"; done;
# For AAC Conversionfor i in *.flac; do ffmpeg -i "$i" -acodec aac -b:a 256k -vcodec copy "${i%.*}.m4a"; done;
With that one line, I was able to transcode both ALAC and AAC for use wherever I want!
This was a fun little project and a reminder of how much I love owning and managing my own music library. The idea of owning my own music library has been something Iāve been thinking about a lot lately, and is something Iāll probably cover more on this site in the near future.