Browsing Q&A websites I often find people having problems when learning iOS development through tutorials:
“I just don’t know how to make my own code. I can go through these tutorials and write their code and understand, I just don’t know how to implement it all by myself.”
This is understandable. Authors suppose their tutorial will introduce you to a topic, but all they do is to show you something without giving you the understanding of what you are doing. In the end you are only copying someone else’s code.
Since the introduction of Swift, optionals seem to have used a lot of confusion for people learning the language. I have to admit that at the beginning it took me a while too to wrap my mind around them. The cause was that I didn’t take the required time to fully understand them. Continue reading
Recently one of my email subscribers wrote me this:
What I find is that I’m learning the various steps but I do not understand the “big picture”. For me, a guideline, would be helpful. I know Swift is available but I do not even know object oriented programming. I’d really like to see a “roadmap” that says: if you know or do not know this, start here and learn this, then this, etc.
iOS apps are built according to a widespread programming pattern: the model-view-controller pattern (or MVC). The MVC is a high-level pattern used to describe the global architecture of an application and to classify objects according to the general roles they play. In MVC objects tend to be more reusable and programs are more easy to change.
After seeing how classes and objects work in Objective-C, this part will be completely dedicated to types in Objective-C. This feature comes straight from C, but it’s still extensively used in Objective-C programming, including Apple libraries. Since you will encounter this quite often, it’s worth to spend some time having a look at this feature.
Table of contents
Defining custom types
Constants and enumerations
Bitwise operators and bitmasks
Now that we know how to create our own classes, we will go over some useful features of the languages to deal with the organization of class interfaces and memory management.
Table of contents
ARC and memory management