5 Years of App-Making

I realized recently that it’s been nearly five and a half years since I released my first app onto the App Store. Like, holy smokes, where did that time go?

I’ve been feeling somewhat reflective these last few weeks (and I haven’t even watched Soul yet!) as I’ve taken time off from programming to focus on getting ready for Christmas, which is something I genuinely love doing. I ran across this tweet early in my preparations:

…and honestly, that’s exactly what I’m about at Christmastime: being that mom that makes things magical. The day after Christmas, my kids asked how many days were left until next Christmas, so I think I succeeded?

Anyway, back to five and a half years. Although I released my first app on June 10, 2015, I didn’t actually start making any money until the following June when I released LiveRotate, my app for rotating Live Photos (remember when editing Live Photos wasn’t possible without turning them into stills? lol). From June 2016 to today, I’ve made approximately $12,600 in profit from the App Store.

It’s simultaneously a lot and a little. It’s a lot for most developers. It’s a little for the developers I follow on Twitter. Early on, someone asked me how I would define success for myself as an indie developer. I remember stressing that my apps were just side projects (they are) and that I’d be happy if my revenue could cover the cost of my personal device upgrades (it has). At the time, I think I forgot to say something about how I wanted to make things that improved people’s lives, or just made them smile. In that way, I’ve also succeeded, and hearing from happy customers has been incredibly rewarding.

Most of the proceeds from the past four years have come from Snapthread. I owe its success to the very nice media coverage it got, and I owe that media coverage to my following on Twitter, and I owe that following to Brent Simmons, who cared enough to compile a list of women in the iOS community (thanks again, Brent!). Revenue from Snapthread has diminished considerably in the past year or so, as has my enthusiasm for struggling with AVFoundation. Scribblet and YarnBuddy were just what I needed this year, both in terms of challenge and inspiration.

I set a goal a few months ago of reaching 20 annual subscribers to YarnBuddy Pro by the end of the year. I’m happy to report that as of today, my subscriber count stands at 52 subscribers (plus an additional 16 that redeemed a promo code for the first year).

And here we are, at the doorstep of 2021. Convention says that it’s time to set new goals, but I’m just not feeling it. Time stood still in March, and yet somehow things began to happen at an increasingly frenzied pace. There’s a really excellent episode of Mr. Robot in the final season that basically happens in real time, with no spoken dialogue save from one line at the beginning and one at the end. It is ridiculously intense; I felt like I was holding my breath the entire time. This year kinda felt like that too. I hope 2021 feels like a nice, long exhale.

Of course, learning goals are another story. I’d really like to deepen my design skills this coming year as well as my understanding of SwiftUI and Combine. It’s amazing to realize what I’ve learned since starting my development journey, starting with Objective-C in early 2014, then quickly pivoting to Swift 1.0, playing with SpriteKit, AVFoundation, PhotoKit and PencilKit, and now writing apps using SwiftUI. It’s been a wild ride, and I’m so thankful for all of you that have helped me along the way (including many who I’ve never interacted with, but whose blog posts and Stack Overflow answers have literally kept me going).

Do you have indie business goals for 2021? How about learning goals? I’d love to hear them! I wish you all happiness and good health this coming year. 💚

Your Move, iPad

Hear that? It’s the sound of Mac fans. No, not your shiny new M1 Mac’s fans—chances are, you’ll never hear those—but rather, the sound of excitement rippling through the Mac community. This is something big. Really big. Now, I’m only 33, but someday when I go full fuddy-duddy I will speak of this: the great Intel/Apple Silicon transition. The beginning of a new era at Apple.

All that sounds dramatic, of course, but it’s interesting to trace all of the different paths that led us to this point. The A-Series chips, the introduction of Metal, rapid machine learning gains, the gradually degrading repairability scores as components became more integrated, the Secure Enclave, a new super fast emulation layer, new unified memory architecture, and 5nm process… years and years of work have now come to fruition with the first Apple Silicon chips for Mac. And our minds are blown.

Suddenly, we’re handed a thin, entry-level fanless laptop that performs better than almost every other Mac computer out there, and a low-end MacBook Pro and Mac Mini that make current Mac Pro owners sweat and clutch their wheels. So many questions abound. What new hardware designs will these gains make possible? What on earth does Apple have in store for its high-end Macs? Will anyone else even be able to compete? It’s an exciting time to be a Mac lover, but, surprise: this post isn’t really about the Mac. It’s about the iPad.

There’s no question that Apple has struggled to craft a cohesive, compelling narrative for the iPad. For a long time, there seemed to be a distinct lack of product vision. Everyone likes to speculate over what role Steve Jobs ultimately intended the iPad to have in people’s lives, but not only is that pointless, it’s also irrelevant. We don’t need Steve to tell us what the iPad is good for. We know what it’s good for, and we can easily imagine what it could be good for, if only Apple would set it free.

