by Christian Kaj Mitteldorf
photo by Alisher Hasanov
Get the right equipment
When developing apps for Apple devices, you need a few things first. You will need to download and install the IDE, called Xcode on a Mac computer. Luckily, it’s totally free!
You might also need a selection of different iPhones and iPads for testing your apps. You can go a long way with the iPhone Simulator, bundled with Xcode, but the actual device is preferred because you can’t test performance in the simulator, and that’s a huge downside. Remember to enroll in the Apple iOS Developer Program as soon as possible.
When it’s time to plan your app, make sure that you pay equal attention to design, development and performance. Your customers will be very picky about what they want, and if your app doesn’t deliver what they expect, they won’t use it. Your functionality can be killer, but if its hard to use people will not come back to your app. On the other hand, if you create an awesome looking app that keeps crashing and doesn’t do what it’s supposed to do, people will stop using it.
Take the new Facebook app for example. Suddenly it has become really slow, and that completely destroys the user experience. But when it does work, it’s a beautiful and quite well-designed app.
It’s pretty much a given that you need to learn the programming language for developing apps. Objective-C is an extension of C that includes object-oriented principles. This means that if you already know one language, like C, and have some object-oriented experience, Objective-C is not that hard to learn.
Objective-C is very weird at first. It takes some time getting used to. Once you become accustomed to the odd-looking syntax, however, it’s actually rather simple and pleasant to work with.
Start writing something
Like with anything else, the best way to learn developing is by doing it. Start writing code and familiarize yourself with it by using a practical approach. Begin by writing a lot of small apps, which may be absolutely useless, and try using some of the APIs. After a while you’ll soon be able to build more advanced apps.
Concepts and design patterns
The key design patterns used in iOS development are Key-Value Observing (KVO), the Model-View-Controller pattern (MVC), and the Singleton pattern. Be sure to read up on these and know when to use them. You might even use more than one pattern for the same app. There’s no right way to do it. Experiment with some different combinations and find out what works best for your app.
Another thing you can use is Notifications, which is used a lot by the APIs. Objective-C relies heavily on delegation, and so you want to get comfortable with this concept as well.
Talk to people about your code
Read other peoples code and learn from them. Seeing how other developers approach problems will help you overcome your own. Read code from another developer and see their thought process in real time.
Likewise, you should get other people to read your code, often called code reviews. When you write code, it is easy to overlook something that should be done differently, or doesn’t make much sense to anyone but you.
Test your code, and fix it
When you write code, you make mistakes. Be sure to test your code all the time, either manually, or preferably by writing unit-tests. Don’t write new code until you fix existing bugs. It might be tempting to just hack it, but do yourself a favor and look into the problem, and fix it permanently.
Use version control
Using version control isn’t very hard and it’s worth the trouble; it doesn’t matter if you are working alone, or with other developers. Version control is built right into Xcode, in the form of Git, which makes using it a breeze. Using version control helps you to know what everyone on your team is doing, and makes it easy to roll back any mistakes.
It is extremely important to focus on battery life and performance. Your app must always be responsive, and perform well. Apple provides you with the Instruments app for Mac, which enables you to monitor the usage of the CPU, memory, and network. Hopefully you will discover things that can be improved and give your customers the best possible user experience. Remember to keep things concise by removing all unnecessary elements and features. Sometimes having fewer features can be your biggest competitive advantage.
The Twitter app has a lot of data to handle, but still manages to do so very well. Apps that are very simple are much easier to use. The Mailbox app is extremely simple, yet amazingly powerful, which gives the customer a lot of possibilities without having to waste time learning how to use it.
There’s a lot of open source software out there today and you should definitely take advantage of it. If what you need is already out there, why not use it and save yourself the time. CocoaPods can manage dependencies for you, and it’s an amazing tool for discovering new libraries.
Sign up for the annual Apple WWDC event. You will get the latest information about Apple’s current and upcoming technologies. There will be sessions for you to learn how to use the new iOS APIs and labs where you can talk to experienced Apple engineers about your apps, and ask them any questions you might have.
Hopefully, this will get you started making some great apps. It’s never been easier to make apps, so if you’re looking into it go for it!