Sim Genie

If you had told me three months ago that the Mac Catalyst version of Slopes was not going to be the first Mac app I'd launch, I would not have believed you. But around  beginning of May I really started to get an itch to work on a second app. More so than normal.

Not sure if it was the fact ski resorts closed a month early because of COVID, and there was an unexpected snowboard-shaped hole in my life. Or if it was me winding down after pushing hard with Slopes over the winter. Or, if like many other people, being stuck inside due to 🦠 was causing me to need something I could really lose myself in.

Whatever the reason, here we are. Say hi to Sim Genie.

Sim Genie - Menu bar app for xcode

Sim Genie is a Mac app that is built for those of us that spend our days in Xcode. Apple has been adding a lot of hidden capabilities to the Xcode simulator, but they haven't been making those capabilities particularly easy-to-use or discoverable.

So I got to thinking: the simulator can do a lot of things now a days, and I'd save a lot of time and avoid many annoyances if those things were more easily exposed. What would an app look like that really took a serious go at making a proper product out of the simulator? One that didn't just focus on the raw capabilities of the simulator, but the workflows that could be built around it?

Sim Genie is that answer.

You should head on over to the Sim Genie web site if you want to learn more about the app itself. I wanna talk about the behind-the-scenes stuff for the rest of this post.

Green Fields

I had a half-dozen or so app ideas, from cool smaller apps I'd use daily to "full" products on the scale of Slopes. But I am very critical of my own ideas, and hesitate to actually start working on something unless I think it can be a success (see many episodes of Independence where Jelly keeps telling me I need to branch out). I shoot down my own ideas way too early in the explorative process. Some of the reasons I'd shoot things down were 100% legit: by the time I'd finish app Y, it would be the wrong time of the year to launch, for example. But there was also a lot of self-imposed pressure to live up to something.

