Replacing legacy code using Swift protocols

Legacy code is often best dealt with on an ongoing basis, refactoring in small steps rather than trying to refactor large chunks. In this post, John Sundell describes his approach to refactoring legacy code, based on using Swift protocols to refactor in steps without breaking too much.