Making It Easy to Make Apps
On January 4, a short circuit sparked a fire that tore through the Naya Nagar neighborhood of Mumbai’s Dharavi slum, destroying more than 50 homes. Afterwards, a group of Dharavi girls wanted to prevent such a disaster from happening again. They realized that part of the problem was information. If residents could detect fires when they started, they could stop them before they spread. But how could girls in one of the poorest parts of the world, rife with gender-based discrimination, make a difference? They began to code a mobile app.
The girls, who range in age from 8 to 16, had already created or prototyped apps to streamline water collection, report child labor, and fight corruption, as well as one that protects women from harassment by letting them alert bystanders, friends, and family of trouble. The fire app, which uses geotagging and SMS functionality, will be able to communicate with fire sensors and alert neighbors with text messages.
The girls’ technical savvy springs from their mastery of MIT App Inventor, a tool that lets people with virtually no coding experience make Android apps. Its creator, MIT professor Hal Abelson, PhD ’73, has spent decades teaching the world’s best computer science students to code. For Abelson, though, mobile computing changed everything. “Before that,” he says, “it was only a few weirdos like us who understood the technology, but it didn’t actually relate to people’s lives.” Abelson made it his goal to democratize this power by making mobile programming so easy that children could do it.
Abelson taught his first undergraduate course on mobile app development in 2008, before the first Android phone was even released to the public. His students were so enthusiastic—and yet found the process so difficult—that he became convinced it was crucial to make app development more accessible to a broader range of people. The next year, he took a sabbatical at Google and worked with its engineers to create the first version of App Inventor, a project he led with Google’s Mark Friedman.
In 2008, thinking that children could program mobile apps took some imagination. At the time, most were written in Objective C on iOS, the iPhone’s operating system. Kelly Heffner Wilkerson, who has taught mobile development at Arizona State University, says that learning Objective C is challenging even for advanced undergraduates. For the first few months of app development, “you spend a lot of time focusing just on writing code correctly,” she says.
App Inventor changed all that. While most programming environments are text-based, App Inventor is visual, and it can be used by anyone who can drag and drop an icon. It lets users incorporate functions like SMS and geolocation into their apps without having to understand the technical complexity behind them. Writing programs for each of these features from scratch would require thousands of lines of technical code. App Inventor users build their apps by choosing icons, known as “designer blocks,” that represent different kinds of functionality. Previously, programmers needed to map out the entire program and write all their code at once before compiling it into something that could run on a phone and be tested. And every time they tweaked an app, they had to recompile their code to test it. In the early days of mobile programming, the compilation process took three minutes—something Abelson discovered his students had no patience for. In contrast, App Inventor users can see instantly if their apps work—and get immediate feedback if they expand or modify them.
App Inventor also supports the apps its users develop by providing, configuring, and administering Web servers to run computations and store data. Abelson estimates that the Web servers at MIT, along with cloud services, host computations and data for 50,000 active App Inventor users who are developing apps each day.
Getting App Inventor into the hands of would-be developers who weren’t technically savvy—especially those in remote or poor parts of the world—didn’t happen overnight. Abelson was eager to use the system to get more girls interested in computer science, so when a Google product manager had the idea to start Technovation, a technological entrepreneurship competition for girls based on App Inventor, he was all for it. A pilot group of 45 high school girls began meeting at Google’s Mountain View campus in 2010. That first year, all the apps they built focused on fashion. But the competition took off when Technovation shifted gears and challenged girls to develop apps to help their communities. Today, volunteers around the world use the App Inventor curriculum to coach teams of girls who are building apps to address issues that matter to them. Beyond teaching the girls how to code, that curriculum is encouraging them to think about what they code. “Computational thinking is more than knowing about ‘for-loops,’” says Abelson. “It’s about knowing what’s worth making.”
The Dharavi girls got their start coding in 2013 with the help of filmmaker Nawneet Ranjan, who had produced a documentary about Dharavi and then moved back to India from the U.S. to start a girls’ after-school program in math, science, and reading. When he noticed the girls playing with their parents’ mobile phones, he decided they should learn how to build their own apps. He found out about Technovation, which provided tablets and curriculum materials. App Inventor has such an intuitive interface that Ranjan was able to learn it and teach the girls to use it despite having no previous development experience beyond making simple websites. “The great part is now we have six-, seven-year-olds picking up App Inventor very fast,” he says.
“After the first App Inventor coding session, they’re completely hooked,” says Tara Chklovski, founder and CEO of Iridescent, the nonprofit that now supports Technovation. She adds, “There isn’t any other application like that.”
Today, App Inventor supports over 150,000 active weekly users; 15 million apps have been developed to date. More than 10,000 girls from 87 countries have developed 2,000 mobile apps through Technovation. A team of girls from a Moldovan village built ApăPură, an app for rating well water, to prevent the spread of hepatitis A. An East Palo Alto team calling itself the Chica Squad made an app called Tag It to get people involved in a community effort to clean up graffiti and trash. And 70 percent of Technovation alumnae say they plan to take additional computer science classes in school.
Although App Inventor was designed to be easy enough for kids to use, plenty of adults use it too. Many of the apps they create address needs outside the purview of traditional programmers. A Polish-designed app called StolKal Meble, for instance, helps carpenters measure the materials they need. Tractor Rollover Protection calculates the maximum slope on which a tractor can safely operate without rolling over. MIT’s Punya project, which helps app developers integrate data from multiple sources (including the “crowd”), is working on using App Inventor to allow Red Cross teams to configure their own disaster relief apps.
As these programs suggest, apps tend to reflect the problems their creators need to solve. That’s why the Silicon Valley app boom has been criticized for focusing too much on the dating problems and laundry woes plaguing the young and relatively well-off. By making programming accessible to people without formal training or access to expensive servers, however, App Inventor’s platform is extending the power of creating such technology to people far beyond Silicon Valley. Their apps are changing—and in some cases saving—lives around the world.