Reading time: 4 minutes
Creating an app that goes viral is every developer’s dream. But what if your app’s success depended on keeping it a secret? What if it had to be unrecognizable to most people, while secretly helping people whose lives are at risk? That’s exactly what Alicia Carr set out to achieve.
Alicia Carr is a self-taught programmer who was driven to learn iOS skills so she could create PEVO, an app designed to empower and assist women who are experiencing domestic violence.
In episode 1 of season 2 of the CodeNewbie Podcast, we asked Carr to tell us her story of building PEVO and learning to code at the same time. Here’s why we found her work so meaningful, and a few tips to help you get started on your future app.
The Problem
Helping women escape from domestic violence is complicated. PEVO helps women protect themselves and their children, find help, and learn how to plan their escape.
“When that person is in that situation,” Carr says, “we can’t tell them to get out because we don’t know how bad that situation is.” Abusers often lie and make threats to keep a woman under their control. For example, they might say a woman can’t divorce them, can’t keep her children, or can’t get alimony, Carr explains. “There are too many stories of women getting out and dying,” she says.
Carr’s awareness of these horrible truths were her motivation. “I lived around victims of domestic violence — my mom, my aunt, my sister, my daughters, my girlfriends, were all victims of domestic violence,” says Carr. “It was meant for me to build this app.”
The Solution
“The most important thing was resources,” Carr says. She asked herself, “What will help them get out of the situation?” Escaping violence may seem like an obvious solution to outsiders, but it’s much more complicated.
Carr’s app helps women discreetly explore support services available to them and -- when they have a plan in place -- make a safe exit. The app lets women read through resources within the app itself. It’s all saved in one download when the app is installed. This way, women can access information even when they’re unable to use a cellular signal or wifi.
“Even if they don’t want to go...to these shelters that are listed in the app, they can still reach out to them and say I need food, I need blankets, I need a job. That’s what the resources are there for,” she adds.
Carr started with resource lists for her home state, Georgia. She is currently working on a national version of the app and has researchers in several states.
Technical Challenges
The app includes an interactive quiz, and that portion of the app was the toughest coding challenge for Carr. Carr wanted to include a quiz because “[t]here are a lot of victims that don’t understand they’re abused. Abuse goes in so many different ways — it can be financial, mental, physical.” For some users, the quiz may be the first step toward shifting their circumstances.
Carr also had to be careful about what information to collect and store. Should there be messaging? A diary? Photo folders where users can save evidence of bruises? Where would all that data be stored? Would there be a way to permanently delete anything? What happens if the abuser takes the phone away? Could they find any trace of the messages or photos anywhere on the phone, in photo folders, or in online backups?
As another example, Carr intentionally omitted an email login. There’s no username option or email account linked to PEVO. Why? Because it could leave evidence in email accounts. That email could be accessible on other devices like a shared computer, and it could open vulnerabilities like password reset options that abusers could exploit.
Updating the app (originally released in 2014) has also been a challenge, as Carr started programming in one language (Objective-C) and then learned a second (Swift). “They weren’t playing nice with each other,” she remembers. The calculator was in Swift. The search functionality was in Swift. Many of the other features were in Objective-C. She hit some serious frustration.
“There was, like, one little line of code wrong. I couldn’t find it,” she recalls. “It was hard and it was new…it was really driving me crazy,” she says. She took several breaks, switched books, and tried viewing YouTube tutorials, which weren’t always useful. “I didn’t want to give up on the code,” she says. “I couldn't give up.”
Tech Tools
- Languages: Objective-C and Swift for iOS
- Learning tools: Books, YouTube, a bootcamp, and a tutor
How You Can Do It Too
- Beginner coder -> What is Swift?
- Intermediate coder -> Apple - Programming with Objective-C
- Any experience level -> Search for “civic hacking events”. These are meetups where coders make apps to address community issues like hunger, homelessness, bullying, public transit problems, and more. Go with your own idea, or offer to help another team with their project. To see some app examples, a good starting place is Code for America.
For more inspiration, check out the GitHub Developer Stories video about Carr. She was also featured in Apple's promo video for their 2016 Worldwide Developer Conference.
Listen to Carr’s full story in Season 2, Episode 1 of the CodeNewbie podcast.