Sure, Kids Can Develop iPhone Apps. But It’s Not Easy

Apple’s Swift Playgrounds can help young and novice coders get started building applications—with varying degrees of success.
screenshot of Swift app on ipad on green background
Photograph: Apple

Last summer, after watching an inspiring showcase featuring apps created by young coders using Apple's Swift Playgrounds programming language, I resolved to enlist my kids to develop an iPhone app. Aged 10 and 13, over the years they've both played with countless STEM toys designed to introduce the basic concepts of coding, some of which even involved simple programming, so I figured it'd be fun to make the leap to a real app of our own.

We began by kicking around concepts before settling on an app about cats (naturally) and designing a layout on paper. I optimistically thought we could knock together version 1.0 over the summer, but we hit an impasse trying to agree on who would draw each element (they are keen artists). The snags came thick and fast thereafter. This was going to be tougher than I thought, so I decided to chat with a few young coders who had done the deed themselves.

Pursuit of Appiness
Photograph: Apple

There are nearly 2 million apps in Apple’s App Store, developed by all kinds of people, from kids in their bedrooms to professional development teams in expansive offices. With a potential audience of nearly 125 million people in the US alone, there’s plenty of incentive to develop on iOS. Success may be measured in profit and downloads for some, but for others, developing an app is about serving a cause and trying to help people. It can also be a worthy pursuit for its own sake.

That was the case for Rahul Kumar, who started coding at 7 years old. In 2020, due to Covid-19 lockdown restrictions, he grew bored in his room and decided to develop an iPhone app before high school graduation. With access to his dad’s MacBook, Kumar built EmSafe, an emergency travel app designed to help refugees, immigrants, displaced people, and those who don't speak English access emergency services in more than 230 regions worldwide. 

Kumar had some experience with Java and Python before he began coding with Swift, but he is self-taught and didn’t get any help from his parents. “I found it difficult to code in these languages when I started and would often just leave projects unfinished for weeks because I wasn’t able to find a specific resource to my problem easily,” he says.

His project ran into difficulties when he submitted it for Apple’s internal review process. While the development tools and community support are free, you must sign up for the Apple Developer Program ($99 per year) before you can submit an app for review and distribute it through the App Store. Apple has a detailed set of guidelines that must be followed for any app or game to be published. “I had to continue ironing out problems as App Review found them, such as issues with the text of a button and the way an alert was displayed,” Kumar says. But he persisted and was eventually selected as a Worldwide Developers Conference Swift Student Challenge Winner by Apple in 2021 and 2022. Kumar released the first version of EmSafe in July.

Apple first released Swift Playgrounds as an iPad app in 2016, and a MacOS version followed in 2020. It's free and lets you edit code in one window and see how it will look in the finished app in another (in real time). There are built-in lessons and challenges to work through, and you can load example playgrounds to see how they work. It's designed to teach you the basics with guided walkthroughs, and it flags errors in your code as you type. It's possible to create your iPhone app entirely in Swift Playgrounds, but you can also export projects into Xcode (Apple’s full-fat development environment).

“Apple provided a lot of beginner-level coding guides for Playgrounds, but after awhile I needed to get more detailed and advanced information,” Kumar says. He felt he lacked the coding experience required to understand the dense developer documents. “The main way I learned how to develop iOS apps was by looking at websites like Hacking With Swift and also by finding code snippets on GitHub.”

Ben Robinson, the young developer of Anxiety Relief: Find Your Calm, tells a similar tale. He started developing his first proper iPhone app when he was 13 but had been learning about programming for a couple of years.

“Apple’s Documentation felt quite intimidating at the start," Robinson says. "Unless I knew exactly how an API [application programming interface] worked, it could be difficult to find the specific component I needed. There is a mental leap from thinking about everything procedurally to abstracting your code and using object/protocol-oriented designs.”

He got bogged down at first by thinking about everything he was coding too literally and trying to implement functions that performed way too many operations. But he says the iOS developer community was supportive and offered a wealth of resources to draw upon. Like Kumar, Robinson found Paul Hudson’s Hacking With Swift tutorials helpful, as they guided him through a range of APIs and encouraged him to build things with them along the way.

“I didn’t know any app developers; when I got stuck I was usually left at the mercy of whatever answers I could find on Stack Overflow,” Robinson says. “Self-taught developers all face this problem, but it has also made me more resilient and independent. I’ve become more confident thinking logically through issues when they arise and dealing with them effectively.”

Robinson went on to make an iOS version of the party game Mafia to play with his friends, and he hopes to pursue a career in the technology sector. “If you have an idea, go for it! You never know which idea will be the one to take off,” he says as advice for aspiring young developers. “If your idea excites you enough, you’ll always be able to learn the skills you need to make it a reality.”

Kumar echoed those sentiments, adding that it’s best to start with multiple small projects focused on things you're really interested in. That way you learn fast and have more motivation to finish. He also suggests spending a decent chunk of time brainstorming and visualizing your app before you start coding.

Cat Napp

As for our cat app, it was slow going. My kids dutifully designed icons, compiled cat facts, and attempted to decipher the meows and groans of our own two cats, hoping for a Rosetta Stone–type discovery that would allow us to develop an app capable of translating their sounds. When it came to coding, the heavy lifting increasingly fell on me. Sadly, I struggled to find time, and truthfully, I am no coder. My kids watched tutorials and tinkered with Swift Playgrounds, but even with examples, it takes a while to get your head around the concepts.

We managed to cobble together an app displaying cat facts and a random quote generator, but it was becoming clear that our skills fell some way short of our original goal. The kids were unimpressed, and my efforts to rein in feature creep fell on deaf ears. When I optimistically pitched this story, I imagined an upbeat and inspiring tale of our app development, and this is where you’d click through to the App Store to see our moderately impressive result. Well, reality bites.

By the time the kids went back to school, a completed app was distinctly unlikely. There’s no good way to tell someone their project is being canned, but in the end, I was spared. The final nail in the coffin came when my youngest informed me that someone had already made a cat translator app and gently suggested we work on a website instead. And so, our project ended on the scrap heap (as, no doubt, most app projects do), but the journey was fun, and we all learned something— newfound respect for app developers who go the distance.