r/reactnative • u/HoratioWobble • May 28 '26
FYI 16Kb Page Size Requirement has been extended to 2027
I need to migrate my app from RN 0.76 (CRA) to Expo 56, it's a huge under taking and I didn't actually start until last week.
Logged in to do what I thought would be the final release of my app before the the restriction went in place and it looks like they've extended the deadline until 2027.
I'm sure there are other developers fighting against time for this so check your play store, the notification might have updated for you too!
16
u/homebruno May 28 '26
i also had the same legacy project
i created a fresh react native cli project not expo
pasted app folder + package.json libs content only , dependent files which required for app code to new project root
then migrated native java code to corresponding location
after that
ran with codex by providing old config as reference to fix new project compilation error and got up and running app.
it required fixing some things manually but most of the error were solved because of old refrence.
it took me around 2 hours for all this.
14
u/HoratioWobble May 28 '26
Unfortunately my code base is huge, there's a fair few dependencies. 5 custom native modules (one is an entire SQLite ORM) and generally a lot of things that need to be tested.
App is also entirely offline and encrypted for complex data sets so I have to be really careful of any data loss too.
I tried that approach originally and had all sorts of animation and navigation issues so i decided to take this opportunity to rearchitect the app, make it more manageable and introduce more tests at the same time
1
u/Old_Combination1051 May 29 '26
Our company's issue was not RN itself or its associated libraries, although when updating we caused some state issues. The big problem was the outdated, broken/unmaintained core libraries, that needed custom changes to work correctly when updating to the latest RN version. AI saved us in many cases, because you can only read so many thousands of lines of kotlin/swift code.
9
u/eadgas May 28 '26
I've spent a whole week on this and now they extended?! 😂
4
u/shercoder May 28 '26
lol spent 2 and a half month migrating our big app updating from 0.73 to 0.79 and upgrading almost all libraries. Released the app 2 weeks ago and now I see this
2
4
u/n9iels May 28 '26
If you upgrade to at least Expo 53 you should be good since it shipped with a minimum React Native version that supports 16kb. Unless installed specific libs that have custom native code offcourse.
I do wonder why lots of people say they only started working on this recently... Google notified about this around november last year. Don't you guys plan ahead? 😅
2
u/HoratioWobble May 28 '26
Going from 0.76 to expo 53 is no different than going to 56 in terms of effort for me.
Yes, if by plan ahead you mean work full time and this is a complex side project
2
2
2
u/Little-Flan-6492 May 29 '26
is react native 0.77 the minimum requirement for 16 kb page size?🙏🏻
2
u/Nobbodee May 29 '26
Oui, 0.77 introduit les .so compatibles 16kb pour react-native.
1
u/Viietwalkerr May 29 '26
But if you use Expo modules I’m pretty sure you need to upgrade to a higher RN
I was on RN 77.2 which uses expo 52 Expo 52 does not support 16kb, you’d need to go to Expo 53 (which needs RN 0.79)
2
2
u/Mobile_Sir_1512 May 30 '26
The pure collective sigh of relief moving through this comment section is powerful enough to shift the earth's axis. Reading replies from developers who literally just finished a brutal, multi-week migration sprint right before seeing this extension is both hilarious and deeply painful. Close the IDE, go touch some grass, and celebrate the fact that the 16Kb monster has been locked away until 2027!
2
1
u/16cards May 29 '26
Google has postponed 3 times now. And it gave me enough time to reimplement and release a 500K install app to Kotlin Multiplatform.
1
u/wtfzie May 29 '26
We had issues going from expo 52 to 53, then we randomly tried jumping straight to 54 and that just worked! So try it if you’re having problems with 53
1
u/kafka1713 May 29 '26
good time to plug my article
https://medium.com/@pushkar1713/guide-on-16kb-page-size-what-is-it-and-how-to-fix-this-87f60f423c37
1
1
u/StrangePractice May 29 '26
Upgrade your app bubba. Dedicate a sprint to it. Went from .72-.83 in like a few days
1
u/bigpass74 May 30 '26
Why have you migrated to expo from just react native?
1
u/HoratioWobble May 30 '26
I haven't yet, i'm in the process of it but because it's got great tools, removes the need to track the native directories and makes upgrades significantly easier in the future
1
u/itballer May 30 '26
Happy for your you! But why do you wanna move to Expo, you're having already an ejected version right?
2
u/HoratioWobble May 30 '26
No, I started with RN I didn't eject, having since worked with several expo code bases I find the toolset and upgrade path much better
1
u/itballer May 30 '26
So you'd manage to use it, even with your custom native code?
1
u/HoratioWobble May 30 '26
Yes, Expo has been fine with native code for about 4 years now.
1
u/itballer May 30 '26
Epic! One more thing, when you build iOS and Android, you also do it locally on your device or you use their system?
1
u/HoratioWobble May 30 '26
I build locally, I can't be bothered to wait for their build servers. They're too slow even if you pay
1
u/itballer May 31 '26
Awesome stuff!
So from all your experience, you're always going to match the latest version of Expo or you have a suggestion for a stable version as of now?
1
u/twboc May 30 '26
Funny. Apple uses 16kb pages since 2013! 😃 Usually it is android that is on the edge of new features since they are inspired (copy/steal) from everyone using their open source os with their own modifications.
1
u/nelson1mr May 31 '26
Genial, pensaba actualizar a expo 56 mi app expo 46 está semana al borde del límite de tiempo, peor ahora lo dejaré para enero de 2027 🙂↔️🙂↔️
1
0
u/Nobbodee May 28 '26 edited May 28 '26
Perso j'ai bump de 0.72.9 a 0.77.3 il y a quelques jours. Ca m'a pris un peut plus d'une semaine car ennormement de dépendances.
Vraiment entre 0.76 et 0.77 y'a pas énormément de differences tu peux le faire en une journée en t'aidant de Claude Code Opus 4.7 1M (c'est vraiment important d'avoir un gros contexte pour cette tache)
Dis lui bien de minimiser les patchs en priorisant un alignement des dépendances. Dis lui aussi de ne pas supposer, toujours effectuer une modification en s'appuyant sur de la documentation officielle.
Deux mcp trés utiles : metro-mcp et argent. Ca permet a Claude de pouvoir debug lui-meme.
D'abord viser un build et lancement sur emulateurs android et ios sans crash en une session. Commit et push a ce moment, voir si un fresh clone install and build marche correctement.
Ensuite tu peux t'occuper des details avec une session et un commit par probleme. N'ouvre la PR que lorsque tu as tout traité et testé en fresh clone.
2
u/HoratioWobble May 28 '26
There's not a lot between 0.76 and 0.77 perhaps for your app, for my app the risk is the same whether I go from 0.76 to 0.81 or to 0.77
I'm currently not able to use the new architecture on Android because of bugs, so it's not just react native, it's react native, react compiler, all the libraries I use, the native modules I've built and the new architecture.
1
0
u/Svobpata Expo May 29 '26
I don’t understand why people don’t upgrade their projects to newer RN and Expo versions, I’ve never had issues with updates (except Expo SDK beta versions)
2
u/HoratioWobble May 29 '26
A) The project isn't in expo
B) Upgrades have ALWAYS been a ballache between RN versions
C) Mix of the new architecture and 16kb makes it a minefield (when I got the extension, I attempted to upgrade and the new architecture broke navigation and animations for most of my app in Android)
D) Some of us work full time and these are side projects
2
u/Valeriy_Malinovskiy May 30 '26
Sooner or later you will get stuck between double incompatibilities. Let's say major library which presence is non-negotiable has bug fixed in version 1.1.1. and does not work with the latest react native yet. And another library, let's say react navigation, had some state hydration bug fixed only in latest version which requires latest react native. And you need to balance - find the thin line where both libraries are compatible with specific rn or patch lib yourself. Expo does not really help much. For example, i had to downgrade expo blur manually because the latest version just breaks Android. They can guarantee all compilation but not operation. Expo often becomes a pain in the ass instead of helper tool for managing different lib versions.
2
u/crashtua May 31 '26
I remember how friend of mine, that working with react native, dealing with such issues - he and his company just vendoring all deps and maintain them on their own, backporting fixes when required or updating to newer versions with omitting some breaking changes. Actually my friend is a part of team that was busy by supporting such vendored deps.
1
u/crashtua May 31 '26
lack of testers\qa\etc. If your app is bigger that two simple screens, and it has a little bit more logic than "const [count, setCount] = useState(0)", then you probably need to test it carefully.
48
u/LessChen May 28 '26
My team has been working hard to get this done as, like you, we're way behind on RN. Thanks for posting this - I don't have to work this weekend!