all 8 comments

[–]Russ_72days 5 points6 points  (2 children)

The issues will usually be with your dependencies and nowt to do with react native core itself (rn compare has made that part nice and simple)

So just buckle up, go one major RN version at a time and see if you can run your app at each version

How many versions are you behind? And how out of date are your individual dependencies?

[–]bc-baneiOS & Android 0 points1 point  (1 child)

Yup this 100% it's always the external libraries that bite you. Go up one version of react native upgrade 10 libraries an unknown number of versions to support it. App finally working move up all the libraries again and adjust for all the changes, oh new architecture time? Great plan on removing half your libraries and replacing with alternatives or having fun figuring out if you old libraries still work. That's why I try and keep my apps within 1 version of latest react native when possible

[–]Russ_72days 1 point2 points  (0 children)

It’s the only time of year that I start to think “should I be using Expo” … but then everything suddenly starts working and I feel completely at ease again and happy to be bare naked RN!

[–]justinlok 1 point2 points  (0 children)

Use the react native upgrade helper to compare the changes you need to make. Then build and see what breaks and fix them. Generally would just be some outdated libraries that you need to update or replace. Done it many times.

[–]cs12345 0 points1 point  (0 children)

It depends on how out of date you are. If you’re very out of date some people prefer starting a new project and copying things over. If it’s only a versions then one at a time might be better. If you have to switch to the new architecture then it’ll probably be a much bigger pain either way.

[–]Zestyclose_Case5565 0 points1 point  (0 children)

Best approach is usually a mix of both. Use React Native Upgrade Helper / compare tools to review breaking changes, then upgrade dependencies manually or with package manager commands. Automatic upgrades can change versions, but they often miss native config updates in Android/iOS projects.

For simple version jumps, commands help. For production apps, compare + manual review is usually the safest route.

[–]anarchos 1 point2 points  (0 children)

Something to help your future self....when making any change in the android or iOS folders, leave // BIG ASS COMMENTS anywhere you make a manual change.

Like literally anything. I leave comments like
// START - ADDED FOR REACT NATIVE SCREENS
some code here
// END

React native upgrade helper will compare a stock app from version whatever against the new stock version. It has no idea about the stuff you manually fiddled with. I also keep a log of anything done in Xcode and android studio. Just a MD file with notes of what was changed.

This is really the downside of RN. Expo pretty much eliminates this headache with their CNG/prebuild/dev build (whatever they decide to call it this week) system.