I plan to write some coding guidelines for iOS extending what’s here (not much, I know), but one thing I need to warn right now, just in case:

If you add any external libraries, don’t modify them.

That said, if you need to change them to fit our app:

  • Make it generic enough to be accepted by the original developer, if it fixes a general problem
  • Try creating a subclass, or find other workaround, if it’s too specific to our app
  • If you absolutely must modify the library, at least commit a clean copy of it to svn, then apply your changes and commit. This way we can have a diff of what we’ve modified and update the library easily in the future

This came from trying to update the XMLRPC library. Our version was really old, the first version committed to our svn already had modifications, in all this time they moved from svn to git losing the history. There was no sane way to figure out what our changes were compared to the original version to port them over the latest version, so I had to take a guess (only picked the changes after it was added to svn)