Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building apps at Shopify with React Native + Ko...

Avatar for Bruno Aybar Bruno Aybar
November 14, 2025
4

Building apps at Shopify with React Native + Kotlin Multiplatform

Building mobile apps is hard, and the technical landscape changes constantly. At Shopify, we've gone "all-in" on React Native as our default for mobile development. But what happens when you hit the limitations? What about ultra-high performance needs, extensive processing, or heavy background tasks ?

This talk is a real-world case study of our "React Native-first" approach and how we pragmatically solve its limitations by integrating Kotlin Multiplatform (KMP). We will demonstrate that "context matters" and that the best solution is often a hybrid one.

Avatar for Bruno Aybar

Bruno Aybar

November 14, 2025
Tweet

Transcript

  1. Context matters a lot when taking tech decisions. Building mobile

    apps is hard. Mobile landscape changes frequently.
  2. • Discuss every single pitfalls of a given technology. •

    Try to convince you that React Native is the best approach out there. • Try to convince you that Kotlin Native is the best approach out there. • Specifics about how we do React Native / KM at Shopify. Out of the scope of this talk...
  3. - Farhan Thawar, 2020 React Native is the Future of

    Mobile at Shopify Public blog post: https://shopify.engineering/react-native-future-mobile-shopify
  4. 2020 Shopify officially goes RN-first 2021 5 fully RN apps

    Still a handful native apps 2018 - Experimentation - Shop (prev: Arrive) written in RN. - POS Android written in RN. - Compass (deprecated) written in RN. - Analysis: - Native vs Flutter vs RN Brief but company-wide RN experimentation 2015
  5. Three key areas: - Developer Support / Happiness - Maintainability

    - Performance / User Experience Framework comparison
  6. - Farhan Thawar, 2020 React Native is the Future of

    Mobile at Shopify Public blog post: https://shopify.engineering/react-native-future-mobile-shopify
  7. There are situations where React Native would not be the

    default option for building a mobile app at Shopify: • deploying on older hardware (CPU <1.5GHz) • extensive processing • ultra-high performance • many background threads. When Will We Not Default to Using React Native?
  8. There are situations where React Native would not be the

    default option for building a mobile app at Shopify: • deploying on older hardware (CPU <1.5GHz) • extensive processing • ultra-high performance • many background threads. When Will We Not Default to Using React Native?
  9. - Point of Sale (POS) app - A huge #

    of background processes to keep data up to date. - JS implementation was slow! And when jobs were running the app was unresponsive. Native Sync overview
  10. Goals: - Increase responsiveness to provide merchants a better experience.

    - Provide same experiences across platforms by reusing code. Introducing KMM
  11. 2020 Shopify officially goes RN-first 2021 "Management of Native Code

    and React Native at Shopify" 2019 Internal research: "Kotlin Native At Shopify"
  12. Some key areas of research: • How much code can

    be shared • Infrastructure • Concurrency model • Memory management • Compiler implications • Runtime performance
  13. Regarding the research: • Conducted by experts in native mobile

    technologies. • Back then, Kotlin Native was still experimental and the roadmap was still not fully settled. • Shopify worked closely with Kotlin Native teams, back when it was still experimental.
  14. - 4-5 Internal SDKs were developed as multiplatform libs and

    are still being used. - Those libs mostly deal with "lower level" integrations for which we still have business logic to be shared. - More info, see the Native section of "How We Write React Native Apps" Building native code with KMP
  15. - Internal research: "Kotlin Native At Shopify" - Multiple native,

    multiplatform libs that pre-date full RN adoption. 2020 Shopify officially goes RN-first 2021 "Management of Native Code and React Native at Shopify" 2019
  16. Using KMP in the context of a RN-first project... …

    but also within the context of an standard native project Building native code with KMP
  17. Context matters a lot when taking tech decisions. Building mobile

    apps is hard. Mobile landscape changes frequently.
  18. Resources • React Native is the Future of Mobile at

    Shopify (article): https://shopify.engineering/react-native-future-mobile-shopify • How We Write React Native Apps (video): https://shopify.engineering/shipit-writing-react-native-apps • Management of Native Code (article): https://shopify.engineering/managing-native-code-react-native