You are not the only one that has a problem with this, I've been going through same problem with many of the projects. So the best solution to this problem is the open source libraries. The good ones are usually updated often and keep up with Apple's SDK releases. I will explain what I use to keep boilerplate code at a minimum.
Base model - Since I only use Network and Core Data models, I use
MagicalRecord
for Core Data andJSONModel
for network based models (that map to API responses).Networking classes - are coupled with
AFNetworking
and previously mentioned JSONModel, I did not find to need anything else. I can easily extend those with categories.There are many libraries to avoid
UITextField
's with keyboard in aUIScrollView
, but mostly I just use custom code. But if I need one, I followTPKeyboardAvoiding
. For crash tracking I just use Crashlytics or Flurry, they provide their own SDK, so I do not need much code. And I do not use NIB's anymore.There are many useful categories around on the web. I created my own repository as a CocoaPod, which keeps all useful categories in a single pod. I keep the repository up to date and add new categories and small classes when I need them. The down side of it is that you usually do not need all of them, so sometimes too much code is loaded. But until now I did not notice any performance downsides. If you want, you can take a look on GitHub, how it looks.
Do not forget about project initialization, I've been working on my own custom Xcode project templates to solve this problem.