Adam, creator of ComponentKit, an iOS open-source framework inspired by React, shares insights on API design, scalability, and challenges of working on Facebook iOS apps. The podcast also covers Spectrum, an image processing library, and discusses topics like declarative UI frameworks, rendering components on a background thread, and breaking up the Facebook app for modularity.
Adam shares insights on API design considerations and building frameworks around scalability and correctness.
Spectrum, a cross-platform image transcoding library developed by Facebook, provides efficient transcoding on Android and iOS with improved support for modular headers and custom SEO load IDs.
Deep dives
React Native's comprehensive update
React Native recently published a comprehensive update about their community, highlighting recent contributions such as improvements to the accessibility APIs on Android and iOS, a new modern design for the app screen, support for the Turbo Module System to guarantee type safety operations in Native, and the introduction of the haste module system for importing modules via global IDs with relative paths.
Android Fragment support in React Native
React Native has extended its support for Android beyond activities to fragments. This is beneficial for brownfield projects where developers may want to incorporate React Native into a smaller portion of the screen. With the addition of React Fragment, developers have greater flexibility in utilizing React Native within Android applications.
Introducing Spectrum: A cross-platform image transcoding library
Spectrum is a cross-platform image transcoding library developed by Facebook. It is designed to handle user-generated images before uploading by allowing efficient transcoding on Android and iOS. Written primarily in C++, Spectrum enables control over memory operations and integrates with other image libraries. The library provides thin wrappers for Android, iOS, Kotlin, and Swift, making it easily accessible to developers.
Spectrum version 1.1 and new features
Spectrum recently released version 1.1, which includes improved support for modular headers in CocoaPods for iOS integration. Additionally, Android users can now specify custom SEO load IDs. The release addresses prior issues and fixes inefficient outputs and color space conversion problems. With ongoing contributions and updates, Spectrum continues to enhance image transcoding capabilities.
Episode 14 introduces Adam, the first dedicated iOS developer that Mihaela and Pascal have hosted on the podcast. Adam created ComponentKit, an iOS open-source framework inspired by React, and he joins this episode to tell the story of how the framework was built and adopted. Adam shares some insight on API design considerations, how to build frameworks around scalability and correctness and what the current challenges of working on the Facebook iOS apps are. Before you hear all about this, Daniel gives a special bite-sized intro to Spectrum, an open-source image processing library for Android and iOS, so this episode is one that can’t be missed! Please do send us feedback! You can reach us via email mobilepodcasts@fb.com, Twitter (@insidefbmobile) or Instagram (insidefbmobile). Topics
Intro 0:00 News: React Native 0:40 News: Spectrum with Daniel 2:10 Interview 8:02 Adam Intro 8:40 Frameworks 10:55 ComponentKit in Newsfeed 13:06 ComponentKit Adoption 14:02 API Regrets 15:05 Size Reduction 16:28 5000 classes 19:14 Correctness as a Feature 21:05 Inspirations From Other Frameworks 23:29 Yoga 26:18 ComponentKit in Open Source 28:47 Handing Off a Project 29:32 Next Challenges 31:47 Rust 36:15 Outro 38:40 Bloopers 41:49
Get the Snipd podcast app
Unlock the knowledge in podcasts with the podcast player of the future.
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode
Save any moment
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Share & Export
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode