software design

Shared code series

This is a series on sharing code and the software design strategies surrounding it that I have found to be effective.

These thoughts are based on my experience maintaining the Three20 open source iOS framework, creating the NimbusKit open source iOS framework, paving the foundation of shared iOS user interface (UI) code at Google starting with my work on Google Maps iOS, and my ongoing efforts to design sustainably-developed shared code at Google and beyond.

Much of this thinking is biased toward designing shared UI code, but I think that much of it can be applied to shared code in general.

What is shared code?

Shared code is code that will be used by anyone other than yourself or your team.

In a large company, this might be code used by many different teams or applications.

Practically speaking, open source code is shared code.