28. March 2013–
If you're a startup, you have to have a mobile strategy these days. A key part of that is probably your iOS client. People expect a native app, and that means you will have to work with iOS developers to build one. But freelancers, while experienced, can be expensive. Here, Chris Eidhof, organiser of UIKonf Berlin – a conference for iOS developers – shares his tips on how to get the most out of your iOS devs and save yourself time and money into the bargain...
#1 Do your research
Be prepared, and do some basic research. You should know the differences between HTML5, Android, iOS and other operating systems. Read about why you should build a native app, versus building an HTML app. You should know what the App Store is, and how it works.
#2 Have a business model and a marketing plan
Being in the App Store is not a guarantee for success. In the early days, it was like the Wild West: anyone with a good idea could get rich overnight. These days, the market has matured, so you have to have a good business model... and an even better marketing plan. Otherwise, you might end up paying a lot of money for your iOS app and not seeing any returns. The rule of "build it and they will come" applied for a while, but is definitely not true any more.
#3 Optimise for interaction
Because the screen of iOS devices is limited, it is essential that your app is optimised for that. Your app has to conform to the interaction models people expect, and this is not just a matter of scaling down your existing web app.
By working with an experienced interaction designer, you can think this out, and prevent your developer re-implementing features several times. Note that you can't design the same application at once for Android and iOS: both have very different interaction models, and the users expect very different things.
#4 Build a prototype
After you're done with the interaction design, you should have or build a prototype. This can be a prototype on paper, which will hopefully give a good feeling of how the app is going to work. If you want to take it a step further, you could make this prototype in Keynote (or a similar tool), and make it clickable. Or if you want to go all out, it might make sense to build the prototype in HTML so you can also test it on the device and implement even more logic.
#5 Work on visuals
After this step, you can already start working with a visual designer. They will take the wireframes from your interaction designer, and create the required images to implement this. It is good to start with this before your developer starts programming, otherwise they'll be waiting for input from the designer, and the process will slow down. Depending on the experience of your designer, you might want to involve the programmer, because there are some details to get right when working on iOS.
It makes sense to spend extra effort on both visual and interaction design. The standard for apps these days is very high, and having outstanding design notably increases your chances to get featured by Apple (a great way of having lots of people buy your app).
#6 Get your API in place
Whether you have an existing web application or not, chances are big that you will need a server that the iOS app talks to. This server exposes an API to your app. An API is similar to a website, but designed for computers, not end-users. This is something you build once, and then you can reuse it for different platforms: iOS, Android, and pretty much everything else.
Building an API takes time, and if you don't have one yet, make sure to get started with this before the iOS development work starts. This is often something that's hard to integrate later on, and an essential building block for every app.
During the building
Now that you have everything prepared on the business side, the design side and the technical side, you can start building the app. In the 15 years I've worked as a professional developer, every project had unclear requirements, and a lot of insight was gained during the development stage.
To make the most out of this, it is vital that communication is very, very clear. When different people work with each other, they often misunderstand each other, which is not something that can be avoided. Rather, it is important that you find out as quickly as possible.
#8 Work in sprints
The best way to do this is to work in sprints: your developer works for a short period (anywhere between one and three weeks) on your app, and has a finished product at the end of that sprint. It will not contain all features you ever wished for, but instead has a few features done well.
After that sprint, everybody looks at the app and together you decide on the next features or clear out any misunderstandings. Also, by having finished features, you make sure that all the different parties involved work together and find out any integration problems: part of the design will be implemented, the API will be integrated and you will spot problems immediately, rather than at the end of development.
#9 Have a test plan
Another thing that is important is to have a clearly defined test plan. Write down what the app has to do, and use your test plan to verify that the app is working as expected. This part can also be automated by the developer, although this is unfortunately still uncommon for iOS programmers.
#10 Update your app
Many users will expect regular updates to apps. You might want to build new features, fix bugs, change the design or make any number of changes. Therefore it's good to have a maintenance plan.
Talk with your developer about the future and make sure everbody's on the same page. Most iOS developers I know are very busy, and have to plan ahead to make sure they have time scheduled to work on maintaining existing apps.