Developing Reusable Components for iOS
Article Summary
Tobias Carryer from Hootsuite built a reusable iOS framework during his summer internship—a sliding drawer component inspired by Apple Maps. Here's how he turned it into a production-ready, testable framework that ships across multiple apps.
Writing reusable iOS components isn't just about code—it's about architecture, testing, and developer experience. Carryer shares the framework development workflow Hootsuite's iOS team uses, from Carthage dependency management to snapshot testing with Uber's library. His Bottom Drawer framework now powers Hootsuite's social profile picker.
Key Takeaways
- Split frameworks into separate Xcode projects and GitHub repos for faster compilation
- Build demo apps alongside your framework to interact with changes instantly
- Use snapshot testing to catch unintentional UI changes automatically
- Limit public files to create obvious entry points for other developers
- Carthage enables one-click framework updates via GitHub releases
Reusable iOS frameworks save development time when built with separate projects, comprehensive tests, and minimal public APIs that make integration obvious.
About This Article
Tobias Carryer needed to reuse a component across multiple iOS apps at Hootsuite. The challenge was avoiding code duplication and keeping compilation times fast for the main application.
Carryer moved the Bottom Drawer framework into its own Xcode project and GitHub repository. This let the team use Carthage for dependency management and push updates instantly through GitHub releases.
The framework reduced friction in development. Teams could iterate quickly with demo apps and snapshot testing. Hootsuite's social profile picker and future projects could adopt it without recompilation overhead.