GraphQL on iOS: How We Decided Against Apollo & Where We Went Next
Article Summary
Handshake chose NOT to use Apollo for GraphQL on iOS. Here's why that unconventional decision made perfect sense for their team.
Principal iOS engineer Joel Kin explains how Handshake adopted GraphQL to unify their web and mobile APIs, but took a different path than most iOS teams. Instead of the popular Apollo client, they built a lightweight custom solution that worked with their existing architecture.
Key Takeaways
- Apollo requires small, query-specific models but Handshake maintains full client-side cache
- Apollo handles networking, caching, parsing, and data flow (all already solved at Handshake)
- Custom GraphQL abstraction uses existing networking stack with hand-written queries
- Solution slots into existing codebase with minimal friction versus complete restructure
- Prioritized continuity over revolution in their mature, multi-year codebase
Critical Insight
For mature codebases with established patterns, a simple custom GraphQL implementation can deliver API unification benefits without the overhead of restructuring around an opinionated framework.