Just as Apple left us with great expectations for its Pro Mac line-up, the latest iPad Air also raises the bar in new and interesting ways. The Air served as sort of an appetizer for the new M1 chips, while also receiving a generous trickle-down of features from the iPad Pro, including USB-C and support for the latest keyboard and Pencil accessories. There have been rumors of new mini-LED displays for the next-gen iPad Pros, but it’s going to take a lot more than new display tech to set the Pros apart.

Francisco Tolmasky (@tolmasky) recently tweeted:

“A sad but inescapable conclusion from the impressive launch of the M1 is just how much Apple squandered the potential of the iPad. The iPad has had amazing performance for awhile, so why is the M1 a game changer? Because it’s finally in a machine we can actually do things on.”

Francisco is right: Power and performance aren’t the bottleneck for iPad, and haven’t been for some time. So if raw power isn’t enough, and new display tech isn’t enough, where does the iPad go from here? Will it be abandoned once more, lagging behind the Mac in terms of innovation, or will Apple continue to debut its latest tech in this form factor? Is it headed toward functional parity with the Mac or will it always be hamstrung by Apple’s strict App Store policies and seemingly inconsistent investment in iPadOS?

It’s clear that Apple wants the iPad Pro to be a device that a wide variety of professionals can use to get work done. And since so many people use web apps for their work, the introduction of “desktop” Safari for iPad was an important step toward that goal. The Magic Keyboard and trackpad was another step.

Here are ten more steps I believe Apple could and should take to help nudge the iPad into this exciting next era of computing.

  1. Give the iPad Pro another port. Two USB 4.0 ports would be lovely.
  2. Adopt a landscape-first mindset. Rotate the Apple logo on the back and move the iPad’s front-facing camera on the side beneath the Apple Pencil charger to better reflect how most people actually use their iPad Pros.
  3. Introduce Gatekeeper and app notarization for iOS. The process of side-loading apps should not be as simple as downloading them from the App Store. Bury it in Settings, make it slightly convoluted, whatever: just have an officially-sanctioned way of doing it.
  4. Ruthlessly purge the App Store Guidelines of anything that prevents the iPad from serving as a development machine. Every kind of development from web to games should be possible on an iPad. And speaking of games—emulators should be allowed, too.
  5. Release a suite of professional first-party apps at premium prices. If someone can edit 4K videos in Final Cut on their M1 MacBook Air, they should be able to edit 4K videos in Final Cut on their iPad Pro. I refuse to believe that these pro apps can’t be re-imagined and optimized for a touch experience. If Apple leads the way in developing premium software for iPad, others will follow.
  6. Make it possible to write, release, and install plug-ins (if appropriate) for the aforementioned first party apps.
  7. Bring App Library to the iPad and allow widgets to be positioned anywhere on the Home Screen. This isn’t groundbreaking, it just annoys the heck out of me.
  8. Release a new keyboard + trackpad case accessory that allows the iPad to be used in tablet mode without removing it from the case.
  9. Introduce Time Machine backups for iPadOS.
  10. 5G, ofc.

In the end, fostering a vibrant community of iPad app developers can only stand to benefit the Mac (and vice-versa).

It’s simple: people love their iPads. They love them so much they wish they could do even more with them. The new M1 Macs should give iPad fans reason to be excited; now that we’ve seen hints of what future Macs can be, it’s time for the iPad to reassert itself—to remind us once again who it’s for, and what makes it special.

In other words: Your move, iPad.

My Apple Silicon Dilemma

About 3 years ago I wrote a post about the very real possibility that my current 2016 13-inch MacBook Pro with Touch Bar could in fact be my last Mac. I paid ~$2600 for it at the time, and two years later purchased an 12.9″ iPad Pro that I absolutely fell in love with. My reasoning then was that this MacBook would likely work just fine through at least 2021, and by that time I could do all of my work on an iPad Pro.

Now, it doesn’t look like Xcode for iPad is coming anytime soon. And while my MacBook Pro does still work fine, there’s a “Service Recommended” warning for its battery, and its infamous butterfly keyboard has lasted so long without breaking that it actually makes me a bit nervous.

As I watched Apple’s “One More Thing” event on Tuesday, I found myself really drawn to the new M1 MacBook Air. Light, portable, quiet, fast. No new design, no fun new colors, but plenty of beefy benchmarks. There’s a part of me that feels like if I want to be a member of the developer community, I should always be interested in the most powerful “pro” machine I can get. With rumors of new 14″ and 16″ MacBook Pros with better displays and even more impressive capabilities, I should just wait, right?

And yet. As I reread my post about gravitating toward iPad, I realized that I really do use my MacBook Pro almost exclusively for running Xcode (and occasionally for messing with the CSS in my WordPress template). When it comes to blogging, or photo editing, or designing icons and graphics in Affinity Designer: I prefer my iPad Pro.

