One recent evening, I spent my 40-minute commute guiding a friendly cyclops around a maze in search of gems. After moving the creature with a series of taps, he managed to navigate his way across the puzzle to advance to the next stage.
What I’m describing could be the premise of any smartphone game. But by playing this one, I’m learning the building blocks of computer programming.
Apple’s Swift Playgrounds platform, which the company unveiled last month and will be launching later this year, uses puzzles to teach newcomers the basics of writing computer code. The games and lessons are geared toward middle school students, but they are accessible to anyone with an iPad and a desire to learn how to build apps for Apple’s devices.
Apple’s new platform is just one of a class of apps, games and toys that seek to make computer programming easier to grasp, especially for children. Apps like Lightbot and games found on Code.org communicate the core concepts of writing code through basic puzzles. Toys like the Hackaball and Google’s new Project Bloks seek to impart these lessons by tasking children with programming tangible objects.
But Apple employees say Swift Playgrounds stands out because players use real lines of code. “We’re not hiding code, or running away from the fact that it is code,” says Wiley Hodges, director of tools and technologies product marketing at Apple.
Indeed, to help my character, appropriately named “Byte,” find his goal, I had to issue commands in the correct order. Each command is formatted just like a line of code in Apple’s programming language, called Swift. To walk toward the left, I had to enter the command “turnLeft( ).” Retrieving the gem at the end of the level requires the command “collectGem( ).” Some similar games, like the Star Wars-themed one on Code.org, also require players to input lines of code to move their character .
The lessons and challenges in Swift Playgrounds are tailored for use on Apple’s iPad. Players can tap commands from a preset list and drag them around to reorder them, rather than typing them in during lessons. If players choose to type, they will find their keyboard has been helpfully optimized for editing lines of code.
The instructions for solving each puzzle are simple enough to clearly communicate the concept. But the game still requires players to think critically and creatively. “However you solve the puzzle, you can use your own creativity,” says Tim Triemstra of Apple’s product marketing department for developer tools. “There isn’t just one way to progress through the app.” To make a new command that would enable Byte to turn right, for instance, I had to enter the “turnLeft( )” command three times. The directions don’t tell the player to do this, but instead asks him or her to make their character face right using the commands they have already learned.
In addition to Swift Playground’s lessons, which include the puzzle game described earlier, users can choose to partake in challenges or write their own code in a blank document or a template. Coders can then save their work to iCloud and export it into Xcode, Apple’s software for creating apps across its devices.
Apple’s first lesson, simply called Learn to Code, is surprisingly engaging. Although the games are tailored to younger players, older users will find much to enjoy here as well. It feels like a game, but the end result is in a way more satisfying, as issuing commands requires more thought than poking and prodding at a screen. Completing just a few portions of a lesson made me feel like I was building something.
Swift Playgrounds’ debut comes as companies and groups like Alphabet and Code.org are seeking out new ways to get young students interested in the world of computer programming. Apple has a particular interest in Swift Playgrounds’ success: Kids who grow up using it and eventually become skilled programmers may choose to develop software in Swift, creating new software that adds value to Apple’s hardware. The company also made Swift open source last year, giving developers outside of Apple’s ecosystem the chance to contribute to the language and bring it to new platforms.
Apple plans to work with schools to implement Swift Playgrounds in classrooms in addition to pushing it for individual use. “We believe coding should be a required language in all schools,” said Apple CEO Tim Cook at a company event last month. “And we hope that this gift to kids in schools around the world will help make coding a part of the school day.” The company is currently working with teachers and educators to use the app, but it would not reveal any specific plans.
“We started from the premise that kids are a heck of a lot smarter than we give them credit for,” says Cheryl Thomas, vice president of software engineering operations at Apple. “We didn’t want to dumb things down, if you will. We wanted to present to them the ability to write real code in a language like Swift, and have the understanding that what they are creating is going to scale in a big way.”