Amen! I hear all that you noted loud and clear.
My first app was based on Obj-c, but am (now) finding that Swift is much cleaner, but it too, has its own unique caveats. (Isn't this true of everything in life?) Regardless, I am enjoying all that Swift has to offer, but without ebooks such as Matthijs's and all the other ebooks and knowledge offered here, I am quite certain that my dev progress would be very slow indeed.
As I read your learning comments I felt as though I had written those words because my habits are very similar to yours. However, my preference is to read an entire tutorial first (often several times) before I launch Xcode and build the app.
I used to peruse tutorials to see if there was something in the tutorial app that interested me and if not, I would skip it and move on to another tutorial. I think I did that because at that moment in time my mind was set on finding code that would bring one of my apps to life. In hindsight, while I may have learned by so doing, I did myself a disservice because that was NOT the way to really gain knowledge and improve my skill level.
Today - and I really have to thank Matthijs for this, I view tutorial learning much differently that I previously did. His tutorials are embedded with so much information that if a person takes the time to grasp all that he notes you cannot help but learn. The Checklists demo app that he builds is great all by itself, but IMHO the knowledge that he imparts while so doing is mind boggling. I have never worked through a tutorial where the author not only dissects (and re-dissects) the main character, in this case table views, but he also clearly explains delegation and its importance in dev development. I’ve read about the importance of delegation over and over a million times, but Matthijs brings it to life with crystal clear examples AND its application in a real app. Amazing!!
I think it is also fair to say that if you are new to app development or have not made a lot of coding errors you will not appreciate the wisdom that Matthijs imparts in each of his tutorials. IMO, he defines, in great detail, all the building blocks (knowledge) that you will need to build your next app. It’s one thing to know how to use a certain framework/API, but it’s more important to know why you need it and how it actually functions. Matthijs is a master at defining all of this for you.
Lastly, and again Matthijs points this out as well, I need avail myself of Apple’s dev documentation on a much more regular basis. He is not the first to make this point to me, but this time I need to heed this advice.