If I trade in my current MacBook Pro, I could get a new MacBook Air with 16GB of RAM and a 1TB hard drive for around $1150. If we subtract that from the price I paid for my computer 4 years ago, that leaves $1449 I could spend on an arguably more compelling new iPad Pro someday AND I’d also have a faster, lighter laptop with better battery life than the one I have now (albeit with fewer ports).

Additionally, when I think of all of the things “missing” from the new Apple Silicon MacBooks: things like mini-LED displays, FaceID, touch screens, ProMotion, 5G, etc… I mean, that’s basically describing a next-gen iPad Pro, just without macOS.

The last piece of the puzzle is the Touch Bar: the new MacBook Air doesn’t have one. I don’t hate the Touch Bar like many folks do, but I don’t use it too terribly much. I like having emoji handy, but the new Air has a function button for opening up the emoji picker, so I don’t really think I’d miss it.

So then. Since I already tend to be an enthusiastic early adopter (Swift and SwiftUI 1.0, baby!), I think I’ve talked myself into ordering a new MacBook Air, and perhaps upgrading my iPad Pro at some point (maybe next year, maybe 2022). I’m going to wait a bit longer for some reviews to come out before I pull the trigger, but writing this post helped me think through my current situation and decide what I want my future tech setup to be. How about you? Are you going to order a new MacBook or Mac mini, or wait for the higher-end Macs?

With over a day left until the Apple event, I find myself in an unfamiliar bind: I’m out of predictions podcast episodes to listen to. 🙈 #mbnov

The only thing puzzling me at the moment is why I am still awake, seeing as we’re not likely to hear any significant updates until tomorrow night, maybe even Monday. Must just be nervous energy. #mbnov

Mac Event Predictions

I comfort-ordered a white HomePod mini this morning. When I’m feeling stressed, I tend to buy things and eat a lot of cheese, and hoo-boy that 18-count mega box of Kraft mac and cheese from Costco is emptying at an alarming rate. Lucky for me and my cheese stash, another opportunity to therapeutically buy stuff is right around the corner, with Apple’s “One More Thing” event just 3 days and 20 hours away, according to my Scriptable widget.

I will admit to not knowing much about computer processors, and what features/outcomes certain types of processors can enable. That’s why I’m the perfect person to write a hilariously specific prediction post for next week’s event. For this, I’m going to pretend I have an inside source (I don’t) and make some confident statements about what to expect. Why am I doing this? Because my kids are napping and I literally cannot concentrate on anything else I am supposed to be doing right now.

Okay, here goes.

MacBook Air

Apple is going to announce a brand new 13-inch MacBook Air that runs on a variant of the A14 chip. This Air will be the same thickness as previous models with the same tapered design, but will be fanless, with FaceID but no TouchBar. It’ll have two USB-C ports, a headphone jack, and come in 5 different colors. It’ll boast up to 13 hours of battery life.

MacBook Pros

Apple is going to announce new 14-inch and 16-inch MacBook Pro models. These will run on a different chip (maybe M14?) and won’t be fanless. They’ll have a TouchBar, FaceID, four USB-C ports, a headphone jack, speaker and microphone improvements, higher resolution mini-LED displays, and up to 12 hours of battery life. Their GPU performance will be bananas-good. They’ll come in the usual colors, along with one wildcard…my guess is black or blue.

All 3 laptop models will gain an upgraded 1080p HD camera and the FaceID sensor will mean support for Animoji/Memoji in video chats. I’m torn on whether or not they’ll bring back the light-up Apple logo. Maybe I’ll make this bold prediction: the Airs will have Apple’s classic rainbow logo on the back, but it will not light up. The MacBook Pros will have a white Apple logo that does light up.

Other Stuff

How about those AirTags, amiright? Actually, I think if Apple adds anything to this event, it will either be headphones or a Mac mini. There will undoubtedly be some demos of iOS and legacy apps running on Apple Silicon and Big Sur, including a game demo.

So, there you have it: my expert predictions for the Apple Silicon Mac event. Honestly, the only thing I really want out of this event is MacBooks in different colors, and I probably won’t get it. A girl can dream though, right?

I listened to John McCain’s 2008 concession speech today and was moved to tears by his display of integrity, humility, maturity, and kindness. Such a stark contrast to you-know-who, who appears to be stooping to new lows I hadn’t even considered possible. #mbnov

As Apple’s “One More Thing” Mac event draws near, I find myself dreaming about Mac laptops in colors other than gray/silver. Black, rose gold, tangerine, cosmic purple, pumpkin spice; I literally do not care as long as they’re not gray. MacBook Airs in the original six colors would be so rad. #mbnov

