That's what I am trying to convince my work mates. Intead of updating each component to make it compatible with Vue3 we should just rewrite everything. It will be faster, we will get a change to get a second look at the logic and it might not become a mess.
@@MrDragos360 decouple, then rewrite modules from scratch. Spread out the cost, parallelize efforts, make it resilient, give yourself leeway to change course if needed.
@@avijitpal1421 Well they haven't found the answer to that question yet. Somehow it does not mean neither native java nor ARM assembly anymore. Best explanation I can come up with is it probably just means it has integration with system APIs.
@@zuma206 Probably when he shat on DHH's calendar app, but I'm not sure. However I also remember him saying that the fact ruby on rails depend so much on codegen is bad.
@@brangja4815Theo looked surprised when he didn’t see much performance difference between the old architecture and the new one. When the architecture was first introduced it never promised a big performance change.
So I’m a web developer for over twenty years. I’ve never built native apps. I always decided to learn more web related tech rather than both. When React Native came along I thought this would be a good time. But other than just playing around with workshop/demo code using Expo. I’ve not had to use it. But that’s about to change, I need to learn it for work and I’m so happy that I will be able to really start now. It seems like a huge milestone for the framework.
25:15 this is a React problem, not a JS/DOM problem. It's pretty trivial to create a system that swaps out subtrees in an animated manner but VDOM is likely to get in your way.
I like how theo disses flutter because react native is finally adopting a feature that flutter had for years. Don't get me wrong, this is fantastic news, but it's hard to take this video seriously when its implementing fixes that flutter never experienced from the start (like the native bridge, Flutter has had platform channels for years). So much of this update is just is implementing fixes that should never have to be implemented, such as the slider demo where the number of rendered cubes were synced with the slider value. That wouldn't happen in flutter because you aren't waiting for the JS VM, but instead dart which would be compiled natively. Of course, I'm happy to see it improving, snd and I hope it can continue to do so.
Yeah I am starting to get annoyed by the constant flutter bashing. It feels so awkward. There really is no need for this, I think we should all be a little more respectful to each other
@@LRAnimations I don't even mind the criticism, but the issue is that what Theo mentions is just wrong. It's not valid criticism. There are valid critics of flutter, but Theo just likes react native to a point where he instantly rejects flutter.
Before the switch to react hooks, old react had these features I believe. You'd bind to functions onComponentWillMount and onComponentMounted. Strange they haven't added it until now
What the React Native team did isn't just "a feature that Flutter had for years". Flutter cheats a lot by rendering everything in Dart, while RN managed to optimize a system that allows for JS to run alongside and control native views. Flutter has always been terrible UX, with broken accessibility, broken native compatibility, inconsistencies with other native applications, and more. You can always tell when an iOS app is built in Flutter by just scrolling the view, since the Flutter engine still struggles with basic user interactions like that. React Native has never had that issue.
This got me excited. Hopefully they will be able to fix the input thing, because its genuinely weird for that bug to be hanging around, even though i also agree with you that no one should implement inputs that way anyways
@@999satyam In my opinion the best way of doing it, just like i think the best way of doing on web also is, is reading the value from the inputs only on the submission time(or whenever you actually need it). There is no need to cause rerenders just because the value of an input is changing unless you're doing something like a search bar that imediatly shows results(in this case you would use a throttler function). So instead of using value prop, you use defaultValue, and then on submission you read the values from the input using a ref on the inputs, or using the onSubmission prop of the Form component. People often forget that react also works very well without having to rerender stuff each time anything changes in the screen!
@@upsxace In my opinion we often need some masked inputs, which are not possible with defaultValue approach, as per my understanding. Plus just filtering out unnaccepted characters is also crucial.
Isn't it this guy who was so arrogant about how react native was better than flutter and native development in some video a while back? And now he's going through all the garbage that people has to put up with in React Native that pretty much meant the entire arch was shit? People complain when there is something to complain about. I never had a good experience with react native and I kept coming back to try it out at least once a year for many many years, even this year and it's always very disappointing. Good job on the react native team on such a great improvement, I'll be giving this a go to see if I enjoy it. But big L on how this guy delivers tech news and seem to have a cult follower vibe towards react ngl
@@charlesayomike it just never fits my personal needs? Ofc the problem is me, it doesn't do what I want it to do. Works for others, just not for me, Genius. But unlike theo I don't go around recommending it like a cult follower when it's just not for everyone and saying things like "don't use flutter, don't use native, use react native" so aggressively
Tested it on a very large RN project and the bugs and glitches are extremely annoying. It just randomly doesn't render a component or two?? Didn't experience any noticeable perf gains either. It's still very experimental and would not recommend swapping to the new arch.
In their official docs they mentioned that it requires additional steps than just swapping to the new arch, otherwise you might not notice any significant improvements.
This isn't surprising. Meta has been a huge player and open source software for decades, and their contributions are high quality. The only reason people hate react is it's ubiquitousness.
For people in the comments, do you have example of what you built so far in react native? Like production grade apps? I want to try them for a before after
I think that is unlikely, the aim of building a cross platform abstraction layer tends to always lead to building apps that are lowest common denominator across all patlforms.
10:20 Just to clarify something; the reported bug was NOT related to the architecture. It was _equally_ as bad with New Architecture. The issue is in how iOS autocorrect and predictive text works since the past couple of releases, and also the fact that hardware keyboard input made it more visible due to the ability to type faster than humanly possible on a touch keyboard-nevertheless he bug was present. Another related bug that occurs (and still hasn't been fixed) is when using a controlled input, every input change will result in the "Auto complete Password bar" above the keyboard to flicker, when enabling password input mode. The only work around is to use an uncontrolled input and refs. But you'll still see a flicker when focusing different inputs, e.g. for username/password fields. This issue is also present in SwiftUI and UIKit.
I love how the React/React-Native teams are not afraid to make revolutionary changes to their platforms. Like with hooks in the past, and the various other changes
@@bar-e-tom it's kind of funny that Expo is needed at all though. Components or cli or cloud services. But man they automated a lot of config and admin.
@@KarlOlofsson exactly, at first my opinion was “see? RN is so shitty it needs Expo to be a good framework”. Now my option is simply “damn Expo is so f*ing good.”.
I love React for web apps, and for mobile, I use Swift and Java. It is nice that finally, React Native got better, but it is still not as good as native tools. Buuttt, why wait for these hybrid tools to get better. Why not just learn the native tools? Swift and Java dev are not more complicated than React Native dev.
For Android I'd definitely recommend you take a look at Kotlin. Java is slowly getting left behind in the ecosystem. As for your argument, I do agree that learning native is great and all, but everyone using these cross-platform technologies are businesses or people with limited time, money and resources, who'd rather optimize for shipping to market faster than keep repeating a bunch of work across platforms. And to make matters worse, it's even harder if you include desktop, web, etc...
@@milossavkovic1970 Yes, but that still carries the full memory requirement of a browser. So I'd like to compare how much memory RN needs. As far as I understand, they have their own js runtime with AOT optimization
useLayoutEffect is blocking, while useEffect is nonblocking. Therefore useEffect is faster, and you may quickly notice the difference in performance if you got a bunch of them in the same component, doing decently complex operations
It's used for layout or before content is rendered to the browser (e.g. before the VDOM is committed to DOM in react-dom). Use if for measuring layout, or update content outside React itself. Most cases you'll be using React, but in rare cases you may need to either do some work on elements in DOM (e.g. outside your React app, or third-party libraries), while keeping the component in sync.
Hey, theo and friends in the comment field. I don't much care about react native, but convex looks interesting. It is open source and I got it to build from source in 15 minutes. Looks cool.
Yes it feels like, flutter rendering 3D models and games more than 60FPS so yes RN is still slower. I don't think Java script is ever reach that in the mobile platform
@@seaklengsay2595 not really if you try it right now. flutter is now slower. whats the point of assembly flutter is still not using native apps just running native-like performance. you must build the app first in react to see real native.
With expo, there's an easy way to write or add native modules and even change ios/android infos without even having the ios/android folder to maintain! I don't event commit these 2 folders . I do it, it is awesome and freaking easier to maintain! I let you learn how to do it. ;)
Hey - beginner and hobbyist here. I’ve been learning react and framer motion. I see you recommend React Animate for Native. I wonder if I should start learning animate if I want to do the same kind of things I’ve been doing with framer motion. It’s been a few. months since I’ve put my head down, but some guidance might help when I get back to it. Thanks!
Sooo... you guys were having all these problems and laughing at flutter at the same time?🧐 Also, good to know about this jump in performance, I think I will play with some React Native this week and see how I feel
React native looks good on paper, but you will have tons of problems with expo and even when not using expo tons of undocumented problems, it looks really good until problem appears then you will need to do some weird workarounds and most of them are random;/ React is 100x better than react native , only name is similiar. Also you need to learn java/kotlin for react native at some point.
Flutter is a glorified canvas, no matter how much you will fake it, it will still remain a canvas. It's syntax philosophy of everything being a component INCLUDING MODIFIERS is just as bad
I thought that bug wasn’t possible on regular React because everything is already handled synchronously, so you can’t actually type in the field until the event logic has run, you’re never actually typing directly into the text field in the first place. Are you sure this isn’t due to some other problem, like some effect logic manipulating your input’s value?
25:35 This is coming in CSS for display none. I don’t know if Theo specifically meant animations or included transitions in that: ruclips.net/video/vmDEHAzj2XE/видео.htmlsi=Hr7BvDfWjXn2PQ12
If you want fine grained reactivity, take a look at legend state. Otherwise, you’re not going to get signal in React, since they’re going a different route with their compiler.
Maybe whenever they reach 1.0 they'll also fix the absolute shite that is upgrading it. I've been using it for years and can't recommend it at all yet.
I use Compose Multiplatform, neither Flutter nor React Native :D Though all of them are pretty awesome technologies. While all of these tackle the same problem, each has got its own unique points (for good and for bad!). Regarding entry/exit animations (at 25:15), every UI framework deals with them in exactly the same way (the actual item isn't fully removed until the exit transition is done), and that's for good reason. Imagine a video player animating out; you really don't want to take a "snapshot" to use in the animation, you want the video to keep playing normally until the end of the exit animation, otherwise it'll look very odd. So yeah, you wanna keep the component running until its very last moment, so things look natural. Besides, such "snapshotting" would ironically be probably harder to implement! But like the Reanimated library, all these UI frameworks have abstractions that do this for you (in Compose it's `AnimatedVisibility`, also takes `enter` and `exit` parameters, and a boolean).
@@utubes720 yeah. it's currently in beta btw. Even in alpha a couple companies have adopted it very early and shipped it to production (BumbleBee was an example, they made their existing Android codebase work on iOS with a little effort, even before Compose iOS was alpha!).
Obviously things have improved a lot in recent months, with Compose/iOS becoming beta (it's so close to a stable release), Compose/Web being promoted to alpha, Kotlin 2.0, and a large expansion in the Kotlin Multiplatform ecosystem, with awesome libraries covering most things you'll ever need (particularly for Android/Desktop/iOS, web is catching up tho).
To be honest if you want good ux it tends to be less work to just creat a native app for each platform as the ux on each platform is expected to be substantially different
Possible but unlikely. Flutter/Dart compile to a native binary while React Native still has a Javascript runtime (bytecode in Hermes, but still a full blown Javascript runtime) to deal with
because if you saw other videos from Theo, he is not a fan, but I think it's a skill issue, as Prime likes to say. Flutter is well integrated with all GCP, its hard for tools like appwrite or convex to catch up.
@@t3dotggTheo, the largest bank in LATAM, Nubank, is built with Flutter, and I have to say theirs is the absolute best banking app available here in Brazil, Nubank is also know for using Clojure. And just as it is the case of Clojure, Flutter might not be the go to option, but it certainly is an option. I myself had the power to choose between RN or Flutter for a fintech company called FitBank when they were going to build their new mobile app, and by far, very far, the best option was Flutter.
Lesson learnt, "don't upgrade it, start it from scratch."
😅
That's what I am trying to convince my work mates. Intead of updating each component to make it compatible with Vue3 we should just rewrite everything. It will be faster, we will get a change to get a second look at the logic and it might not become a mess.
@@MrDragos360 decouple, then rewrite modules from scratch. Spread out the cost, parallelize efforts, make it resilient, give yourself leeway to change course if needed.
@@MadsterV I'd rather rewrite it from 0 in the correct way than fix it. It is a bit of a mess now. Like, we have three libraries that does tooltips 😅😅
😂😂😂
Really putting NATIVE performance in React Native.
On another note, I love how smooth and organic your soknsor transitions are. Segued right into it.
what does this native actually mean?
@@avijitpal1421 Well they haven't found the answer to that question yet. Somehow it does not mean neither native java nor ARM assembly anymore. Best explanation I can come up with is it probably just means it has integration with system APIs.
@@nexovec what about the app size?
@@md.jubairahmed6580 I don't have a single clue what you're asking. App size... probably still just as terrible as normal react?
"starting a new project, moving all the code over and it just works"
THEO IS ONE OF US
Theo: I hate ruby rails for code gen
Also Theo: code gen in rn, nice
🤣🤣🤣
When has he said that?
@@zuma206 Probably when he shat on DHH's calendar app, but I'm not sure. However I also remember him saying that the fact ruby on rails depend so much on codegen is bad.
He also said the same thing about laravel xD
@@brangja4815Theo looked surprised when he didn’t see much performance difference between the old architecture and the new one. When the architecture was first introduced it never promised a big performance change.
So I’m a web developer for over twenty years. I’ve never built native apps. I always decided to learn more web related tech rather than both. When React Native came along I thought this would be a good time. But other than just playing around with workshop/demo code using Expo. I’ve not had to use it.
But that’s about to change, I need to learn it for work and I’m so happy that I will be able to really start now. It seems like a huge milestone for the framework.
25:15 this is a React problem, not a JS/DOM problem. It's pretty trivial to create a system that swaps out subtrees in an animated manner but VDOM is likely to get in your way.
Svelte was the first thing that I thought of when Theo said that
Vue got this easy-peasy since forever.
Hell, you need no framework. Just look for auto-animate... Theo simply flunked his LMGTFY research there.
this could be big. Always lovely to see performance upgrades for the frontend world.
I like how theo disses flutter because react native is finally adopting a feature that flutter had for years. Don't get me wrong, this is fantastic news, but it's hard to take this video seriously when its implementing fixes that flutter never experienced from the start (like the native bridge, Flutter has had platform channels for years). So much of this update is just is implementing fixes that should never have to be implemented, such as the slider demo where the number of rendered cubes were synced with the slider value. That wouldn't happen in flutter because you aren't waiting for the JS VM, but instead dart which would be compiled natively.
Of course, I'm happy to see it improving, snd and I hope it can continue to do so.
I prefer RN than Flutter since we can use React, JS and the platform's native UI
Yeah I am starting to get annoyed by the constant flutter bashing. It feels so awkward. There really is no need for this, I think we should all be a little more respectful to each other
@@LRAnimations I don't even mind the criticism, but the issue is that what Theo mentions is just wrong. It's not valid criticism. There are valid critics of flutter, but Theo just likes react native to a point where he instantly rejects flutter.
Before the switch to react hooks, old react had these features I believe. You'd bind to functions onComponentWillMount and onComponentMounted. Strange they haven't added it until now
What the React Native team did isn't just "a feature that Flutter had for years". Flutter cheats a lot by rendering everything in Dart, while RN managed to optimize a system that allows for JS to run alongside and control native views.
Flutter has always been terrible UX, with broken accessibility, broken native compatibility, inconsistencies with other native applications, and more. You can always tell when an iOS app is built in Flutter by just scrolling the view, since the Flutter engine still struggles with basic user interactions like that. React Native has never had that issue.
This got me excited. Hopefully they will be able to fix the input thing, because its genuinely weird for that bug to be hanging around, even though i also agree with you that no one should implement inputs that way anyways
noob here. how should they then?
@@999satyam In my opinion the best way of doing it, just like i think the best way of doing on web also is, is reading the value from the inputs only on the submission time(or whenever you actually need it). There is no need to cause rerenders just because the value of an input is changing unless you're doing something like a search bar that imediatly shows results(in this case you would use a throttler function). So instead of using value prop, you use defaultValue, and then on submission you read the values from the input using a ref on the inputs, or using the onSubmission prop of the Form component.
People often forget that react also works very well without having to rerender stuff each time anything changes in the screen!
@@upsxace In my opinion we often need some masked inputs, which are not possible with defaultValue approach, as per my understanding.
Plus just filtering out unnaccepted characters is also crucial.
i think that already been fixed in new update
@@upsxace got it~ thanks!
Isn't it this guy who was so arrogant about how react native was better than flutter and native development in some video a while back? And now he's going through all the garbage that people has to put up with in React Native that pretty much meant the entire arch was shit? People complain when there is something to complain about. I never had a good experience with react native and I kept coming back to try it out at least once a year for many many years, even this year and it's always very disappointing.
Good job on the react native team on such a great improvement, I'll be giving this a go to see if I enjoy it.
But big L on how this guy delivers tech news and seem to have a cult follower vibe towards react ngl
If you are having issues with react native and you keep trying to use it every year, maybe the problem is you
@@charlesayomike it just never fits my personal needs? Ofc the problem is me, it doesn't do what I want it to do. Works for others, just not for me, Genius. But unlike theo I don't go around recommending it like a cult follower when it's just not for everyone and saying things like "don't use flutter, don't use native, use react native" so aggressively
He dished on React Native before. I don’t think he ever said React Native is good, but in his opinion it is just better than Flutter.
Very cool breakdown. Great blog post 👌 they’ve done well!!
A new Theo video posted 1min ago? Let‘s go! 🎉
Tested it on a very large RN project and the bugs and glitches are extremely annoying. It just randomly doesn't render a component or two?? Didn't experience any noticeable perf gains either. It's still very experimental and would not recommend swapping to the new arch.
In their official docs they mentioned that it requires additional steps than just swapping to the new arch, otherwise you might not notice any significant improvements.
"Stop being scared of backends" by using a backend as a service lmfao
@@Go_with-Christ he moved Uploadthing from AWS to plain servers tho
I use Firebase for push notifications for Android. I don't think there is a way around that. But as a backend there is many other options.
@@Juke172 yes, there's a way around: Expo notifications
@@martinlesko1521 ok thank you. I need to look into that.
@@martinlesko1521expo noifications requires firebase
Facebook doing something good? 🧐
Or should I say Meta?
This isn't surprising. Meta has been a huge player and open source software for decades, and their contributions are high quality. The only reason people hate react is it's ubiquitousness.
They’ve done a lot of good things
bruv theyve been more open with their ai than open ai
please go lookup their open sources bruh…
For people in the comments, do you have example of what you built so far in react native? Like production grade apps? I want to try them for a before after
So pumped about this. I would have never knew about this react native update thanks @theo
Hopefully React Native will return to be a good choice again
I think that is unlikely, the aim of building a cross platform abstraction layer tends to always lead to building apps that are lowest common denominator across all patlforms.
@@hishnashRUclips Creator* on Flutter is lowest common denominator?
the useLayoutEffect was so helpful, thanks
10:20 Just to clarify something; the reported bug was NOT related to the architecture. It was _equally_ as bad with New Architecture.
The issue is in how iOS autocorrect and predictive text works since the past couple of releases, and also the fact that hardware keyboard input made it more visible due to the ability to type faster than humanly possible on a touch keyboard-nevertheless he bug was present.
Another related bug that occurs (and still hasn't been fixed) is when using a controlled input, every input change will result in the "Auto complete Password bar" above the keyboard to flicker, when enabling password input mode. The only work around is to use an uncontrolled input and refs. But you'll still see a flicker when focusing different inputs, e.g. for username/password fields. This issue is also present in SwiftUI and UIKit.
I have always noticed this and wonder what I did wrong. It didn’t even occur to me it was a bug on iOS
No one asking about 1.0 yet? 👀
When it will come 🥹🥹
With static hermes?
until judgement day
It's just a number at this point. RN has been used in production to so many apps already.
I love how the React/React-Native teams are not afraid to make revolutionary changes to their platforms. Like with hooks in the past, and the various other changes
But it is kinda weird to see them doing it without bumping the major version
they know people will love it
This is all fun and games, but I still can't figure out how to develop in RN without Shadcn or Headless UI 😭
It’s really tough once you get used to it
Why tf u want to build with out shadcn
on god the biggest problem is finding a decent UI library now for RN, i'm using gluestack v1 and it works really great but lacks a lot of stuff
Bro it’s also coming from expo called ‘use dom’ search it on google
I used react native paper, is the best ui library i found for RN, you can customize it on top but by itself is already enough in most cases
Now I might want to consider choosing RN over Flutter
React Native with Expo is a pretty sweet workflow
@@KarlOlofsson Yup, I like Flutter but I have to say, Expo makes life so much easier.
@@bar-e-tom it's kind of funny that Expo is needed at all though. Components or cli or cloud services. But man they automated a lot of config and admin.
@@KarlOlofsson exactly, at first my opinion was “see? RN is so shitty it needs Expo to be a good framework”. Now my option is simply “damn Expo is so f*ing good.”.
@@KarlOlofssonit's fked up. Expo literally doesn't allow you to use many needed packages.
I love React for web apps, and for mobile, I use Swift and Java. It is nice that finally, React Native got better, but it is still not as good as native tools. Buuttt, why wait for these hybrid tools to get better. Why not just learn the native tools? Swift and Java dev are not more complicated than React Native dev.
For Android I'd definitely recommend you take a look at Kotlin. Java is slowly getting left behind in the ecosystem.
As for your argument, I do agree that learning native is great and all, but everyone using these cross-platform technologies are businesses or people with limited time, money and resources, who'd rather optimize for shipping to market faster than keep repeating a bunch of work across platforms. And to make matters worse, it's even harder if you include desktop, web, etc...
I think because it's hard to maintain same app for different platforms - you have to white at least two apps instead of one
Great vid on RN changes. Thanks Theo
They took down the bridge, that's HUGE. Must have taken soooo much work 💯
I'm really interested in using it for desktop, I don't really see it as an option without Linux support :/
Have you considered using Tauri?
@@milossavkovic1970 Yes, but that still carries the full memory requirement of a browser. So I'd like to compare how much memory RN needs. As far as I understand, they have their own js runtime with AOT optimization
Is it possible that half of my useEffects should be useLayoutEffect? It sounds like it should be used more than regular useEffect.
If you want to but I think it may delay rendering of the component. So stick with useEffect unless you want something to run too early
useLayoutEffect is blocking, while useEffect is nonblocking. Therefore useEffect is faster, and you may quickly notice the difference in performance if you got a bunch of them in the same component, doing decently complex operations
@@upsxace thanks for the answer
@@abdelkd_ thanks!
It's used for layout or before content is rendered to the browser (e.g. before the VDOM is committed to DOM in react-dom). Use if for measuring layout, or update content outside React itself. Most cases you'll be using React, but in rare cases you may need to either do some work on elements in DOM (e.g. outside your React app, or third-party libraries), while keeping the component in sync.
The only thing i hate about "Mostage devs" is talking or using sponsors they dont even use in their own projects, DAMN
Hey, theo and friends in the comment field. I don't much care about react native, but convex looks interesting. It is open source and I got it to build from source in 15 minutes. Looks cool.
Still slower than Flutter?
Yes it feels like, flutter rendering 3D models and games more than 60FPS so yes RN is still slower. I don't think Java script is ever reach that in the mobile platform
flutter already compile to asembly no need to compare.
@@seaklengsay2595 not really if you try it right now. flutter is now slower. whats the point of assembly flutter is still not using native apps just running native-like performance.
you must build the app first in react to see real native.
@@mitesh7998 static hermes comming soon
@@seaklengsay2595*dart, not flutter
Good for them. Time to finally try that react native... I am always late adopter...
8:30 you've never had to move a 7 year old RN app have you
With expo, there's an easy way to write or add native modules and even change ios/android infos without even having the ios/android folder to maintain!
I don't event commit these 2 folders .
I do it, it is awesome and freaking easier to maintain!
I let you learn how to do it. ;)
I can stop getting shoved in lockers by the "Real mobile developers"
this is an awesome upgrade
+1 for convex
debating to upgrade, or start a new project and migrate code
Hey - beginner and hobbyist here. I’ve been learning react and framer motion. I see you recommend React Animate for Native. I wonder if I should start learning animate if I want to do the same kind of things I’ve been doing with framer motion. It’s been a few. months since I’ve put my head down, but some guidance might help when I get back to it. Thanks!
React now truly puts the Native in the React Native
Does this mean that upgrading your RN version in the future won't be hell? Are we stabilizing (please)?
Great video
Damn, might have to learn React now
Sooo... you guys were having all these problems and laughing at flutter at the same time?🧐
Also, good to know about this jump in performance, I think I will play with some React Native this week and see how I feel
flutter is dead lmao
@@valkyrieqp if Flutter is dead then RN is dead 10x... You REACT Kids just hype RN on Social Media
@@valkyrieqpdoesn’t matter, better framework
React native looks good on paper, but you will have tons of problems with expo and even when not using expo tons of undocumented problems, it looks really good until problem appears then you will need to do some weird workarounds and most of them are random;/ React is 100x better than react native , only name is similiar. Also you need to learn java/kotlin for react native at some point.
Flutter is a glorified canvas, no matter how much you will fake it, it will still remain a canvas. It's syntax philosophy of everything being a component INCLUDING MODIFIERS is just as bad
Svelte has entering and exiting...
This might actually justify my hope to rewrite the cluster fuck of an RN codebase the contractors dropped on our laps
no way.. no spam??? holy shit
but they fixed the controlled input issues?
Yes it is fixed as bridge is removed
but wasnt useLayoutEffect already there in reactnative before this update?
We got Turbopack before GTA 6
Do you use RN directly or Expo?
React kids yappping again.. every month they get a news of RN becoming 69% faster 😂
Scared??
Doesn't kotlin multiplatform do the same thing?🤔
looking native using renderer is different than being native and using native components
migration or upgrade is fast or painful ?
Which React.js pattern would you recommend to address the typing text bug? I’m having this issue on Web specifically. Thanks in advance.
I thought that bug wasn’t possible on regular React because everything is already handled synchronously, so you can’t actually type in the field until the event logic has run, you’re never actually typing directly into the text field in the first place. Are you sure this isn’t due to some other problem, like some effect logic manipulating your input’s value?
A lot of phones have 90-120hz. Can it hit that reliably?
25:35 This is coming in CSS for display none. I don’t know if Theo specifically meant animations or included transitions in that: ruclips.net/video/vmDEHAzj2XE/видео.htmlsi=Hr7BvDfWjXn2PQ12
Theo once in a video you were telling that java is not a good solution for Android can you elaborate in any other video in future
17:49 or you can write in in dart or Kotlin multiplatform, it’s not like c++ is the only way to do multiplatform native libraries
D mentioned 🗣🗣🗣
I'm sticking with KMP/CMP.
What is that font? Searched for it but didn't get it. A similar font is DM mono.
what if I am using expo native ? Can I get the new architecture and use expo ?
But are controlled inputs acting correctly
Stop using React Native and start using Svelte if you want performance 😉
tf
React Native to the moon🚀.
Theo really loves React almost frightening.
i'm still waiting for signal and a proper skia graphics engine that's actually easy to use
If you want fine grained reactivity, take a look at legend state. Otherwise, you’re not going to get signal in React, since they’re going a different route with their compiler.
Maybe whenever they reach 1.0 they'll also fix the absolute shite that is upgrading it. I've been using it for years and can't recommend it at all yet.
Propably google will abandon flutter as always.
I use Compose Multiplatform, neither Flutter nor React Native :D
Though all of them are pretty awesome technologies. While all of these tackle the same problem, each has got its own unique points (for good and for bad!).
Regarding entry/exit animations (at 25:15), every UI framework deals with them in exactly the same way (the actual item isn't fully removed until the exit transition is done), and that's for good reason. Imagine a video player animating out; you really don't want to take a "snapshot" to use in the animation, you want the video to keep playing normally until the end of the exit animation, otherwise it'll look very odd. So yeah, you wanna keep the component running until its very last moment, so things look natural. Besides, such "snapshotting" would ironically be probably harder to implement!
But like the Reanimated library, all these UI frameworks have abstractions that do this for you (in Compose it's `AnimatedVisibility`, also takes `enter` and `exit` parameters, and a boolean).
Does your KMP/CMP app target IOS? I thought IOS support was alpha stage?
@@utubes720 yeah. it's currently in beta btw.
Even in alpha a couple companies have adopted it very early and shipped it to production (BumbleBee was an example, they made their existing Android codebase work on iOS with a little effort, even before Compose iOS was alpha!).
Obviously things have improved a lot in recent months, with Compose/iOS becoming beta (it's so close to a stable release), Compose/Web being promoted to alpha, Kotlin 2.0, and a large expansion in the Kotlin Multiplatform ecosystem, with awesome libraries covering most things you'll ever need (particularly for Android/Desktop/iOS, web is catching up tho).
🎉🎉🎉
I'd rather leatn Kotlin than over complicate my life with stuff like React Native. Why do people learn and work with this kind of framework ?
Never comment. But here I am.
Amazing video
I would still stick with Expo for now
Does Expo support this?
As beta, for now
Windows search just got 500% faster,
To be honest if you want good ux it tends to be less work to just creat a native app for each platform as the ux on each platform is expected to be substantially different
What if you hate React? :(
I'm bumping my minor version noooooow
so now it has better performance than flutter??
Possible but unlikely. Flutter/Dart compile to a native binary while React Native still has a Javascript runtime (bytecode in Hermes, but still a full blown Javascript runtime) to deal with
React native new architect
As fresher what should learn flutter or react native
Flutter
Flutter
tauri
thanks
"I am not upgrading, I am starting from scratch". Good for you Theo, but you are not making a video for yourself are you? Good video though.
anyone have a project with react native more than 3 year? I can say that it is nightware ecosystem ever.
I am on expo 51 sdk can anybody help me with it can I upgrade to this react native version?
You can also make it faster by not using it.
but why should one stop using firebase??
because if you saw other videos from Theo, he is not a fan, but I think it's a skill issue, as Prime likes to say. Flutter is well integrated with all GCP, its hard for tools like appwrite or convex to catch up.
I dont need to pay 300 per month for appwrite to have a free tier of 1mil function calls, or 50k read per day.
@@GeorgeDicu-hs5yp thats very true. i find firebase easy to use
What about the actual React Native vs Flutter ?
Flutter for sure. React Native is still React Native and shit to be honest.
they both can do fine, but if you care about job market or higher paying jobs you’d go for react native
@@gcash49 Not the case anymore. Especially in Germany
hi, i didnt ask for this
thanks for the kind words about my library 🫶
Sorry, mustache it's for old guys, very old guys...
Ok this video is too long so tell me, are controlled inputs finally fixed?
Apparently yes is what I’m gathering from the comments.
no
Plot twist - it just compiles to a flutter app behind the scenes :D
Does anyone knows which vs code theme he is using ?
Poimandres theme
Does this bury Flutter?
It's hard to bury that which lives underground
@@t3dotgg Damnnnn 😂
😭
@@t3dotggTheo, the largest bank in LATAM, Nubank, is built with Flutter, and I have to say theirs is the absolute best banking app available here in Brazil, Nubank is also know for using Clojure. And just as it is the case of Clojure, Flutter might not be the go to option, but it certainly is an option.
I myself had the power to choose between RN or Flutter for a fintech company called FitBank when they were going to build their new mobile app, and by far, very far, the best option was Flutter.
@@t3dotgg 💀
I hate react syntax. I've been trying to run from it in web, no way in hell I'd use it mobile. I call that the useDeezNuts effect.