How to become an expert in iOS development

Yura Istomin
4 min readJul 25, 2021

--

Usually people beginning their way in iOS development imagine the studying area like this:

iOS development through the eyes of a beginner

After weeks or months of studying, a newbie begins to understand that iOS development is more than just the Swift language and some UI frameworks. Even for junior positions companies require a good knowledge of some additional tools and technologies, like algorithms and data structures, design patterns, architectures (MVC, MVVM, MVP, VIPER, etc), networking, databases, animations, package managers, and so on.

Required knowledge for junior iOS developer

Although the number of skills listed above looks solid, it is still not enough for a developer who can create great world-class apps for iPhone and iPad.

In fact, iOS development includes even more tools, technologies, and practices. And a great developer should be familiar with most of it. But don’t be afraid — you don’t need to use everything at once. For building your first app you’ll be fine with basic knowledge of these technologies. But the studying process should be continuous, even after years of practice.

So only two things you have to possess if you want to become an awesome iOS developer — passion and curiosity.

As you continue to read this article, I suppose you have these two traits. So let’s take a look at skills that are necessary for a proper iOS developer.

Computer Science, iOS Platform, Product Thinking

These are three areas in which you should always master your skills.

Computer Science

Do you want to create effective and optimized programs that will work smoothly on all devices? Then you need to know how these devices work under the hood. I don’t say you should know how to build an iPhone from scratch, but it would be useful to know what CPU, memory, and operating system are, and also how they work with software.

Knowledge of the basics of programming also would be helpful. Learn what are variables, functions, operations and data types. Then learn algorithms and data structures.

When you know how to write simple programs, learn Swift deeper. Explore structures and classes, properties and methods, initialization, inheritance, extensions, protocols, generics, memory management, and so on. You should master your main tool!

And don’t forget to practice. Practice as much as you can!

What to Learn in CS

iOS Platform

When you know the basics of computer science and have a great knowledge of Swift, you can begin to study iOS SDK, frameworks and tools. Always try to apply your knowledge in practice. Create applications, scripts, pet projects. Dive deeper into the frameworks and libraries you explore. Knowing algorithms, data structures, language, and hardware a little you can understand the internals of these tools easier.

What to Learn in iOS

Design and Product Thinking

The last area is essential for developers to create not just apps, but great products. The following skills are necessary to build applications for a large audience and to work in teams that create world-class products. Knowing these things you will be able to build your own business or grow yourself as an experienced software developer in another company. But even if you work in a small team or on your pet project, these skills will help you to make better things.

What to Learn in Design and Product Thinking

Conclusion

I’ve prepared a full checklist of the skills on GitHub. You can get in from this repository. Most likely I’m going to maintain this repository adding new subjects. Also, I’d like to cover all of the topics with external links where you could learn about each one.

Probably, you could also contribute to this work. If you know useful recourses covering any subject, leave a link in the comments below, or open a pull request to the GitHub repository.

Also, I’m open to any suggestions. So, if you think I should add somethings to the list, let me know.

🐥 Follow me on Twitter to read more about iOS and Apple development!

Join our Apple Dev Talks chat in Telegram!

--

--