Happiness is… a freshly organized codebase
May 7, 2020

Summary
This post details the first stage of organizing the Slack iOS codebase. It describes the problem of a chaotic file hierarchy with ~13,000 files and ~27 top-level directories, leading to developer frustration. The solution involved two stages: first, organizing high-level directories (main target, extension, frameworks), and second, tackling source file organization within App/Source. A Feature/Topic/MVVM+C pattern was adopted for the latter. Tooling was introduced, including Danger rules to prevent new files from being added to old directories and to enforce co-located tests. The post also outlines ongoing 'folder housekeeping' rules and the creation of a dedicated Slack channel for questions.