Creating an app is easy, right? I mean we've all read the stories about the kids who make a million from them before they're even out of nappies. How hard can it be?
Much harder than you think, actually. Let's face it - you're clueless. Do you know which language iOS apps are coded in? Or what hardware you need? Or who to ask for help?
No, no and no, we'll wager. But you soon will - because here's Michael Simmons, creator of the award-winning Fantastical 2, to give us his expert advice for how to become an iOS developer.
A pencil, paper and your imagination are the best combination for brainstorming ideas. There are also great tools such as Prott and proto.io for prototyping on a computer, but it’s hard to beat the simplicity of a blank sheet of paper.
Apples are sweetest
All you need to get started in iOS development is a Mac. Coding doesn’t take up much storage or demand a fast processor, but screen estate can be useful – so if you don’t need portability, a Mac Mini or iMac will be fine. Check out Apple’s refurb store for bargains.
Choose the Xcode factor
Use Apple’s free development suite Xcode over other solutions that promise to let you run your app anywhere, such as Appcelerator or PhoneGap. It may seem more difficult at first, but it makes getting help easier and will definitely pay off in the long run.
When coming up with an app idea, think about a simple problem and how to solve it. You don’t have to create something brand new, but you do have to be making something that interests you. It’s the only way to push you through the learning obstacles.
Don’t call it Arkansas
The app’s name is very important. Make sure there are no pronunciation ambiguities and that you can easily tell someone its name. You don’t want to be spelling it out every time someone asks.
Learn the lingo
Apps can be written in two languages: Swift and Objective-C. Swift is newer, but most apps are still written in Objective-C. Learn a bit of both.
Get stuck in
Nail the basics
Programming skills apply everywhere. Learn the basic concepts well, as the knowledge will transfer to web design and Android development too.
Apps consist of the user interface, the pieces underneath that power the UI and the glue that holds these two together. The proper term for this is the model view controller (MVC).
In other words: the model stores the data, the view is what the user sees (the UI) and the controller updates the model based on input (like a new event in a calendar app).
Thinking about MVC as you design your app makes you aware of how it will all work together.
Look and feel
Learn from the master
Look at Apple’s own apps as a starting point for good design. Learn how it thinks apps should look and work, and apply those principles to your creation.
People have different levels of eyesight. Think about providing the ability to adjust font sizes and offering different display themes.
Experiment with colours
There are no hard and fast rules about how many colours to use, but sites such as UI Palette are good for finding combinations that work.
Take a test ride
Beta testing is essential for finding bugs and ironing out any kinks. Apple’s free TestFlight is great for quick testing, but also has some limitations.
Puck it up
An alternative is HockeyApp, which provides not only beta testing but also crash reporting, user feedback and analytics.
Be a travelling salesman
Always keep two versions of your app on your iPhone (one that works and one you’re working on) so you can show people and get their feedback.
Level up with...
App: The Human Story (appdocumentary.com)
It’s not out until December, but this Kickstarter-funded documentary looks as if it could be the app equivalent of Indie Game: The Movie. A host of A-list developers have signed up to be involved and its website has a mix of video shorts and interesting stories written by people who have struck app gold.
Whether you’re looking for logo ideas or just fancy dunking your head in a stream of visual inspiration, this ‘show and tell’ site for designers should be top of your bookmarks list. There are special deals on design software and you can even filter projects by colour hex codes to see what combinations work for your app’s colour scheme.
Stack Overflow (stackoverflow.com)
Developers of all types and levels of experience talk over their problems here, so it’s a great place to go if you’re in need of help. But be warned: it’s not always newb-friendly, so make sure you check its library of over 10 million programming questions to see if yours has been asked before.