5 Tips for Developing Apps for Non-Profits

Help get Mozart adopted!
So you've read my previous post on learning the basics of iOS development, and you now have some app development skills. What should you do with these skills, besides looking for a lucrative new software development career? One possibility is to help a local non-profit organization that you want to support. 

This has several benefits. You will gain the invaluable experience of managing an app from the design stage to its release in the Apple App store without facing the pressure of employment-imposed deadlines and requirements. Best of all, you will experience the satisfaction of knowing that you have helped to further a cause you believe in, while producing a unique product using a skill that very few people have mastered. 

Here, I provide you with the five most important considerations when writing an app for a non-profit. As you probably know now, producing a decent app can be very time-intensive. By following these guidelines, you can be sure that you maximize your development time and provide a valuable tool for your non-profit cause. 

1. Talk to the President of the Non-Profit

Your first step in the development process should be a face-to-face meeting with the leadership of the non-profit, preferably the president or chairman. You may have some great ideas for an app, but those ideas may not be aligned with the goals of the non-profit. By talking to the non-profit's leadership, you will get an unfiltered picture of the needs of the non-profit, which will help you determine the correct requirements for your app. 

2. Design for the Primary Goals of the Non-Profit

Often, non-profits will have a website trying to achieve a plethora of objectives. However, to create an effective app, you must focus on a small subset of the non-profit's objectives in order to keep your app uncluttered and easy to understand for mobile users.  For example, if you are trying to help an animal shelter, you should focus on educating new users about the organization, displaying animals that are available for immediate adoption, allowing users to make donations, and advertising opportunities for volunteers. 

3. Great Apps Require Diverse Skills

As you develop apps, you will discover that your skill set will have to expand. Your apps may require photos for backgrounds or graphics to match an existing website. You will either have to create yourself, or outsource to others. You may have to learn how to integrate other systems into your app, such as the Facebook or Twitter APIs. Be prepared to learn a lot!

4. Track the Progress of Your App

Just like other digital properties like websites, it is important to track how well your app is received once released into the Apple App Store or Google Play. Apple will provide you with raw download statistics. However, in order to see how well parts of your app are working, it may be necessary to be able to see how many times a storyboard is viewed, or how many times a particular button was pressed or social action was taken. To do so, seriously consider integrating either the Google Analytics API or the Amazon Analytics API into your code to give you insights into how to improve your app over time.

5. Follow Up: It's your Baby Now

Consider your work for non-profits as an on-going volunteer opportunity. Most non-profits cannot afford to pay for an app, nor can they afford to maintain your code once you release the app into the marketplace. Take ownership, keep in touch with the non-profit on a regular basis, make requested changes over time, and you will become a respected developer in your community.

Final Thoughts

Developing apps for non-profits is rewarding as a volunteer opportunity. It is also a great way to develop a portfolio to show potential clients and/or employers your app development skills. If you do a great job, you can start receiving referrals. If nothing else, your skill set will expand much more than you can imagine. Good luck, and leave a comment about app development experiences and tips that you might want to share with other developers!