Yes, There's a Library for That
No, I'm Not Using It (Yet)
I'm not fond of external dependancies. I'm willing to tolerate the truly huge ones like the compiler, the language, the operating system, the hardware, and the standard libraries from my platform vendor. I couldn't implement all of those myself even if I wanted to.
After you step outside of that realm any other libraries tend to worry me. There's the issue of who's maintaining them, but really the issue is that I don't want to use an external library to cover a hole in my knowledge or capabilities unless I have to.
A great example of this is Auto Layout. Until recently, I didn't really understand the guts of how it worked. I've now started to understand the topic, written a passable set of helpers, and have been working a project where I've been doing all of the layout in code and treating any constraint failure as an immediate error that must be fixed. This means that I'm just starting to feel like I have a handle on the subject. Now that I've put in the hard work and banged my head against the topic enough, I'm seriously considering picking an external set of helpers like Snapkit or Cartography so that I'm not constantly hacking on and maintaining my own helper methods.
The thing is, having done the hard work on my own learning the topic means I understand the errors better, will hopefully avoid having patterns that I follow "just because," and have a useful skill at the end rather than just a solved problem.
this is also part of why I wrote my own command line parser, am playing with wrapping NSXMLParser
for Swift, wrote my own not-as-great networking stacks before picking up AFNetworking
, and so forth.