When you start a project, and you try to plan for the future. Protocols help you do that — you use protocols to define what objects can do, what their interface is, and your vision is a neatly-scoped protocol-oriented future.
When building products, it’s normally best to work until you get things right. To build, to iterate, to refine, and then finally to publish. That iteration polishes the roughly-chiseled idea into a smooth stone.
How can you detect when the user connects their phone to their car’s stereo? This simple question that came up during a feature brainstorm session proved to have a surprisingly complicated answer. Let’s dive in.