(Fun fact: work on Slopes wasn't started for 6 months after the idea, because I was unsure that I could actually make something of it. Self-doubt is a killer.)

To push myself over the hump and actually start working on something, I decided to pick something smaller in scope, something I wouldn't be putting pressure on myself to reproduce the success of Slopes. Something I in fact couldn't achieve Slopes-levels with.

That very quickly narrowed the list down to this product. Sim Genie was something I'd been wanting to take a crack at for years; it was a space I thought I had some unique and good ideas in. Much like Slopes, it was going to be an app I'd use myself a lot. And, for-freaking-once, my online audience would actually largely line up with what I was making (let me tell you how many members of the tech press don't ski 😤).

Holding Pattern

Funny enough, though, I almost did take a crack at this app two years ago.

As I was kicking the rough idea around with friends back then, I quickly learned that my co-host Jelly had started work on a Mac app for managing and import/exporting the sandboxes for the Xcode simulator. And while his work on it had paused, he assured me that he'd get around to shipping it and it would hopefully contain many of the things I wanted to do in that space, too.

I wasn't about to start work on an app with that kinda overlap with a friend's app, so I eagerly awaited the launch of his app "Bindle."

Fast forward to present day. We're chatting about life and things one evening over FaceTime, and I mention my I-need-a-new-app itch and how it was really bugging me. Jelly reminds me of his app, the one I had expressed interest in doing something similar to, and informs me that he had been unable to commit any code to it since we last spoke those two years ago. Life happens. But, after this long, he was willing to concede that just maybe he might not be shipping it anytime soon.

And so he was happy to give me his blessing, let me grab whatever I wanted out of his codebase, and finally build the product I had been wanting to do.

So, hat-tip to you good sir. Thank you for your early work, and I hope I'm doing your vision proud.

The Finish Line

Now of course here we are, two months later, in classic Curtis fashion with a polished marketing site and featured-packed product in hand for what was supposed to be a simple side project to scratch an itch. I coulda launched a month ago (and multiple friends on the betas have been yelling at me to for many weeks) but that's apparently not how I roll, even for side projects.

The extra time afforded me a lot of polish. Simple, but powerful things like the ability to have Sim Genie automatically apply a status bar preset before taking a screenshot or video with Sim Genie. And things you've gotta roll yourself outside of the Mac App Store like crash reporting and update handling.

If I had launched earlier I probably could have avoided one last-minute snag though: having to redesign the app icon, and the preference pane icons, a week before launch (I loved what I did for those icons, too 😭). Sim Genie is a menu bar app so you don't see the icons that often, but I was still particularly fond of what I made pre-Big Sur. I'm sure the Catalina icon will look antiquated in a year once we all get used to the new design language of Big Sur icons, but I'm still adjusting to the new look.

Sim Genie for Catalina vs Big Sur

But on the plus side, I think I get to claim "FIRST!!!!111!" for the prize of app-with-big-sur-icon?

(I've made the original icon available if you'd like to override it while you're still on Catalina. I can't not ship that original icon, in some form at least.)

Lets Talk Shop

It wouldn't be my blog without talking about the business side of things here. Astute readers will notice that Sim Genie is doing many things I'd normally caution against in this day and age:

It is a developer tool, which means it is targeting niche which historically has a strong inverse relationship between their vocal demand of features vs their willingness to spend money.

I don't have much to say about this, except I'm an idiot.

It is software prime for sherlocking.

First off, I'd be OK if Apple sherlocked me! I would love to see Xcode support a lot of these features without the need for additional tools.

That said, I think I'm safe placing good money (or, in this case, dev-hours) on the fact they won't anytime soon. Apple is building out its simctl command-line utility quite a bit, but they don't really seem interested in the simulator itself. I can easily see an exec there saying "well, they can do it today with the tools we gave them, right?".

They have bigger fish to fry, and I feel like this would have been low-hanging fruit for them that they'd have addressed in Xcode 12.

I'm charging a one-time fee for the app, there is no recurring revenue here unless I go the 2.0 upgrade-pricing route.

I'm mixed feelings here, to be honest.

This is the kind of tool a developer will use daily, and could save a ton of time during something like making marketing screenshots (assuming they still do them manually ... like many of us do). There is real value here and it does address some real pain-points, which means I should be able to charge "real money."

But I'm also well aware of just how anti-subscription developers and the dev-tool market can be. Every market is going to have people that complain about subscriptions, I run into them with Slopes, but the developer market in particular can be savage. I think Sim Genie is a prime example of why I'm always saying to experiment with app pricing and take into account your target market when playing with pricing.

You can't just add subscriptions to an app and expect success. In fact, I think if I added subscriptions I'd have a net-negative effect on Sim Genie.

What, no Mac App Store version?

Sim Genie has to use the Xcode command line tools, and some other terminal goodies, to work. And that kinda stuff ain't exactly sandbox-friendly.

That said, I think I see some ways in which I could get a slightly limited version of Sim Genie into the MAS. I'm going to see how things go with the direct-download version before investing the work into that, though.

In the mean time lemme tell you - it is nice to bypass my normal checklist of marketing assets for the App Store. But, interestingly, it made me appreciate the things Apple provides me when I distribute Slopes via their App Store:

  • I had to integrate my own crash reporter, set up a server endpoint to gather them, which emails me the logs. I could have used Crashlytics, but I didn't want third-party tracking code in this app. And without the App Store I don't even get basic crash reporting via the Xcode organizer like I do for Slopes. Would have been nice to be able to rely on Apple to get some crash reports from users.
  • I had to set up my own updater, both client-side and server-side. I'm using Sparkle, the go-to "there is a new version of X available, do you want to download it now?" library. But that means I've gotta maintain an XML feed of releases and the releases themselves on my server, make sure I have a CDN for them, and all that fun stuff. Wrote a nice little deploy script that rsync's it all up, so it isn't too much work, but woulda been nice not to waste that day+ on it.
  • Had to integrate a third party in-app purchase library, Paddle. Of course I would have had to write IAP code if I was in the MAS, but I'm quite familiar with Store Kit, and that'd be one less third party with info on my customers.
  • I haven't done much research yet, it is a post-launch problem, but I'm worried what kind of tax reporting situation I am in, both domestically and internationally. Apple handles a lot of that for us, and since it is so transparent to us we never realize how much work they're actually saving us.

Sim Genie is my first Mac app; all in all it has been a fun process. I would definitely encourage any iOS developer to take a look at making one – there are some new concepts that'll trip you up, but there's also some cool stuff in AppKit land that never made its way to iOS.

And man, I had forgotten how much of a rush it is to build and release a new product.

If you have a moment, Sim Genie is on Product Hunt today for the launch.