We started by teasing concepts before settling on a cat app (naturally) and designing a layout on paper. I thought optimistically that we could get version 1.0 together over the summer, but we hit an impasse trying to agree on who would draw each element (they are passionate artists). The hitches have become frequent and fast since then. This was going to be harder than I thought so I decided to chat with some young programmers who had done the deed themselves.
There are nearly 2 million apps in the Apple App Store, developed by all kinds of people, from kids in their bedrooms to professional development teams in sprawling 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 revenue and downloads for some, but for others, developing an app is about serving a cause and trying to help people. It can even be a worthy quest for its own sake.
This was the case for Rahul Kumar, who started programming at age 7. In 2020, due to the Covid-19 lockdown restrictions, he got bored in his room and decided to develop an iPhone app before graduating from high school. With access to his father’s MacBook, Kumar built EmSafean emergency travel app designed to help refugees, immigrants, internally displaced and non-English speakers access emergency services in more than 230 regions around the world.
Kumar had some experience with Java and Python before starting programming in Swift, but he’s self-taught and didn’t get any help from his parents. “I found it difficult to program in these languages when I started out, and often left projects unfinished for weeks because I wasn’t able to easily find a specific resource for my problem,” he says.
His design ran into difficulties when he submitted it to Apple’s internal review process. While the developer tools and community support are free, you need to register with 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 which must be followed for any app or game to be published. “I had to keep troubleshooting issues as App Review found them, such as issues with a button’s text and how an alert was displayed,” says Kumar. But he persisted and was eventually selected by Apple as the winner of the Swift Student Challenge of the Worldwide Developers Conference in 2021 and 2022. Kumar released the first version of EmSafe in July.
Apple released for the first time Fast playing fields 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 upload sample pitches to see how they work. It is designed to teach you the basics with guided walkthroughs and flag errors in your code as you type. You can build your iPhone app entirely in Swift Playgrounds, but you can also export projects to Xcode (Apple’s full-fat development environment).
“Apple provided a lot of beginner-level programming guides for Playgrounds, but after a while, I needed more detailed and advanced information,” says Kumar. He felt he didn’t have the coding experience necessary to understand the dense developer documents. “The main way I learned to develop iOS apps was by looking at websites like Hacking with Swift and also by finding code snippets on Git Hub.”
Ben Robinson, the young developer of Anxiety Relief: Find Your Calm, tells a similar story. He started developing his first real iPhone app when she was 13, but had been learning to code for a couple of years.
“Apple’s documentation seemed pretty intimidating at first,” says Robinson. “Unless you knew exactly how an API [application programming interface] worked, it could be difficult to find the specific component I needed. There’s a mental leap from thinking about everything procedurally to abstracting code and using object/protocol oriented designs.”
At first he got bogged down thinking everything was coding too literally and trying to implement functions that did too many things. But he says the iOS developer community has been supportive and offered a wealth of resources to draw on. Like Kumar, he discovered Robinson Hacking With Swift tutorial by Paul Hudson helpful, as they walked him through a number 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 answer I could come up with Stack OverflowRobinson says. “Self-taught developers all go through this problem, but it has also made me more resilient and independent. I have become more confident by thinking logically about problems as they arise and dealing with them effectively.
Robinson went on to make a iOS version of the party game Mafia play with his friends and hopes to pursue a career in technology. “If you have an idea, make it! You never know what idea will get off the ground,” he says as advice for aspiring young developers. “If your idea excites you enough, you will always be able to learn the skills needed to turn it into reality.”
Kumar echoed those sentiments, adding that it’s best to start with smaller projects that focus on things that truly interest you. This way you learn quickly and have more motivation to finish. He also suggests spending a good deal of time brainstorming and visualizing your app before you start coding.
As for our cat app, it was slow. My children painstakingly drew icons, compiled cat facts, and attempted to decipher the meows and whines of our two cats, hoping for a Rosetta Stone-like discovery that would allow us to develop an app that could translate their sounds. When it came to programming, the heavy lifting fell more and more on me. Sadly, I struggled to find the time and honestly, I’m no programmer. My kids have watched the tutorials and tinkered with Swift Playgrounds, but even with the examples it takes a while to understand the concepts.
We managed to cobble together an app that displays cat facts and a random quote generator, but it was becoming clear that our capabilities fell somewhat short of our original goal. The kids weren’t impressed, and my efforts to curb the thrill of the features fell on deaf ears. When I optimistically pitched this story, I envisioned an upbeat and inspiring account of our app’s development, and this is where you’d click into the App Store to see our moderately impressive achievement. Well, reality bites.
When the kids went back to school, a full-featured app was highly unlikely. There’s no good way to tell someone their project was shelved, but I was ultimately spared. The final nail in the coffin came when my youngest informed me that someone had already done a cat translator app and kindly suggested that we work on a website instead. And so, our project ended up in a scrap heap (as, no doubt, most app projects), but the ride was fun and we all learned something- newfound respect for app developers who go the distance.