Matt Waller built ToDon’t in Swift Playgrounds on his iPad

Folks, we’ve reached a milestone. People have been wanting to build apps on their iPads for a long time, and Apple delivered with the recent update to Swift Playgrounds. This update lets you design, build, test, and even publish full apps to the App Store. There are caveats, obviously, but this works so well that Matt Waller of Cephalopod Studio managed to release his new app ToDon’t.

This is a really big deal, so let’s hear from Matt himself.

First of all, congratulations on being the first (most likely) person to release an app on the App Store, built on an iPad with Swift Playgrounds. You must be really happy with the response thus far. Did you expect this much exposure?
I really didn’t expect this much exposure at all. I didn’t imagine actually being first, and, as you noted, who knows if I am? I had written a bunch on Twitter outlining the development process, shared the app around, and then wrote my overall blog. I thought the overall blog might be popular, and it was really a combination of all three things that made the app merit the attention it did. Unexpected, and really fun!


ToDon’t is a different kind of to-do app. How did you come up with the concept?
Mainly I wanted an app that felt like fun. And often, in my own mind, when I want to come up with a “new” concept, I kind of think, I wonder what the opposite of what I’m think would be. So the opposite of a to-do lended itself to a to-don’t! I wanted it to be a bit more than a silly joke though, just for my own use. So I blended it with standard to-do app features, and celebrations! Overall, I wanted something whimsical, a joy to use. And this was my first stab at that.

You’ve outlined some of the issues you ran into building the app in Swift Playgrounds from a developer’s point of view in a blog post, and obviously you’re a seasoned app developer. But, for someone starting more or less from scratch, building their first app, or possibly even writing their first lines of code by following tutorials in Swift Playgrounds, what would you tell them to expect in terms of hurdles from the platform, as opposed to getting started with Xcode on a Mac?
For someone starting from scratch, I think there will be very, very few hurdles. I’m not sure what they would be, in fact! Other than, if code completion stops working, quickly restart and relaunch that app and come back. I’ve run into that a bit more since I wrote the blog post, and hopefully that irons out. But going in the order recommended by Swift Playgrounds itself, starting with the built in “Get Started with Code” and then “Get Started with Apps” is going to be a great way to go. And I’ll definitely be recommending Swift Playgrounds first for newcomers, as opposed to Xcode. Just because Xcode is so heavy and there are so many panels. Especially if you’ve never worked in any kind of IDE (integrated development environment), it’s really overwhelming.

Matt’s ToDon’t project in Swift Playgrounds

The lack of CloudKit is obviously a bummer for a lot of use-cases. How would you tackle that, moving forward? Is it even such an omission that you’d add that using Xcode?
The lack of CloudKit is a bummer, and it’s the kind of thing that I would move over to Xcode to resolve. (Unless I want my app to be cross-platform eventually; then maybe I use Realm and Realm syncing, or some other third party solution that I can reuse). The lack of CloudKit isn’t going to stop me from starting an app on Swift Playgrounds though. Syncing is going to be a great feature down the line, for a lot of apps, but in my book, isn’t required for a MVP (minimum viable product). So once I know that people are in fact interested in and want my app enough to buy it, that’s when I can say, it’s time to move over to Xcode.

On a more positive note, was there something that really surprised you when working with Swift Playgrounds?
Being able to work with CoreData was a delightful surprise once I figured out the best way to make it work! And the ease of publishing. Just a few taps. So nice. And in-app purchases. I guess what I was surprised by is how capable it really is. I was expecting something much more limited.

From a prototyping point of view, how do you think Swift Playgrounds fits in your workflow, as a seasoned developer?
At work, when I’m working in SwiftUI, I found myself constantly making tiny projects in Xcode just to try out making a screen or seeing if I could recreate some behavior we’re interested in. Or troubleshooting something to isolate a bug and get to the root of it. Now I’m glad I can jump into a lightweight playground for all of those little things!

You’ve got another app out, called Pearl. First, would you have been able to develop that app in Swift Playgrounds (except for the CloudKit integration), and second, do you plan to utilize Swift Playgrounds in your on-going work with Pearl?
Other than CloudKit, we also have our widgets, so I don’t think I could give those up. And we have a bunch of stuff on our roadmap, like a watch complication, that wouldn’t fit either. Alas, we can’t move over to Swift Playgrounds just yet. About the only thing I would experiment with for Pearl are redesigns. New little components and ideas. Those are definitely up for grabs.

The new dark mode

Finally, what’s next for ToDon’t?
Now that we’ve got dark mode after a little update, I’m not sure! I use it myself everyday, and I’ve already zeroed in on one improvement I want to make just for my own sanity. If folks download it and pay for it on the regular, I’ll have to start thinking about what else it could do. Not only adding more features of standard to-do apps, but weird and quirky ways to make it more fun too!

Thanks for taking the time to talk to me, Matt!

You’ll find ToDon’t on the App Store, free to try with an in-app purchase to unlock the full app. And, if you want to be extra nice to Matt, do upvote the app on ProductHunt.