Migrating to React Native: A Long-Term Retrospective

Migrating to React Native: A Long-Term Retrospective

Presented June 25, 2020 remotely for the Mobius conference based in St Petersburg: https://mobius-piter.ru/en/2020/spb/talks/5rurofsaorksrtqprfpqsm/

0ebf471a3ae8df42a84f93a7efbbdbd0?s=128

Ash Furrow

June 25, 2020
Tweet

Transcript

  1. Ash Furrow, Mobile Experience Tech Lead @ Artsy Migrating to

    React Native A Long-Term Retrospective
  2. Story Time

  3. None
  4. Mobile Web 3 Engineers Objective-C and Ruby 7 Engineers Ruby,

    CoffeeScript/JS UIKit Mostly Backbone 2014
  5. Eigen https://github.com/artsy/eigen

  6. /artist/banksy Router View Controller /artist/:id URL https://artsy.github.io/blog/2015/08/19/Cocoa-Architecture-Switchboard-Pattern/

  7. https://artsy.github.io/blog/2015/08/24/Cocoa-Architecture-Hybrid-Apps/ Native Web Native *TAP* *TAP*

  8. Swift

  9. Eidolon https://github.com/artsy/eidolon

  10. None
  11. Add Swift to Eigen 2016

  12. Let’s try out React Native 2016 https://artsy.github.io/blog/2017/07/06/React-Native-for-iOS-devs/

  13. Swift: a new approach to building software in an old

    way. React Native: a totally new, better way of building software.
  14. Most Apps Are Only a UI For an API

  15. Emission https://github.com/artsy/emission

  16. https://artsy.github.io/blog/2018/04/17/making-a-components-pod/ Emission Eigen Podfile

  17. /inbox Router View Controller /inbox URL

  18. JavaScript TypeScript

  19. Re-org 2016 https://artsy.github.io/blog/2016/03/28/artsy-engineering-organization-stack/

  20. Product Team 3–6 Engineers (web, mobile) 1 Designer 1 Product

    Manager 1 Data Analyst
  21. Pausing on Swift & Objective-C 2016 2017 https://artsy.github.io/blog/2017/02/05/Retrospective-Swift-at-Artsy/

  22. GraphQL, Relay 2016 2017 https://artsy.github.io/blog/2019/04/10/omakase-relay/

  23. Relay GraphQL Request https://ashfurrow.com/blog/the-spirit-of-moya/

  24. X React Native https://artsy.github.io/artsy-x-react-native

  25. Changing My Mind on RN https://ashfurrow.com/blog/swift-vs-react-native-feels/

  26. Palette: Artsy’s Shared Component Library 2016 2017 2018 https://github.com/artsy/palette

  27. <EntityHeader name="Christopher Wool" meta="American, b. 1955" imageURL={…} FollowButton={…} />

  28. Continuing New Work in React Native 2016 2017 2018

  29. Invest in Training 2016 2017 2018 2019 https://github.com/artsy/README/tree/master/resources/mobile/learning-group

  30. Created MX Team 2016 2017 2018 2019

  31. Combining Repos 2016 2017 2018 2019 2020

  32. Five Teams Building iOS Software

  33. None
  34. App ranking hits 4.7 2016 2017 2018 2019 2020

  35. None
  36. 2016 2017 2018 2019 2020

  37. Lessons 1. React Native: Effective, When Used Well 2. You

    Still Need Native Experts 3. “Incremental Revolution” 4. Use Culture to Drive Tech Decisions 5. You Need an Empowered Team 6. Technical / Cultural Debt
  38. React Native: Effective When Used Well

  39. You Still Need Native Experts

  40. Incremental Revolution

  41. Use Culture to Drive Tech Decisions

  42. Decide What You Want Your Culture To Be Make Tech

    Decisions To Support That Culture The Tech Choices Influence Your Culture
  43. You Need an Empowered Team

  44. Technical / Cultural Debt

  45. What’s Next?

  46. “Tout comprendre, c’est tout pardonner.” “To understand is to forgive.”