What an iOS Developer Should Know

Apple has an enormous and growing fan-base all over the world. And with good reason: their computers—and especially their mobile devices—are the last word in tech when it comes to style and sophistication. But beneath the sleek exterior of the latest model iPhone is something even more impressive: a plethora of slick, high-performance apps to satisfy every need and desire. Sold (or given away) out of Apple App Store, these standalone programs are engineered for performance, security, and above all, a great user experience. So who programs these apps? Why, an iOS developer, of course. And these in-demand programmers are some of the highest paid in the industry, with an average salary in the US of over 100K per year. What does it take to join the elite of the programming world? That’s what we’ll cover in this article, whether you’re looking to land your very first programming job as an iOS dev or planning a career that will take you all the way to senior developer.

The Basics

An iOS developer typically works with one of two main programming languages: Objective-C or Swift. If you want to write iOS apps, you’ll need to become a master of one or both of them. Objective-C was the language of choice for Apple developers for years. It’s built on C and shares many of the features of that language, though it’s considerably easier to work with. Swift, on the other hand, is Apple’s own invention. It’s lightweight, secure and powerful. And perhaps most importantly for the novice programmer: It’s not based on C. That means Swift is generally easier for new programmers to read and understand, since it was intended for rapid program and app development on Apple operating systems and doesn’t have any of that “C baggage” that some programmers complain about in Objective-C. Swift is also supported and strongly encouraged by Apple, as you might expect. All of this means that many people think it’s the way of the future for macOS and iOS developers. So if you’re just starting out, Swift may be your best bet. It’s probably easier to learn, and it has the full backing of the people who make the OS that you’ll be developing for! But if you’re coming from C and think you could pick up Objective-C quickly, or if you already know the language, there’s no reason you can’t start as an iOS developer today—the language isn’t going away any time soon! ios_developer

What do you need to work?

The iOS dev wears many hats. And if you want to be a truly strong developer, you’re going to have to master a wide range of skills—from hard technical coding skills to the fundamentals of good UX design. But there are a few basics that every iOS developer needs to know: MVC stands for “Model-View-Controller”. It’s a design pattern used to organize code in software and web development. And it’s essential for an iOS developer to understand. When designing in MVC, every piece of your app will either play the part of model, view, or controller. This is a pretty simplistic breakdown, but basically, the model is the data storage and the logic of your app, the view is what the user sees and interacts with, and the controller is the bridge between the two, the way that your user can change what’s in the model and the way that the model can show itself to the user. For a more in-depth discussion, have a look at this short video or go right to Apple’s developer documentation. Xcode is Apple’s own IDE (Integrated Development Environment). Free, massive, and well-supported, it’s the IDE most often used to code iOS apps. If you’re brand new to programming, you might be asking yourself, at this point, “But what’s an IDE?” Good question! It’s basically a program that’s used to write code, but it’s not just a text editor—it has “smart” features like debugging, auto-completion of common code functions, and other goodies designed to make software development fast and painless. In fact, IDEs are so powerful that some programming instructors tell their beginning students not to use them when learning their first programming language, because the program basically “does all the work” for the student! But once you’ve acquired a deep knowledge of programming and are a working developer, an IDE is an indispensable productivity tool. If you’re going to be doing iOS, Xcode is probably the IDE to learn. Cocoa Touch is the framework (more precisely, group of frameworks) that is used to build iOS apps. If you’re already familiar with the world of programming, the idea of a framework will be very familiar to you. But if you’re new to the game, for now it’s enough to know that a framework is basically just a collection of ready-to-use code. Why do programmers use them? Because frameworks help them accomplish their goals and deploy functioning apps quickly and reliably, without having to start writing code “from scratch” every single time. Cocoa Touch contains a framework for building elegant and beautiful user interfaces, UIKit, as well as Foundation, which helps developers to create the basic functionality of their app and manage data. Learning the ins and outs of Cocoa Touch is an integral part of working as an iOS developer. Git, which probably sounds familiar if you’ve heard of the programming site GitHub, is a version control tool. When you’re just building apps in your bedroom, or creating portfolio pieces as you finish an online course, you don’t really have to worry about how you’ll deploy multiple versions of your software, or allow other people to download and modify your apps, or work as part of a large team on the same program. But once you’re working as a professional developer, all of these things become crucial, which is why you’ll need to learn a version control tool like Git. It’s not that hard to get the hang of, though it takes some effort at the outset—but the reward is that you’ll feel confident and competent once you learn how “real programmers” do things.

Senior Developers

Google the words “Senior iOS developer” and you’ll get hundreds of job ads from all around the world. And each one will be looking for different high-level skills and specialized knowledge. If you’re thinking of making a career of iOS development, it can be difficult to know what you’ll eventually have to learn (after you’ve mastered the basics). But despite the huge amount of subjects out there to study, all senior app developers basically just have to be able to answer two questions. And if you understand that, you can map out your own curriculum of study, depending on your career goals or the company you want to work with. So what are those two questions?

Can you make the apps better?

Any competent junior iOS programmer can write strong code and work as part of a team to get an app finished and deployed to the App Store. But that’s not the end of the story. In fact, it’s just when the real work begins! And the senior developers are the ones who lead the way in taking responsibility for the continued development and improvement of the apps their teams create. Why? Because consumers—and reviewers—are ruthless. And competition is fierce. Give the market a less-than-stellar user experience, and you might find your app deleted from iPhones all over the world. So continuous app development and improvement is a core skill for any senior developer to master. This means exploring topics like how (and why) to use continuous integration tools such as Jenkins. It also might mean really learning how to use the full power of the Xcode IDE by mastering its UI tests and debugging tools. And the second question for a senior developer to answer? Similar to the first, but this time the focus is on the people, not the technology:

Can you make your team better?

Senior developers need to be good leaders and coaches, since app development is increasingly a team activity, and since app support and improvement—especially if your app becomes really popular—is something that really can only be done by a team. So this might mean developing project management skills in a popular methodology such as Agile. But it can also mean learning how to coach or even teach new recruits the basics of iOS development—or helping more experienced but still junior programmers improve their craft with constructive feedback and targeted development plans.
Share this article:
You may be interested in these articles