Apple Asked For Feedback

Apple asked for feedback from developers today in an email survey. I try to keep this blog positive and restrict most of my snark to Twitter, but I figured I might as well post it here, too.

If you can’t see that image for some reason, here’s what I wrote:

I’m a long-time, independent Mac developer. I’ve traditionally sold directly to customers and, now, with the Mac App Store, still push customers to my website first. The value Apple provides with the store is simply not even near worth the 30% cut. When selling directly to customers, after credit card fees, etc. I pay around 8%. I’d be happy to give Apple (maybe) 15% for the (limited) exposure the App Store offers. But not more than that.

Also, in general, the Mac App Store is a kafkaesque hellscape full of scam artists that erode customers’ trust in the overall system and shitty apps that are nowhere near the level of quality that long-time Mac users expect from 3rd party software.

Add to that the arbitrariness of App Review, which seems more interested in penalizing legitimate developers for the most insignificant of reasons, while big name companies get away with flaunting the rules, and fly-by-night developers actively ship malicious, misleading, predatory, and outright-broken software. I have no idea what the point of App Review is if they’re not going to enforce the rules consistently and actually vet the apps in the store.

I absolutely love developing for Apple’s platforms, but if you weren’t the 800-pound gorilla in the industry, there’s absolutely no way in hell I would put up with the shit you throw at honest, hard-working developers trying to better your platform and earn a living.

Missing Rdio and Making the Best of Apple Music with Shortcuts

Man, I miss Rdio. I mean, I really miss it. I loved that service.

When I was a teenager, I’d spend hours on the weekend and get lost in new and used music stores (CD’s) just digging through stacks of beautiful album artwork and unfamiliar band names. I’d talk with other customers and ask the clerk to let me sample a few tracks when something caught my eye. The joy was in the discovery as much as the actual purchase and listening that came later.

Rdio was the first streaming music service I used. It was like walking into an infinitely large music store. And it was all free! (Well, $10/month.) Their UI was wonderful. Websites today are walled gardens designed to keep you on the property for as long as possible. But Rdio, like the web of the late 90’s and early 2000’s, was overflowing with links leading through a maze designed to get lost in. Each album page – in addition to the artwork and song listing – had detailed info about the band, their other music, related artists, genres, etc. (The only similar mainstream experience I can think of today is when you fall down a Wikipedia rabbit hole.) And the majority of the pages had an in-depth critic’s take on the music in addition to listener submitted reviews that were generally well written and free of the awfulness we see in YouTube’s and Facebook’s comments section today.

What I’m trying to say is Rdio came very close to recreating the record store experience in digital form. Apple tried and failed with Ping and has since made additional social attempts inside Apple Music. I can’t really speak about what Spotify is like now. I was a subscriber for a few months after Rdio died, but it never really stuck for me – and Apple Music’s tight integration with Mac and iOS have kept me tied to their service instead.

So using Apple Music the last few years has been fine I guess. I can play what’s in my own collection (usually), and search their streaming library, but I find it extremely difficult to organically discover new music. It’s sort-of possible on the desktop with iTunes, but the iOS app (and I took a look just now to double-check) only shows “other albums by this artist.” The “For You” tab makes an attempt by showing other genres similar to what you already listen to, but I find their algorithmic recommendations lacking. And, again, if you do tap on one of the suggested albums, that’s about as far as you can go. You can’t further explore beyond that artist. And don’t even get me started on the “Browse” section or whatever the hell Beats 1 is doing. That’s a dumpster fire of shitty editorialized content that I can only assume is mass promoted by the record labels for the masses. (Yes, I might just be snobby and elitist about my music, but I really do have a lot of pop music in my collection that I enjoy. I just find most of Apple’s selections…shallow.)

Anyway, like I said, it’s fine. Not anything special, but fine.

But over the last few months I’ve made a conscious effort to start listening to more music again. I used to always have something playing in my bedroom, dorm, various apartments, and later houses. But I think once my kids were born, their needs and noise took over and music fell to the wayside. But now I’m using the wonderful Anesidora app to keep Pandora shuffling through songs in my office where I sit all day. I need to stay focused on my work, and having to think about and choose something to play takes me out of the zone. I like that I can just tell Pandora to play something it thinks I’ll enjoy and it will take care of the rest. It’s mindless and exactly what I want.

But Pandora typically only plays music I’ve already listened to and given a thumbs-up. It rarely surfaces new music. That’s what I still have to try and use Apple Music for. And I typically try and do that when I’m in the car.

Using your phone for anything while driving is stupid. So if I want to queue up some music, I have to do it when I’m still in the driveway or if I think I have time and it’s safe while stopped at a traffic light. But I need to be fast about it. And that’s where Marvis, Launch Center Pro, and Apple’s Shortcuts app come into play.

