Going into mobile development, particularly iOS and Android, seems like a good choice, because these profiles are among the most sought after in the modern marketplace, both in Spain and Europe, and nearly everywhere on the planet. Given my experience as an iOS developer, I’ve been taking a look at some of the qualities I think are essential to become a good developer on this platform.
Some may think that the most important asset is knowledge of the platform, which, although important, I believe can be acquired over time. I’d focus more on the interest, the desire to learn and the ability to get ahead in life when you haven’t got anyone there by your side. Improving with these premises is what helps you become a good developer.
Essential technical knowledge
Essential knowledge needs to include object-orientated programming, IDE management skills, and control systems for HTTP, JSON, XML versions. In other words, what you need nowadays to program in almost language or platform. This would be the minimum base for starting iOS programming, although any other experience helps, for example having programmed on Android, Windows Phone or having general software development experience or have worked in a software development company in some capacity for at least a few years.
Advanced knowledge
For a more advanced developer profile, let’s say a senior developer, there are tools that you should be familiar with and be able to control:
- Running Xcode 4.x
- ARC
- CoreData
- Grand Central Dispatch
- Unit testing
Additional knowledge
It is also very important to be up to date with the latest tools that provide development support such as CocoaPods, a dependency manager for OSX and iOS, third party libraries that help you to develop applications, such as AFNetworking, Flurry, test tools such as TestingWithFrank, continuous integration tools like the Xcode plug-in for Jenkins, and many more. Finally, it is important to mention that becoming a good developer, like with everything, is a long process, because there are always new things to learn, especially if you work on different types of projects. Developing a news application is not the same as designing a game or a library that has to be integrated within other applications. Covering all kinds of apps is the best way of learning about the platform and becoming an expert.