It is an astonishingly beautiful day today. 82 degrees in Nebraska in November…I’ll take it! I’m outside with my family right now, soaking in the sunshine and hoping for better days. ☀️ #mbnov

Finding it nearly impossible to concentrate on coding right now, so I decided to learn how to play chess. Why chess? My husband watched The Queen’s Gambit and I happened to catch the final episode. Seems like a fun game to help take my mind off of current events! #mbnov

The prospect of a dark, dreary winter used to depress me; this year, I find myself oddly looking forward to it. Something about the juxtaposition of our warm interior lights and the frosty blue darkness out the window…it’s a whole vibe that I’m very much into right now. #mbnov

Off the Tock

I’ve long been a member of the S Club—the “tock” cycle of biennial iPhone upgrades. My first iPhone was the 4s, after which I diligently upgraded every two years to the 5s, 6s, and finally the iPhone X. After that, I was thrown onto a different rotation when I decided to join the iPhone Upgrade Program and purchase the iPhone 11 Pro. Now, for the first time, I’m sending my phone back after only a year instead of keeping it and handing it down to my husband.

Ain’t no party like an S Club party

I’ve always thought of the “S” models as being inherently cooler than their number-only counterparts. Every time I upgraded my phone, it got dramatically better. The iPhone 4s had an 8 megapixel camera, took 1080p video, and came with Siri. The 5s got the A7 chip and TouchID, and the 6s brought 3D Touch, a 12 megapixel camera, 4K video, and Live Photos. There was something exciting about being on that particular cycle and I find myself feeling the loss of that this year. I’m upgrading my phone, but I’m not pumped about it.

In the end, of course, that’s fine. What a first-world problem to have, right? Being bored with a yearly upgrade to my phone…sheesh. In the end, I’ll gain a slightly larger screen, slightly improved camera, cool magnetic case, and a lovely shade of blue.

Still, I’m left with a strange feeling after watching Tuesday’s iPhone event. It just seemed…off. The 5G marketing bonanza felt forced and nonsensical. Apple knows 5G doesn’t matter to most people, or at least, they should. The whole thing had a vibe of “we didn’t get to make the phone we wanted to make this year due to time, supply chain, and technological constraints but by golly we have to sell phones this year or our shareholders will eat us so HERE’S SOME 5G.”

That flavor of enthusiastic marketing jibberish in lieu of a compelling product story leaves a bad taste in my mouth. In contrast, the presentation of the HomePod mini was very good, and the iPhone 12 mini suitcase gag was cute and funny. The presenters did a great job despite the 5G bologna, and the transitions were slick af. Lots of good stuff there, only to be soured by the near constant presence of Verizon (and I say that as a content Verizon customer).

I will say, it’s getting harder and harder for me to imagine where cellular phones even go from here. If the new iPhones had gotten ProMotion displays and Touch ID sensors this year…like…what is even next? Maybe I’m just out of the loop, but I can’t even begin to envision the “next” thing.

I’m SO stoked for Apple Silicon Macs, though. Particularly laptops.

I hope they have 5G.

Meet Scribblet

On September 24, I got an idea for a widget-making app.

8 days later, I released Scribblet, an app for turning doodles into widgets. It actually took a little longer than I anticipated; I decided at the last minute to curate some background images from Unsplash to include in the app and then quickly realized I would have to learn how to implement in-app-purchases all over again because I’d forgotten everything I’d learned from Snapthread… so in the end, I just went with RevenueCat, which I’m already using with YarnBuddy. I also forgot how long it takes to assemble screenshots (especially since I had to actually create some drawings of my own) and oh, yeah, make an icon.

That icon took approximately six minutes in Affinity Designer.

The app is written in SwiftUI, with a UIViewRepresentable wrapper around PKCanvasView. As of this moment (I’m writing on Sunday night), I’m about to submit an update (1.1) that allows you to import and export widgets. Building that feature gave me the opportunity to learn about creating custom file types and using the new fileImporter/fileExporter modifiers in SwiftUI—pretty slick!

Scribblet is FREE. “So what’s it good for?” you might ask. Having fun, of course! Doodle over images of your pets, play an awkward game of tic-tac-toe with yourself, draw your very own “Super S,” doodle a quick napkin-style design that you want to keep at the forefront of your mind, jot down a quote in your own handwriting, let your kids draw something…whatever you feel like. Just add a Scribblet widget to your home screen, long-press it, and select “Edit Widget” to choose which drawing (of the same size) you’d like to display.

For an optional $1.99 in-app purchase, you can add a background image to draw over. Choose one of your own or select from one of the 30 I picked out.

If you’re artsy, you can use Scribblet to improve your #ios14homescreen aesthetic. If not, it can help you sow absolute chaos amongst your app icons. I’m serious, just make it a real hot mess. Janky af.

Also, tweet me your doodles. I already love them.

Scribblet! Download it today!