Skyscanner / backpack

Backpack Design System for the Web
https://skyscanner.design
Apache License 2.0
496 stars 185 forks source link

Split of React Native and React components? #2307

Closed smksnutmeg closed 1 year ago

smksnutmeg commented 2 years ago

Hey guys, curious to know why you split out react native and react web components into separate repos? I recall them being in the same repo originally.

Thanks, Shaun

olliecurtis commented 2 years ago

Hey @smksnutmeg

Thanks for your message. You are correct and originally them being in the same repo.

The reason they were split out was due to maintenance and having to manage it in the same repo as they were differing in direction and we weren't sharing code across platforms and treating them as separate projects.

We also wanted to change the direction of React Native into more bridged components with native and found having it in the same repo just became a bit more difficult to manage having all the projects in the one repo.

Its worth noting React Native though is now in maintenance mode as we move away from React Native to more native development itself for our design system

Hope that helps answer your query? Ollie

smksnutmeg commented 2 years ago

Very insightful thanks! So React Native, was there any reasoning to move in the direction of full Native? We were looking into adding a react native component in each package alongside our web components, but we may think about breaking into a separate repo from the start to avoid the diverging issues you speak of. Any other learnings to share based on your experiences? Much appreciated, thanks!

olliecurtis commented 1 year ago

Hey,

Apologies its been a while since this last message!

was there any reasoning to move in the direction of full Native?

This was due to experience within the team and the fact we had established Native Backpack library also but also how we wanted to better utilise the platform specific features/functionality and new tech e.g. Jetpack Compose or SwiftUI - which we couldn't use whilst having React Native. So have gone down the route of three platforms of Web, Android and iOS

Thanks!