I discovered Marvis last month from Ryan Christoffel at MacStories. It’s a highly-customizable client for Apple Music. All of your songs, playlists, and the entire Apple Music catalog in a gorgeous, functional UI that you can design around your own needs. Here’s what my setup looks like:

Marvis Pro Screenshot

I’ve got the Home screen organized so that I can tap and play my most listened to playlists and albums without scrolling or having to dig through Music.app’s tabs and navigation stacks.

Specifically, at the top I can start any music I’ve recently added to my library. I’ll often go on a music adding binge and add a ton of stuff at once then finally listen to it days or a week or so later. This section collects all those albums in one spot so I don’t forget to try something new that looked interesting to me.

Beneath that are three of Apple Music’s main auto-generate playlists. Again, I have one-tap access to my Favorites when I want to hear something familiar and New Music that Apple thinks I might like (which is often hit or miss).

Further down the screen is “New For You”, which is a stream of new releases from artists already in your library. I’ve wanted this feature in iTunes for years, and I’m thrilled Apple Music delivered.

Of note: I’ve used the display settings in Marvis to pack as much music into as small a space as possible. This puts as many tap targets within “thumb reach” as possible and minimizes any scrolling I need to do. Very important when that red light could turn green at any moment.

Next up, if I want even faster access to my most common playlists, I’ve created three shortcuts in Shortcuts.app to play Apple’s “New Music for You”, “Your Favorites”, and their top Alternative songs and added them to Launch Center Pro’s excellent Today widget. From my phone’s home screen, I can swipe left and tap to start playing.

Launch Center Pro Screenshot

And going a bit further with Shortcuts, I’ve added two as icons on my home screen:

  • “Play Album”, which starts playing the full album that the current song belongs to. This is super useful when I’m listening to a suggested music playlist and it plays a new artist I’d like to hear more of.
  • And “Bookmark Song”. This adds the current song to a playlist I made called “Bookmarks”. I treat it like an Instapaper for music that I can come back to later when I have time to explore.

Shortcuts Screenshot

So, that’s my music setup at the moment. I achingly miss Rdio but am trying to make the best of Apple Music by making it as easy as possible to listen to the music I love and explore the new songs it thinks I’ll enjoy.

Starting and Finishing More Long-Form Writing in Drafts.app

I’m writing this blog post in Drafts.app on my Mac. But before I publish it, I’ll also probably do some light editing of it on my iPad before bed. And I’ve been capturing ideas, short thoughts, and building a basic outline on my phone over the past few days as things occur to me or I find myself with a bit of downtime.

I’ve been a heavy Drafts.app user on iOS for years. But this workflow is relatively new for me and came about with the release of its Mac counterpart two months ago.

Previously, for going on I don’t know how many years, all of my long-form writing, which typically means blog posts, has lived exclusively in MarsEdit. (Really long-form stuff like magazine articles and a few aborted attempts at writing a book are done in Scrivener.) The app syncs perfectly with WordPress and allows me to write in Markdown and preview my words in a live, pixel-perfect preview of my blog’s template.

But MarsEdit doesn’t sync between my desktop and laptop. And there’s no iOS counterpart for writing on-the-go. So that forced me to write the whole post from first draft to published version on the same machine. It also meant the outlines for my longer posts and short scribblings lived in other apps – sometimes OmniOutliner, other times Apple Notes, and occasionally OmniFocus and Drafts.app. I didn’t have a single unified workspace for all my thoughts.

Drafts for Mac has changed that. With seamless sync, I can begin writing anywhere I want, come to a stopping point, and pick back up later exactly where I left off on any device.

Dr. Drang wrote last week

Drafts has become the place “where text is.”

I couldn’t agree more. Looking through my Drafts Archive section, it’s now overflowing not just with short beginnings and snippets that got quickly shuttled off to other apps, but real writing. It’s my one place for everything in-progress as well as a history of final outcomes.

As for the specifics of my new blogging workflow, all of my posts are assigned a tag of blog. (It’s currently the only tag I use for anything.) Then, I have two custom Workspaces.

One called “Blog Posts” which only shows drafts tagged blog, defaults to Markdown syntax highlighting, and automatically switches to my Markdown helper keyboard on iOS.

And then there’s another workspace titled “Everything”. It doesn’t actually show everything. Rather, it’s everything that’s not tagged with blog. I’ve currently got about twenty unfinished posts in some form or another in my Inbox. I don’t want those clogging up and crowding all my other notes which tend to be more “action oriented”.

These two workspaces let me quickly switch between notes that I might need to do something with or reference and those that stick around longer and require a more focused, creative mood to tackle.

And as an added bonus, the Mac app can now show a live preview of your post rendered in your website’s theme, too – just like MarsEdit. (The iOS app has been able to do this for a while as well, but it doesn’t let you see the preview and edit text at the same time.)

