The App Development Process
21st May 2015
So you have a brilliant idea for an app. You see a clear need for this app, and you can’t understand why someone hasn’t already thought of it. You are ready to take the plunge to get this thing built but you have no idea where to start and the whole process seems so opaque. The good news is you are not alone. You would be surprised how many ideas are thrown around in idle conversation but so many never make it to production, and one major reason for this is the distinct lack of concise information around the app development process. So with the aim of breeding creativity through knowledge I am going to go through the process from concept to creation one step at a time.
1. The idea
It all starts with the concept, and it needs to be a solid one. The first thing you should do before going any further in this process is stress test your idea. This means making sure there is a market for the app that extends further than yourself, that there is a clear problem you are solving and that your idea makes your target market’s life easier. A common misconception is that the idea alone is worth millions, or even billions. This is fuelled by media reporting on big success stories like Instagram’s sale to Facebook and Uber’s market dominating ride sharing app. I’m not saying that an idea isn’t worth millions, I’m saying that it isn’t the most important factor in the development process that will govern whether the app is a success or not. I’ve seen horrible concepts executed well and become successful, and awesome concepts executed horribly and fail. Check out our other blog posts on finding out how much your idea is worth, and testing if you really want to release an app. If your idea passes these tests then you are well suited to go through to the next phase of development.
2. The plan
Any development company that you go to to build your app is going to need a plan detailing how things should work. This can’t be a high level concept like your idea by itself. A good way of starting your plan is to imagine a user’s journey within your app:
When they first click on the app, what happens? Do they sign in using Facebook? Do they need to upload a profile picture? After the login process what is the first piece of information you need to show them? How will this information flow?
By putting yourself into the user’s shoes you’ll start to see sticking points where the user experience could be broken, and start to chart out how your app should navigate. As this process can be quite time consuming and may sometimes require technical knowledge most development companies offer a workshop service to go through this phase with you. This may be something to consider if you are clear on your idea but not so clear on how it would work in real world terms.
Once you have a clear plan of attack, either created by yourself or through the workshop process, you’ll need to wireframe your idea. Wireframing is the process of drawing each screen within your app with the features you plan to include. Don’t spend too much time worrying about layout or look and feel at this stage, as that will be covered in the graphic design phase. You are more looking to include every function that a user can perform on any given screen. This could mean drawing rectangles for username and password input, or a navigation bar at the top with a back button and a title. The trick is to keep it simple – the less taps a user has to do to perform a function the better. Ideally you are aiming for 2 – 3 levels of navigation (i.e. it should take no more than 3 taps for a user to access any function within your app). If your app requires more than this then it may be time to start considering whether or not you’ve laid out your screens in the best possible hierarchy. Again, app development companies normally include this service in their workshops, so if you are feeling a little intimidated by this then perhaps that is a good path to take.
4. Graphic Design
So your idea is down on paper in detail, and you have wireframes demonstrating each screen’s functionality. You’re making a great start! The next step is to find a designer to take both of these things and turn them into beautiful user interface (UI) designs. Be careful when choosing a designer. Everybody has that designer friend that will do it on the cheap or even free for you, and hey – everybody loves free. What you may not love is the huge extra cost when you actually go to build the app because your designer friend didn’t know that it takes five times as long to build that beautiful custom keyboard than it does to use a standard one, or that adding an innocent little ‘share on Facebook’ button means the developer will later have to program an entire feature to make the button do anything. These are things an experienced app designer knows and will take into account while designing. This will end up saving you more than in development than you’ll save getting the designs done for free. Plus you benefit from the designer’s previous experience in building apps that have been tested on large user bases.
So how do you choose your designer? Well, you have a couple options available to you. The first is to hire a freelancer. You can do this relatively cheaply through online services like www.freelancer.com or www.elance.com but again beware of quality control issues. Most of the time when a price seems too good to be true, it is. Look at the designer’s portfolio and ask them the specific role they personally had in the designs they showcase. You don’t want the guy that put text on the bottom of a jaw-dropping Coca Cola magazine advert and uses the entire design in his portfolio as his own work. It happens more often than you’d think.
While freelancing can be cost effective, it often requires lots of micro management and is not without major quality control risks. If you get designs back that are amateurish you have very few options for recourse, as most of the freelancers you would be using are located in remote locations. Your other option is to use an app development company’s in-house graphic design team. Generally you can view the company’s portfolio of work online, download examples off the App Store and get a feel for how they design. You can bet that the internal designers have worked on many projects and have internal training specifically to optimize designs for a swift (and therefore more cost effective) development process. You have the added advantage of being able to actually sit down in person with the team to go over requirements and design conventions because the whole process is managed. You will pay a premium for going down this path but as I mentioned earlier you will likely end up savings money in development.
So you’ve now completed all of the pre-production work you need to get this thing built and it’s time to choose a development path. Again you have two main options available here, and they are very similar to graphic design:
Hire a freelance developer. As with doing your designs this way, this can be a cheap way of getting your app to market. Via freelancer websites you will find a vast array of developers in various places around the world. Going down this path requires a high level of caution, and a massive amount of pre-planning to ensure you avoid the common pitfalls. One big one is communication. You will more often than not be dealing with a developer who’s native language is English and things often get lost in translation. You also have very little control over code quality, and issues around this can be very tricky to pick up. The app may function exactly as you intend it to when you and 5 of your friends are using it, but grinds to a halt when your app takes off and hits 10,000 concurrent users. You’d be then left with an unworkable piece of software that needs to be rebuilt. If you decide to go down this path, exercise caution in selecting the developer. Check all of their past work (it must be on the App Store) and be extremely diligent with your project planning, guidance, milestones, payment terms etc.
Your second option for development is to use a local app development company. These developers will manage the experience for you, give you feedback on your idea and potential stumbling blocks in your design, help you optimize for rapid development and handle code quality / bug reporting. This option does attract a larger price tag than using a freelancer, but can be a much safer way of approaching development and will usually result in a higher quality end product. I’ve had many clients come to me with source code from an app they developed offshore with a freelancer that just didn’t work, hoping we can salvage the code and breathe life back into it. Unfortunately for people in this situation, most of the time my advice is to rebuild from scratch. Freelance projects don’t go a little bit wrong – if they are not built well, they may just completely fail to the point of no return, and no local app developer will want to touch the code. Just as you wouldn’t take an ’84 Toyota Corolla into a BMW dealership expecting them to be able to remodel it into a 2015 BMW, you are just as unlikely to take a cheaply built app into another app development company and walk out with Facebook-quality code.
So your idea is now a working app. You’ve tested and iterated and now you are ready to release. You could just release the app on to the App Store and hope for the best, but the ‘if you build it they will come’ mentality seldom succeeds with apps. You are competing for attention in an overcrowded and constantly growing space. You need a marketing campaign. And you need to spend more on it than you spent on developing the app. This may be hard to comprehend, but it is almost invariably true. I see a lot of clients put all their time and effort in to the build process, only to fall down on their marketing strategy and it is a formula for failure.
Not only is marketing as important as development, it is also the hardest part to understand because no two campaigns will perform the same. It all comes down to your individual app’s industry, the problem it solves, demographic, distribution channel, genre, monetization model and many others. If you have the budget you can hire an external marketing agency that specializes in app promotions. They tend to have great contacts in media that can get you good articles, reviews and back-links, and can come up with outside-the-square concepts to make your app stand out. We once employed a live monkey to do photos with people at a convention with great success. If your budget won’t stretch far enough to pay an external marketing agency, don’t despair, you will just need to be prepared to do a lot of marketing work yourself.
Marketing is a topic that warrants its own blog post, and we’ll be putting one of these out in the near future, but here are some core concepts to keep in mind:
- As Apple says, Think Different. Figure out what makes your app special, who it appeals to and what makes them tick. It could be that pulling a PR stunt to get attention is what helps the app gain critical mass. - Get your app in the hands of reviewers in well-known publications. Call them a thousand times if you have to. Just get the reviews written. - Ensure your app has social integration and enticing social sharing mechanisms. A Facebook share is free marketing for you. - If you have the budget, consider a multi-pronged traditional advertising campaign incorporating social platforms, TV and search engine marketing.
Congratulations! You’re app has launched. Wasn’t that a roller-coaster ride. Where you go to from here is up to you, but I’d suggest paying close attention to your app’s stats and constantly evolve the experience using data. A great platform for this is Flurry (www.flurry.com).
If you have an app idea and need a local development studio to help execute it, feel free to drop us a line at www.dreamwalk.com.au/contact – we’d be happy to discuss the potential of your idea with you.