Technical Article Swift Playgrounds 4

// Written by Jordan Morgan // Jan 3rd, 2022 // Read it in about 2 minutes

Swift Playgrounds 4 is here. And with it, our dream of Xcode on the iPad has been realized! I mean, kinda. Actually, no. Xcode on the iPad is not here. And, after beta testing Playgrounds for a bit and now using it in production I can tell you…

That’s a good thing.

Many moons ago, I alluded to the version of Xcode I would like to see on my iPad:

A direct port of Xcode onto iPadOS, as it stands today, would simply not be tenable for anyone involved. Do we want the power user functionality of a fully loaded IDE found on macOS? Or, do we want something more streamlined to the touch and go nature of an iPad? Cupertino & Friends™ likely realized that if you chase two rabbits, you lose them both. And so it is, we have a focused “Xcode” experience in our hands today.

I won’t dive into the technical specifics of Playgrounds 4, as there are many great resources for it already, but what I do have is time. And, I’ve had a lot of it with Playgrounds.

Easy Livin’ Development

Since beta testing Playgrounds, and then having it over my annual three week vacation I take at the end of year1, I can say this: It’s just so freakin’ fun. My iPad goes with me a lot of places. I seem to be living a somewhat accurate version of the Apple dream sold to us on those iPad commercials. You know, the ones where a well-rested (that part is not me), carefree adult is sitting under a tree whimsically using their iPad. So too do I find myself in the most “unlaptoppable” places with my iPad Pro. Half because I keep it in my car, half because I have three kids who love em’ some screen time.

And over that time, here are two situations that particularly stuck out to me, made possible by Playgrounds:

Scenario A: I found myself with a spare 15 minutes at the gym while my wife finished up a spin class. I made meaningful progress on a new app I’ve been kicking around, and tested some interaction ideas I had right there on the spot.

In the before times…
I would’ve not wanted to lug out my 500 pound, powerhouse MacBook Pro and start a new project in Xcode to test out those ideas. I would’ve just written them down and doomscrolled Twitter for a solid 15.

Scenario B: I had 45 minutes alone while my son was at a basketball lesson, so I tried out a few APIs I’ve wanted to use (creating emojis from unicode scalar values) and I just….did! Right there! It was the first time I felt like the iPad dream, for me at least, was realized. I had two windows up, one for docs and one with Playgrounds, and I knew exactly how to move them all around to get where I needed.

In the before times…
I wouldn’t enjoy multitasking on my iPad, at least in any meaningful way, pre iOS 15. I’d write a snip, maybe in Playgrounds, to try out later. Then, I’d pop on Netflix.

The examples go on and on.

In many ways, Playgrounds 4 epitomizes software engineering. It demonstrates technical prowess, the tradeoffs you have to make for a given platform, the design constraints you have to embrace for a complex application — in short, I love it.

Final Thoughts

Whether or not Playgrounds 4 is what you wanted, I can say its future is both bright and curious. Some vouch for a more Xcode-like future in the most indefatigable manner, while others who hold the opposing view do the same. With different camps in the development community seemingly wanting different things out of Playgrounds, it leaves us all to wonder — where will Apple go next with it?

Will they embrace the platform constraints even more, or try to pack in more of Xcode’s power and functionality? Who knows, but we can spend time lamenting its shortcomings or we can spend time taking advantage of what we have today.

And what we have today is a way to bang out code snips, test out ideas and yeah…make entire iOS apps. Right on an iPad. Things previously relegated to the iPad’s older sibling, the MacBook. What’s a computer, indeed.

Until next time ✌️.

  1. Over which, Playgrounds 4 was released. Which is why I’m writing about it today! 

Spot an issue, anything to add?

Tweet me. →