Have you ever searched the Apple iTunes store for that perfect app to meet your needs, but just couldn't find it? Have you ever thought, "If I could build my own app, it would have all the bells and whistles and would be much better than anything out there"?
It seems like everybody has at least one great app idea that they just know would be a big hit if they only had the skills to actually develop it. I thought about my idea off and on for years before finally deciding to take action.
Here was my idea:
I travel quite a bit for business and I was sick of printing out confirmation emails from airlines, hotels, and rental car agencies and having to sift through them during my business trips. What I needed was a travel itinerary tracking app that was easy to use, available anytime from anywhere, focused on business travel, and was able to keep a history of my trips.
I also wanted it to do cool things like let me call my customer, hotel, or rental car agency or bring up a map to any location on my itinerary with a click of a button. I searched the iTunes store and even tried a few apps, but none of them gave me all of the functionality I wanted.
So one day, I decided to make my app a reality. I didn't own a Mac and (although I do have experience with PC and web programming) I didn't have the Objective-C skills to develop it myself. So I knew I would have to find a programmer and figure out what it takes to post an app to the app store.
In this Instructable, I will take you through the steps I took to develop my app, Business Trip Buddy, which is now available in the Apple app store!
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Map Out Your Idea
The first step is to map out your idea. This means mocking up screen shots, creating a feature outline, and describing every function in as much detail as possible. You can't just say, "I want to build an app that keeps track of trip itineraries." No programmer in his right mind would be able to even begin without a much more detailed description.
I laid out my screen shots in Paint, but you can use anything from hand drawn notes to storyboarding tools available on-line.
My original screen shots are displayed in the images and here is my original outline:
- Screen: Login - allow users to login with save credentials option.
- Screen: My Trips - List all Active Trips. Include option to show other statuses (complete, cancelled)
- Add New Trip
- View/Edit Existing Trip (include call and map links from phone# and address)
- Delete Trip
- Complete Trip
- Cancel Trip
- Trip Name, Address, website
- Contact Name, address, phone, email
- Start and End Dates for trip
- Status (Active, Complete, Cancelled)
- Add New Flight, Hotel Stay, Rental Car
- View/Edit Existing Flight, Hotel Stay, Rental Car
- Add New Flight
- Default flight date to trip start date
- Add Return Flight
- Default flight date to trip end date
- Default airline from first flight
- Default airports to reverse of first flight
- Airline (choose from list or enter manually and add to list)
- Depart From (choose from list by city and/or airport code or enter manually and add to list)
- Depart Date/Time (default date from trip start or trip end dates)
- Arrive To (choose from list by city and/or airport code or enter manually and add to list)
- Arrive Date/Time (default date from trip start or trip end dates)
- Add New Hotel Stay
- Default check in/out dates to trip dates
- Edit Existing Hotel Stay
- Delete Hotel Stay
- Hotel Data
- Hotel Brand (choose from list or enter manually and add to list)
- Hotel Address, phone, website
- Check in/out dates (default from trip start/end dates)
- Add New Rental
- Default pickup/dropoff dates to trip dates
- Edit Existing Rental Car
- Delete Rental Car
- Car Rental Data
- Rental Car Brand (choose from list or enter manually and add to list)
- Rental Car Address, phone, website
- Pickup/Dropoff dates (default from trip start/end dates)
Step 2: Find a Programmer
There are lots of websites designed to bring freelance programmers to people who need them. I used Freelancer.com and learned a lot along the way.
It's pretty easy to use, just setup an account and post a project. However, I highly recommend you check out their How to Post a Project page. It contains a lot of good tips that will make your project more successful.
If your experience is anything like mine, you will get inundated with offers within minutes of posting your project. I literally had more than 50 "quotes" in 15 minutes! There was no way they could really give me a quote so quickly. Most hadn't even looked at my specs.In reality, even though I put "flat rate" in my project post, most of these were messages from people saying they could build my app for some hourly rate.
I was afraid to do an hourly rate deal, since they could easily pad the project by taking longer. Plus, this was just a sideline project for me, so my budget was pretty limited. So I waited 24 hours and then I went through hundreds of quotes and made a short list of the most convincing flat rate offers. Most of them included references and links to past projects they had completed so I spent quite a bit of time vetting them.
I can't overemphasize how important this decision is. Once you award your project to a programmer, you will have to work with that person (or their subordinates) throughout the project. Make sure you spend the time needed to check references, previously created apps, and especially their customer feedback on the site.
One thing I admittedly didn't pay enough attention to was the language barrier. Programmers on this site are from all over the world and, even though all communication was in English, I had a difficult time expressing my desires and expectations after the project was awarded. Sometimes I wasn't sure if they were not understanding me or intentionally putting me off.
Eventually, it all worked out and I'm very happy with the resulting app. But there where some times where communication problems almost killed the deal for me. So, pay attention to the communication from the very beginning and make sure you are getting your points across.
Step 3: Setup an Apple Developer Account
Even though your programmer will be the one who posts your app to the app store, you will have to setup an iOS Developer Account in your name (or company name) so you can manage the app before and after it's posted. There is a $99 per year fee, but you can post as many apps as you want and Apple provides lots of helpful tools for tracking your apps.
Once you setup your Apple Developer account, you can create an agent account for your programmer. This will allow him/her to upload the app when it is ready for evaluation by Apple.
This is also where you decide if you want your app to be a free or paid app in the app store. You also have other options such as in-app purchases, in-app ads, and others.
I decided to offer my app for free so I could get the most people using it. I had my programmer includes ads in the app so I can, hopefully, generate some income.
Step 4: Work With Your Programmer
Choosing a programmer is only the first step in your app development. You can't just dump your specs on a programmer and wait for a final polished product. It's your job to monitor the progress and quality of the app as it is developed.
Freelancer.com allows you to setup "milestones" which enable you to make payments to the programmer as certain steps are accomplished (and approved by you). This protects you from paying in advance for something you haven't received and also protects the programmer from doing the whole project without receiving any money.
Some programmers will request a milestone payment upon accepting the project. Freelancer warns against this and I agree. There is no reason for you to pay in advance when you don't really know what kind of work the programmer will do.
Some programmers will send you proposed milestones and they may be fair and equitable. But check them out carefully. You know the old saying, "In every business deal, someone has the upper hand. Let that be you whenever possible."
I suggest setting up at least 3-4 milestones for integral steps of development. Something like:
- Delivery of GUI design (10-25% of contract amount)
- Delivery of Initial development of code functions (25-30%)
- Delivery of final design and code (25-30%)
- Acceptance in the Apple store (Balance of contract amount)
At each milestone, you have the opportunity to evaluate the results. If you are not happy with what was delivered, suggest changes. I recommend very detailed feedback. Don't just say, "I don't like the way this screen looks." Give them specific details, "The OK button should have rounded corners" or "The image is blurry" or "The grid should be laid out like this (and mock up an example).
I suggest you don't make the milestone payments until you are completely happy. This is especially true regarding the final payment. Once you release a payment, you are signaling to the programmer and Freelancer.com that you are satisfied with the results.
Step 5: Track Your App
Once your app is approved by Apple, it will appear in the iTunes app store! It was very exciting to see my app listed there and I immediately asked friends and family to download it and check it out. Since it's free, I also invite everyone reading this Instructable to download it and let me know what you think.
Here's the link: Business Trip Buddy
The Apple Developer Program includes a lot of tools to help you develop your app. It also has plenty of features to help you monitor your app once it is posted in the store.
iTunes Connect is a tool that allows you to keep track of sales, downloads, user ratings, and a lot more. You can access reports and graphs from the Connect screen to analyze your app and how it is doing in the store.