Thumbtack Felipe Cypriano

How Thumbtack Adopts Swift: Migrating to Frameworks on iOS

Original post Adopting Swift: Migrating to Frameworks on iOS

Article Summary

Felipe Cypriano from Thumbtack reveals how migrating iOS apps to frameworks nearly derailed their Swift adoption—until they discovered a clever workaround for binary dependencies.

Thumbtack's iOS team needed to migrate from static libraries to frameworks to enable Swift in their shared codebase. What seemed like a simple CocoaPods configuration change turned into a deep dive through build errors, runtime crashes, and dependency conflicts with Crashlytics and Google Maps.

Key Takeaways

Critical Insight

Thumbtack successfully migrated to frameworks by creating adapters for binary dependencies and moving images out of asset catalogs, finally enabling Swift across their shared iOS codebase.

Continue reading

What This Article Covers

Problem

Thumbtack's two iOS apps, one for consumers and one for pros, ran into duplicate symbol errors. The issue happened because test target dependencies relied on app target dependencies, which is a constraint specific to static libraries that made it hard to organize the code properly.

Solution

Felipe Cypriano's team made incremental changes in small chunks and tested each one carefully. When they hit nonsensical build errors, they used `pod deintegrate` followed by `pod install` to regenerate CocoaPods references.

Impact

The migration let Thumbtack use Swift as their primary iOS language. They built a modular architecture where each library lives in its own module instead of being compiled into a single binary.

The article includes complete adapter code that any team can use to work around the same CocoaPods framework limitations.

This page summarizes “Adopting Swift: Migrating to Frameworks on iOS” by Thumbtack, published Aug 2, 2016. All credit for the original work goes to the authors.

Read the original on medium.com (opens in new tab)

AI tools for iOS

Browse all AI tools →