Anyway, that’s all a long way of saying that I couldn’t be happier with this new setup. Drafts truly is where all of my text starts.

Losing Faith

I posted this to Twitter earlier today, but thought I’d add it here for posterity…

Last week I mentioned that I had been yelling about Apple a lot on here lately and was going to try and be more positive. But allow me one more thought before I shut up…

We went on vacation this past week. Before we left I updated my phone to iOS 12.3 – my wife remained on the previous version. (This is where you all collectively go “uh-oh”.)

Spent five days at a state park shooting tons of video of the kids swimming, hiking, fishing, playing with their grandparents, etc. Irreplaceable stuff.

Get home, back on WiFi, start uploading everything to iCloud and Google Photos. After an hour or two everything’s synced.

Problem: All videos, of any length, stutter, stall, and skip frames in both Photos.app (macOS) and Google Photos on every Mac I try. Completely unwatchable. Time to debug things.

I export the raw files out of Photos.app to Finder and try opening with QuickTime. Same problem. Next, I use Photos.app to import directly from my phone via USB. Still broken.

But they play fine on iOS, so I never noticed any problems while filming last week.

Investigate further. It’s only MY videos that are broken. Videos my wife took are fine. Remember: I’m on 12.3. She’s on whatever 12.2 release was before.

All those videos of my kids? Gone.

This is a core competency of iOS that should never, ever fucking break for any reason. Apple markets iPhone’s camera as a top selling point – if not THE selling point.

Lucky for me, I’m tech savvy enough to know about Image Capture.app buried inside macOS’s Utilities folder. So I give it one last try using that to transfer the corrupted videos manually off my phone and into Photos.app and Google Photos.

It works. My memories are safe.

But would a normal Apple customer have thought to try that? Would an Apple Genius have figured it out? (Assuming they could even get an appointment.)

No. They would have simply lost everything.

This is fucking inexcusable on Apple’s part. DO NOT fuck with me when it comes to my photo library.

Apple needs to get off their goddamned pedestal, stop hosting self-congratulatory Lady Gaga concerts, and fix their fucking QA process, years-old bugs, and keyboards.

On the bright side, while I may never be able to trust Apple again with my photos (or type vowels on their laptops), at least they’re about to roll out a new credit card and custom-branded television content.

Courage.

Why Many of my Apps Failed And What Comes Next

I’ve started building something new.

I’m about four weeks in and already finding it incredibly useful in my day-to-day.

I’ve built many different apps over the years, thrown them against the wall, and excitedly watched which ones developed a following and which ones failed miserably.

Most of my apps have fallen into two categories. There are the ones that solve a personal need I face, that I can inform and direct with my own experiences. And there are those where I saw a market opportunity or just thought they might be fun to build.

Almost all of the ones in that second category have failed. Incoming!, Nottingham, Highwire. They each had their share of a few passionate and engaged users, but mostly were ignored. (The jury is still out on Triage.)

But that first category of apps? Those have flourished.

I was a web developer for ten years before I started building Mac apps. I know the industry well. And working at an agency meant I was juggling many different websites at once. I needed a faster/easier way to spin up local development environments, and that led to me creating VirtualHostX. Which, in turn, led to Hostbuddy and Hobo years later.

My core set of apps, as I think of them, found a wonderful niche among solo web designers and developers and the small companies they work for. And the apps have succeeded beyond my wildest dreams. From 2012 to 2014 they were my full time and only job.

But since their heyday in 2014, sales have steadily declined. A big part of that, I think, is because the world has moved on from the LAMP-based standards of 2004 – 2012. Nginx, NodeJS, etc. have led to a sea change. If it weren’t for WordPress’s continued dominance, I’m not sure if I’d have any more sales at all.

So, I’ve seen the writing on the wall for a few years now, and have been on the lookout for ways to branch out and diversify my app portfolio.

I’ve done some freelance jobs here and there, and tried a few new things on my own, but nothing has taken off. And as I talked about earlier, I think a lot of that is due to none of those new ventures being true passion projects that I could bring my own experiences as a user with specific needs.

But four weeks ago I finally became fed-up with the awfulness of Mint.com. I know they’re able to provide a free service because they plaster the site with advertisements and sell my data, and I’d be ok with that if they weren’t so intrusive. But they’re taking over nearly the entire browser window now. Add to that the cumbersome Web 2.0 UI and lack of any real reporting capabilities, and I’d had enough.

What I really want is a fast, powerful, native Mac app that automatically imports my financial data and gives me the ability to slice, dice, filter, organize, and export my data in every possible way. The flexibility and power of an Excel sheet with the learning curve of iOS and the familiar paradigms of a real Mac app. Something that keeps me in control of my data, respects my privacy, and syncs to all my devices.

So I built it.

Preview1

Most of it. It’s not done yet, but all the major pieces are in place, and I’m using it to track my family’s budget every day.

