Few book recommendations that will make you a better developer
I have selected a few books from many I have read and wrote up why I think these are great choices for iOS developers.
Before we get started I just want to point out that there are not sneaky affiliate links in this post, it is not paid promotion and I bought all the books mentioned with my own money.
With that out of the way, let’s get started. Also I would like to point out that those books are not suitable for beginners because they don’t explain basic topics.
The order of the books is purely random.
As the name suggest this book is all about Core Data framework. I have read it relatively recently and I still regret not reading it sooner. Thanks to great explanations and best practices provided here I no longer fear Core Data and rather enjoy using it. In the past it seemed way to complicated so I rather opted for Realm which in hindsight was a mistake I wish I avoided.
This books provides detailed tips on how to correctly setup your Core Data stack so it works great and you don’t have to fight it. I also adopted a lot of protocols and extensions shown to make my Core Data code shorter and much less prone to errors.
I also managed to solve at least two complex bugs in app I was working on thanks to knowledge gained through this book. One was batch deletion with
NSBatchRequest (because this bypasses the managed context you need to refresh the affected objects) and another with merging changes from background context to main one.
One downside is that the book has not been updated recently but because Core Data is such a prevalent way of persisting data in iOS apps and there are not many advanced materials available (or at least for Swift 4 and up) I think this is a must-read for any serious developer.
I had read this one around WWDC19 and to this day I am going back to it pretty frequently. I still remember "fighting" with AutoLayout when learning in the first months and then I thought I pretty much got it. Sometime later I discovered that I have a lot of knowledge gaps in building UIs like what the hell does compression resistance even mean? I found about this book via Twitter and I am really glad I did.
Even though I read it while SwiftUI was all the rage following its introduction much like Core Data book I am super glad I bought this one and read though it.
The book is structured in a way that almost all chapters end with challenges which I made sure to built all to solidify what I learned. Apart from many tips on building UI with AutoLayout and how to best structure constraints I also learned what is happening under the hood, how to best work with layout guides, priorities and the infamous Content Hugging and Compression Resistance. There are also great chapters on debugging and size classes.
I know UIKit is now kind of living under shadow of SwiftUI but it will be there for a long time and this book will surely help you make better UIs.
Paul Hudson has just a crazy amount of books available for Swift developers (I am specifically not mentioning iOS because you can get tvOS, Swift Coding Challenges, Vapor and many more). I have read and worked through a lot of books by Paul and I think Pro Swift was one of the best. It is very practical introduction into Swifts well "pro" features which are clearly explained along with examples. There is very detailed chapter on pattern matching, on closures and big part of the book is dedicated to functional programming.
Although some of the chapters could be a bit longer to cover more on the other hand thanks to the book on being on point you can quickly return to it and find what you need.
I have also enjoyed Advanced iOS books by Paul and others like Hacking with tvOS and currently Hacking with watchOS to broaden my horizons. ⌚
This one is a bit of an outlier. I found it quite by accident I think and because at that time I did not have any in-progress book decided to pick it up on Gumroad. The price is quite low and I wanted to support NSHipster.com.
The book itself has very sophisticated writing I have to say and I learned a lot of new English words not related to programming 😄
Reading about those obscure topics was a lot of fun and even though you wont make use of these weekly I think it is still super nice to be aware that they exist. It is much easier to find what you need when you are at least aware of its existence and have an idea what to search for. For example chapters on Locale and available formatters were very useful to me and I used them in a project just recently.