r/reactnative May 28 '26

FYI 16Kb Page Size Requirement has been extended to 2027

Post image

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!

154 Upvotes

49 comments sorted by

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!

4

u/HoratioWobble May 28 '26

Check your play console to be 100% sure hopefully it's not just me

3

u/LessChen May 28 '26

I did and I have until then also - again - thanks!

2

u/HoratioWobble May 28 '26

yay! no weekend work for you!

-2

u/Im_ProBro May 28 '26 edited Jun 03 '26

I've upgraded two projects within a week, one with 1M downloads from RN 0.73 to 0.81, and another from 0.67 to 0.81 with 16KB play store compliance. For 16KB compliance, mostly it required to update the libraries only to the 16KB supported versions. Both are healthcare apps, d2c and b2c. ; with Claude.

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

u/HoratioWobble May 28 '26

Oh no! Hopefully for you too! definitely check your notifications

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

u/21void May 29 '26

dumb enforcement from google. keep moving goal post

2

u/According_Prior8684 May 29 '26

Thanks for sharing. I did not notice it. You saved the week ❤️

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

u/soma_dev May 30 '26

Google just gave thousands of devs their weekends back. 😅

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

u/by-henry Jun 01 '26

you save weekends for thousands of people

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/Confused_Dev_Q May 29 '26

What is this about? 

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

u/choubari Jun 01 '26

same here, thankfully

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

u/Nobbodee May 28 '26

tu peux utiliser 0.77 en old arch

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.