Developing and launching an iPhone app on the Apple App Store is now something that most people like yourself can do.
Though for many, this probably comes as a surprise. They just assume that only techy software programmers and high-tech companies can do this. Most people don't know where to start, how much it costs, and in the end, cannot envision themselves doing this. In this post, I will be sharing my recent experience in the development of ThoughtsOnTheGo, my newly launched iPhone app. My goal is to help you understand the general steps, make you aware of some very useful services, and make it easier for you to see yourself doing the same if that is an aspiration you have.
The World is Flat
An important point made in Thomas Friedman's book "The World Is Flat", is that the Internet and services which leverage it to connect service seekers and providers will be a great economic equalizer. Geography as a determining factor in vendor selection becomes less significant. This has been true for over a decade as large companies routinely outsourced accounting and software development to India and the like. But now services like www.guru.com and www.99designs.com allow small companies and individuals to do the same. It no longer matters if a service provider is in your same city or on the other side of the globe.
ThoughtsOnTheGo directly benefited from this new reality. My "Absurdly Ideal" logo above was created by someone here in the States, the ThoughtsOnTheGo icon by someone in Eastern Europe, and the app was developed in India. On the surface, that might sound like a lot to orchestrate. It was not. Guru and 99Designs made it effortless, and the geographies almost irrelevant. An important thing to note here is that I did this in my spare personal time, not as a part of my day job. It was a personal project, so it was accomplished with limited time and financial resources.
One of the important lessons I learned ... The world is full of very talented people just waiting to help you out, and at a very fair price.
A Little More Background
Because of the work I do, capturing ideas is an important task for me. Ideas and moments of inspiration are fleeting things, especially when you are busy and there is a lot going on around you. It was always frustrating when I couldn't remember an idea I just had a moment ago. And I know this is something that frustrates creative and busy people all of the time.
This was the inspiration for ThoughtsOnTheGo. Create an iPhone app that allowed people to capture ideas easily and very quickly, even while on the go.
At work, I had a recent experience that helped me to realize that I might be able to personally afford to outsource software development. So I turned to www.guru.com and www.99designs.com to validate this assumption. Which turned out to be very true. This is where the journey started.
The Major Events
The following are the major events I went through in the development of ThoughtsOnTheGo.
- Articulate the app's purpose and requirements
- Logo and icon design
- Wireframe and workflow design
- RFQ - Request For Quote
- Detailed User Interface design
- Submit app to Apple for approval
Articulate the App's Purpose and Requirements
This first step is arguably one of the most important. This is where we articulate things like:
- Who is the target customer (busy and/or creative people)
- What is their frustration (unable to remember ideas)
- What is the application (a handy iPhone app which lets people capture ideas while they occur to them)
- What are the priorities (fast to start, use, and dismiss; easy to operate while busy and on the go)
What we articulate here will drive all our decisions and set the vibe for the product.
Normally there is a fair bit of customer research that occurs, but I decided to forgoe this since I was designing the product for myself and people like me. Note that making this decision for this reason can lead to requirements that serve you better than your target customer. Be careful if you decide to do this.
Logo and Icon Design
Designing the icons for an application is something that should normally happen later during the Detailed User Interface Design. I did it early because the cost was low relative to the overall app development cost. This gave me a chance to try outsourcing for a small amount of money while I slowly waded deeper into this process. I decided to also have the logo for this website (Absurdly Ideal) done at the same time, even though this really did not have anything to do with the app.
I used www.99designs.com to have both my logo and the icon for ThoughtsOnTheGo developed. The way this site works is:
- You submit a design brief which describes what you are looking for. They have a great interface that helps you to specify things like the gender appeal, how obvious should the theme be, and example images.
- You then decide how much you are willing to pay for a winning design. The more you are willing to pay, the more idea submissions you will get.
- A few days later, different designers begin submitting concepts.
- You rate the concepts and provide feedback on why you believe you like/dislike things
- There is a continuous flow of concepts. As you provide feedback, the designs get better and better.
- After about 5-7 days, you pick 6 finalists, who then continue submitting designs, and you continue to provide feedback.
- After a few more days, you pick the winning design.
This service is a fantastic deal. I paid $300 for the Absurdly Ideal logo. And $150 for the ThoughsOnTheGo icon, which I feel is professional looking, attractive, and conveys both the notion of ideas and motion ("on the go"). For the icon design, there were 161 design submissions by 39 designers. Where else can you get access to that much talent for that kind of price?
Wireframe and Workflow Design
Since my day job is in the software business, I understand the value of being as specific as possible as early as possible, when it comes to the design of your product. I decided that I would try to head off any potential communication issues and save myself a little money by designing the wireframes for the product myself. Wireframes are low detail images of your user interface that illustrates the important components while staying away from the aesthetic design. I also put together a set of diagrams to illustrate how navigation occurs within the app. This step is something I wouldn't expect most people to do themselves. The software developer you hire will most likely also provide this as part of the overall service. Note that 99Designs also provides design services.
Given that this is not something I expect most of you to do, I will not elaborate further in this section. If you want to get a copy of my wireframe as an example, just contact me and I will send it to you asap.
RFQ - Request For Quote
When you know what it is that you want build, now you have to find a development house to build it for you. This is where www.guru.com comes it. They have countless service providers, from all over the world, and of all types (not just software developers) listed on this website. It can be a bit overwhelming. To use the site:
- Selecting "Post Project" and then navigating the project type heirchy to find the right kind of project, such as iPhone app.
- Submit your project description and requirements. This can include any documents that you feel help to better explain what your application should do.
- You specify your default requirements for the vendors you will consider. Things like minimum star rating, number of awarded projects, and even geographic location if you desire
- After several days, you will begin to get quotes and/or request for additional information from different vendors.
- I then looked at each vendor to see what previous customers had said, and examples of their work. I also looked at ratings, but only for those vendors who had a lot of projects completed. I was not willing to take a chance on someone with only 2 projects completed.
- I then communicated with the two vendors that I was seriously considering. The communication (even if only through messaging) gave me a slightly better sense of who I would be dealing with.
- Part of the discussion includes not only how much the project will cost, but what the payment structure will be.
I ended up selecting AppStudioz (www.appstudioz.com) of New Delhi. Before they would start the work, they required that I make an initial payment. I must admit that at this point, my discomfort level went through the roof. I initially felt reluctant to send a company which I only knew a little about and which was on the other side of the globe, some of my personal hard earned money. Thankfully Guru.com has a service they call SafePay. Essentially you can put your payment in escrow which is not available to the vendor until you approve that phase of work and release the funds. With that taken care of, we were able to get down to work.
Note that while I worked with AppStudioz on the project, our mutual trust and respect for each other grew. I developed a wonderful working relationship with my team, and today I wouldn't hesitate to pay them an early deposit.
The development cost for the app ended up being around $4000. This isn't an insignificant amount of money (especially when coming out of my own pocket), but at the same time, it is a lot less than if I were to pursue more traditional development resources.
I reluctantly share all my specific expenses, but I just wanted to give a rough sense of what a comparable app might cost. But realize, comparable is a hard thing to quantify, and your app will certainly vary in scope and complexity. So please don't try to hold any developer to my number. When you get multiple quotes, the market will accurately show you what a fair price is.
Detailed User Interface Design
The first thing that AppStudioz did was to assign a designer who began working with me on the aesthetic design. He took the ThoughtsOnTheGo app icon and my wireframes to create color mockups of each page in the UI. This was a collaborative effort, so I made it a point to be very responsive with my feedback.
As he completed the pages in a specific area of the app and I provided approval, software development in that section then started. So as we began work on the design of the next set of UI pages, software development was simultaneously going on.
This was when the app came to life. Each week or so, I would be sent the iPhone app in its current state of development. It would include fixes to bugs found earlier along with newly implemented functionality. AppStudioz has their own quality assurance (QA), which tested the app. I still found my own bugs, which I would quickly report back to AppStudioz.
This design, implement, test, and report routine continued until the app was complete. It was about 2 months from the time I signed the contract with AppStudioz to the point where we uploaded the app to Apple for approval.
Submit App to Apple for Approval
Part of the service provided by AppStudioz is to upload your app to Apple and to help facilitate getting the app approved if Apple raises any issues. Once we submitted ThoughtsOnTheGo 1.0, it took exactly 7 days for Apple to approve the app and make it available in iTunes. I was thrilled it went so smoothly.
I was now selling an iPhone app in iTunes!
Once 1.0 was released, friends informed me of some issues which both AppStudioz and I originally missed. I decided to immediately start work on version 1.1 to both fix those issues, and tidy up some of the user interaction. I believe my technical lead from AppStudioz already began work for his next project. Which is perfectly understandable. It took about 1 month to complete the enhancements and fixes as a part time effort. We submitted the update to apple, who then rejected the app due to an issue they discovered in the latest iPad. At their request, we sent them our source code, but they were then unable to reproduce the problem. Which means the problem really did not exist, but Apple then became very unresponsive when it came to our request to approve the app. We ended up resubmitting the app, which was finally approved after 7 days. The phantom issue raised by Apple ended costing us about 1 additional month.
Ensure everyone knows up front what the product's most important priorities are. Document those priorities, and then discuss them with the team before any work begins. Make sure they articulate those priorities back to you. I failed to do this, which caused tension between me and the developer, and required him to rework part of the implementation. I could have easily avoided this situation.
When working with vendors on projects such as this, you want to treat them like they are your team mates in the effort, not just the hired help. As a team, you both develop a mutual and sincere desire to create something to be proud of. You will find them taking the extra effort to make things better, even if they are not required to. It also creates a mutual respect that makes working on the project together just more enjoyable.
Help your vendors to be successful on your project. You do this by being responsive. Respond to requests as quickly as possible to minimize the time they are waiting for you. If they are waiting a long time for your response, then you are delaying the project, and increasing the stress of the rest of the team.
I hope this review of ThoughtsOnTheGo's development proves useful to you. The world has changed, and it has become easier for mortals like us to build great things. Well ... what are you waiting for?
Still a Rookie
Once I learned that iOS 6 was available for download, I enthusiastically installed it on my iPhone 4. Later when I went to use ThoughtsOnTheGo, it kept locking up. After a little investigation, I realized that this was occurring when emailing thoughts. This essentially renders the app useless until I get this fixed. We are looking into the fix right now, and an update should be on the App Store in 7 days. Which is going to now feel like forever for me.
The fact that this is my first iPhone app becomes very evident with this new issue. I knew that iOS 6 was coming, but I never thought to ensure ahead of time that my app needed to be retested on it. As a result, I have learned a new and painful lesson.
You can be sure this won't happen again.