Dependency Deep Dives: IMDb's 20 OSS Building Blocks
Kicking off a new series dissecting the third-party libraries inside everyday iOS apps, starting with IMDb's 20 open source dependencies.
Introduction
Start a practical series: dissect real production apps by listing and contextualizing their third‑party dependencies. I am using IMDb daily for watchlists, reviews, and actor bios, analyze how its iOS app assembles performance, storage, networking, and reliability with 20 open source libraries. Use this as an architectural lens, not a marketing tour.
The Stack: IMDb’s 20 Libraries
TMCache — parallel memory/disk object cache for expensive objects https://github.com/TumblrArchive/TMCache
CocoaLumberjack — high‑performance, flexible logging across Apple platforms https://github.com/CocoaLumberjack/CocoaLumberjack
Protocol Buffers — efficient binary serialization for structured data https://github.com/google/protobuf
Bolts-ObjC — task/promise primitives and App Links protocol support https://github.com/BoltsFramework/Bolts-ObjC
JUCE — cross‑platform C++ framework, strong in media/audio components https://github.com/juce-framework/JUCE
JUCE (WeAreROLI) — older JUCE repo, historically used by many apps https://github.com/WeAreROLI/JUCE
KSReachability — modern, thread‑safe network reachability with blocks/KVO https://github.com/kstenerud/KSReachability
Mantle — lightweight model layer with JSON mapping for ObjC https://github.com/Mantle/Mantle
Apollo iOS — strongly‑typed GraphQL client with caching and codegen https://github.com/apollographql/apollo-ios
libextobjc — ObjC language extensions via macros and categories https://github.com/jspahrsummers/libextobjc
NHBalancedFlowLayout — balanced Pinterest‑style UICollectionView layout https://github.com/njdehoog/NHBalancedFlowLayout
RxSwift — composable async with Observables and operators https://github.com/ReactiveX/RxSwift
SQLite.swift — type‑safe Swift wrapper over SQLite3 https://github.com/stephencelis/SQLite.swift
UICKeyChainStore — minimal Keychain wrapper across Apple platforms https://github.com/kishikawakatsumi/UICKeyChainStore
XMLCoder — Codable‑first XML encoder/decoder in Swift https://github.com/MaxDesiatov/XMLCoder
PLCrashReporter — in‑process crash capture and symbolication https://github.com/microsoft/plcrashreporter
FMDB — mature ObjC wrapper around SQLite with queueing APIs https://github.com/ccgus/fmdb
GZIP — NSData gzip compression/decompression helpers https://github.com/nicklockwood/GZIP
Branch iOS SDK — deep linking and attribution https://github.com/BranchMetrics/ios-branch-deep-linking-attribution
XMLDictionary — NSDictionary/NSArray‑centric XML parsing/generation https://github.com/nicklockwood/XMLDictionary
Architecture Signals
- Progressive migration: Swift (RxSwift, SQLite.swift, Apollo) alongside ObjC (FMDB, Mantle, libextobjc) allows feature work in Swift while stabilizing legacy layers
- Data versatility: GraphQL via Apollo for typed queries, Protobuf for compact transport, dual SQLite stacks for old/new code paths
- Performance posture: TMCache for read paths, GZIP for payload size, Protobuf for CPU/IO efficiency
- Reliability posture: PLCrashReporter for crash fidelity, KSReachability for offline/poor‑network behavior, Keychain wrapper for secure tokens
- UI composition: NHBalancedFlowLayout for media grids, CocoaLumberjack for debug/ops visibility
Practical Takeaways
Prefer typed networking: adopt GraphQL (Apollo) or Protobuf contracts to reduce runtime mapping bugs Apollo iOS docs: https://www.apollographql.com/docs/ios/get-started
Decouple cache tiers: pair in‑memory and disk caches to stabilize image/JSON fetch paths; PINCache is a modern alternative to TMCache
Stage storage migrations: run FMDB for legacy while introducing SQLite.swift in new modules to avoid big‑bang rewrites
Harden telemetry early: integrate logging and crash reporting before feature scale to keep regressions observable
Conclusion
This dependency map explains why IMDb feels fast, resilient, and consistent: efficient data formats, layered storage, typed APIs, and strong observability.
Full list of IMDb iOS open source dependencies: https://www.imdb.com/iphone_app/terms_thirdparty_ios?from_app=ios
☕ Support My Work
If you found this post helpful and want to support more content like this, you can buy me a coffee!
Your support helps me continue creating useful articles and tips for fellow developers. Thank you! 🙏