Everything a Competent iOS Developer Needs to Know [Graphic]
How much do you need to know to be great?
In most areas of expertise, there is a bounded corpus of knowledge, that practitioners can expect to expound on at coffee shops or analyze on their blogs.
If you want to make a mobile app for an iOS device, you are operating at the intersection of software, design, and Apple's particular development philosophy and tools. True competency requires successfully drawing on key concepts from each of these areas (and filling in your own blanks).
So let's take a look at what the corpus looks like for iOS7 developers.
You can download a PDF poster version of this here.
Some concepts here are needed for any kind of software project. Much of this would overlap with similar tools in the Android world. But if you can speak casually about each of these leaf nodes, you can count yourself among the professionally-skilled mobile developers of the day.
The Best Way to Learn
If you are feeling like you haven't yet arrived at iOS competency, or are just getting started with mobile development, here's some hints to sharpen your skills.
Have a path forward
Use the above graphic as a map of the landscape. Plan how you can pick your way from where you are to where you want to be.
Break it down
For each new concept you want to add to your toolbelt, identify the small pieces of which it is composed. Learn each chunk individually. Then learn to combine the chunks
Get a guide
We learn the best when we can see the best in action. Find someone, a mentor or teacher or tutor or buddy who's figured it out, and spend time watching them work.
Your guide will also be able answer specific questions you have, and get you un-stuck should you hit any road blocks in your learning.
Join a community
Get together with other learners. They will provide inspiration and motivation for you to continue and stay consistent when you feel overwhelmed or off track.