I’ve taken a heavy dose of inspiration from one of my favorites apps – OmniFocus – both from a UI perspective (a clean, modern, attractive Mac interface) and from the power they afford users over their data by way of custom perspectives.

My app is smart. It auto-categorizes your transactions. You can just let the app do its thing and everything will end up in the (mostly) appropriate place. Or you can categorize each transaction manually. Or you can setup smart rules to do it for you automatically. Whatever fits your workflow.

Each transaction can belong to a single category. But categories can be nested. With one click you can see all the dining out you did last month. Or just the fast food orders. Or just what you spent at McDonalds.

And then there are tags. Assign multiple tags to a transaction. Do it manually, or create a smart rule to assign them automatically. Then use the app’s powerful search feature to find any combination of AND / OR.

Take search further by combining tags with categories and date based filtering. Find every Uber ride tagged #business during the last quarter and export the results to a CSV you can send to your boss to get reimbursed. Snapped a picture of the receipt with your iPhone? Yep, you can attach files, too.

And once you’ve got that perfect search query and set of filters in place, save it as a new Report that you can recall at any time. Just like an OmniFocus perspective.

And, just for fun, why not view all of your transactions plotted on a map?

Preview2

I’ve got all of this working (albeit without the necessary UI/UX polish) and it’s totally opened my eyes to some aspects of our financial situation that I’d overlooked. The last major piece is adding a budgeting component. I know the system I want to adhere to, but I’m still working through how it will fit in the interface.

Of course, I’m leaving out the iOS counterpart. But I’m saving that for later. The model layer is still a bit too much in flux. But I’ve written all the business logic to be platform agnostic. So the plan is to reimplement the appropriate features in UIKit (not everything the Mac app can do would make sense or be needed on a mobile device) and reuse as much of the existing codebase as possible.

But don’t forget syncing. As I said in my requirements, I want this app to be privacy-focused and have the user be in charge of their own data. So, no financial data will ever touch my server. Unless they enable syncing, no data will ever leave their device. But if they do want to sync, that’s all privately handled by CloudKit so I, the developer, can’t see their info even if I wanted to.

So, that’s it. That’s what I’ve built and am working towards completing. I have no idea when it will be ready. CloudKit could easily throw a big wrench into everything. And I’ve also got major updates to VirtualHostX and Hostbuddy underway and due out this Fall.

But I’m excited. It’s an app I’m passionate about and I have a clear direction and feature set in mind. It caters to a broader audience than my developer-focused products and could potentially save my tiny company if they continue to trend downwards.

iTunes Match Failed Me

Remember iTunes Match? It's great. But Apple stopped promoting it (probably rightly so) a couple years ago when they realized they could make more money charging $10/month for Apple Music than Match's $25/year.

Anyway, I loved it and still do. It uploads all of your digital music to Apple's cloud and makes it streamable on all of your devices. And I mean all of it – especially your ripped mp3s, live albums, or anything else not in the iTunes Store. And if they can "match" any of those unofficial mp3s to a song from the store, they'll "upgrade" you to the higher-quality AAC file for free. I had thousands of low quality mp3s ripped in the early 2000's and late 90's. Now they're metadata tagged appropriately, with artwork, and sound better.

When I first joined iTunes Match (seven?) years ago, I uploaded all my music, made a backup of my local library, deleted everything, and just streamed from then on to save hard drive space.

As I acquired new music, it went to Apple's cloud, but I never got around to backing it up offline.

As I've been writing about this month, I'm re-evaluating my backups strategy. This week I got around to looking at my music collection and decided it was time to retire that old external drive and put everything in B2 – around 300GB.

Knowing that drive was out of date, I figured I'd just download a fresh, complete copy from Apple.

I selected everything in iTunes, and clicked the download button. And waited.

The next morning I found my nearly 25,000 tracks stored locally – and a ton of errors.

Out of the 25,000, nearly 1,500 had failed to download and reported all sorts of various network errors.

I made a quick smart playlist showing all songs in the cloud but not available locally. This made it easy to isolate the problem items.

I tried downloading all the missing songs, but each one failed again. So I tried downloading a few individually with no luck. You can see where this is going.

After much testing and troubleshooting these 1,500 songs (all from various albums, some from ripped CD's, some purchased from the iTunes Store) are seemingly gone.

It's not the end of the world. If I really want some of them, I'm sure I could just re-purchase or stream from Apple Music. But others, especially some amazing live albums I collected in college are gone.

So I uploaded what I had to B2. And then made a csv export of the playlist of missing songs for good measure.

And while I love and take advantage of the cloud's convenience, this is why I don't trust my data to be in only one place. It's my fault for not backing up this part of my data if it was important to me. It's the first real data loss I've experienced in years – maybe since 2010. Maybe it's just a bug that Apple will eventually fix.

But I've learned my lesson.