React Native doesn't use a bridge anymore. In its new architecture (which has been released last year), there is a concept of an intermediary called a "JSI" (JavaScript Interface) that allows the native layer to directly talk to the JS layer (running on the optimized JS engine Hermes) unlike the previous architecture where the Bridge in the middle sent data over the threads serialized as JSON. It also has Fabric (newer && faster renderer) and also turbo modules to load native modules on demand.
@@Rex88282 bruh I don't even use React Native nor did I say if its better than other solutions. I just mentioned about the update that removed the old slow bridge with the faster JSI.
@@ko-Daegu well yes, but actually, no. The bridge was just a communication medium, think of it like sending an HTTP request over-the-wire. Previously there were 2 threads and 1 Tree: The main thread is basically just the Native Component layer that React Native renders with the components it gets from the JavaScript thread. There is also a seperate "tree" called the Shadow Tree which is responsible for calculating some dimensions or other stuff needed by the Main Thread to paint the UI to the screen. (This is basically the Virtual DOM that React uses although maybe slightly diff than what I said here). The JS thread runs a engine to execute the JavaScript bundle and then start sending responses. In RN you commonly use the or components, those are actually getting sent to the main thread as JSON through the bridge which get rendered thereafter (Previously used JS core, but since it needed to be shipped with Android since JS core is only available by default on iOS, they created a new engine called Hermes which consumes less memory, runs faster, and also helps in startup time) Now, theres no more of that bridge thing. We have the JS engine like before (now most of the time is Hermes) and the code written in TypeScript (mentioning TS specifically here because as far as I know, they do use the types). The new JSI (written in C++) holds reference to JavaScript event handlers and stuff with the types that I previously (I don't remember exactly how so I may be slightly wrong here but types are definitely used). Think of the new JavaScript interface like importing functions from a module. Then when something happens on the native side, the JSI executes the JavaScript it holds reference to for that particular element, and Ta-Da, we have the previous working stuff without the overhead of the bridge. Turbo modules are just a seperate feature RN added to reduce app startup time even further with on-demand loading. + The Fabric is also just a better & faster renderer than the one it used before.
Hermes is not optimized. It does not contain jit, it doesn't execute native code at all, everything is interpreted where code flutter executes is compiled to native binary
Kotlin multiplatform is also a really great thing, that has a lot of potential i think. I've tried it myself (I'm android dev). And I am very impressed with this. I also tried react native in the past and the performance was really horrible back then (although maybe they have improved it over these few years)
Hey Lewis, love your videos. Could you make a video on the different people behind creating an app and what the process looks like? Both the people on the business and tech side.
If you're learning kotlin, move directly to jetpack compose. I know the tutorials on the internet are bad, in some cases absolutely useless, but with some digging you can do it
Yea I agree, as a .NET developer who never did a lot of android programming in java, Maui has been very enjoyable to use and let me actually develop my app straight away. A few learning curves to navigate but overall I have been very impressed.
Flutter can do web, windows, mac, iOS, android, and linux from one code base. So that’s pretty cool. You could also use react native for web. That can turn your phone apps into a website with some drawbacks. I like dart so I pick flutter. If you like js more then react native for web is not a bad option. Whatever gets the job done 👍
It's always a question about how complex you want your app to be. If you want an app for the public with high traffic, then you better go for some low-level programming languages and its framework, such as Java -> Spring Boot. If you want a simpler and fast solution, then go for Go Language... It depends on a situation
Django would be great but tbh any restful backend would work. Like node or django or fast api or literally anything. Performance wise you would have to compare but i know django so i would use that over anything else at least in the prototypical stages
Since Flutter builds to native code, I wonder if there’s a real argument for not picking it up and going to react or ionic instead. Especially Ionic lol
It wasn't mentioned in the video, but in addition to android and ios, Flutter can also build web, windows, linux, and osx frontend apps. Keep in mind that not all flutter package works on all platforms
@@shlokbhakta2893 there s no much different between flutter a and native like kotlin Android , flutter performance is not different from kotlin ,flutter very simple and fast to develop a app
Flutter is above react native Is terms of “abstraction” react native creates actual native elements of the screen which is why you still have to consider platform differences. Like shadows on iOS vs elevation on android. Flutter DOES NOT compile to native binaries? It compiles the dart code to a binary and the UI is all rendered on a single canvas, which is much better than a web view but it’s very much not native.
@@Rex88282I'd argue it has a ton of negative impact on UX across platforms. You shouldn't write one-size-fits-all native apps. You should consider how accessibility and UX works on either platform to keep consistent with the ecosystem and user expectations. Another downside of Flutter is that your widgets won't not be updated with the OS and can end up with the "Old Windows"-type issue, where it uses UI that does not conform to changes in a new OS release-and how do you then consider supporting older and new versions at the same time?
@@mirjalol49 complex react native apps tends to be slow because of JavaScript, and web-based apps in addition to being slow also have poor integration with the OS
@@ahmedbathily7013It's void main( ) {} not main void( ) {} And this doesn't still mean it's simpler, it's only there so that hello world isn't as embarrassing as it was
You can’t deny that iOS users are real and you have to cater toward them when building an app lol. You leave soo much money on the table when not making an iOS app. All I’m saying is it’s a good idea - message sent from iPhone 😅
@@shlokbhakta2893ahh no. When comes to money it's directly proportional to demand. As android is most demanded you will find more users hence more ad impressions and more in-app purchase. Hence money is a no problem.
React Native doesn't use a bridge anymore. In its new architecture (which has been released last year), there is a concept of an intermediary called a "JSI" (JavaScript Interface) that allows the native layer to directly talk to the JS layer (running on the optimized JS engine Hermes) unlike the previous architecture where the Bridge in the middle sent data over the threads serialized as JSON. It also has Fabric (newer && faster renderer) and also turbo modules to load native modules on demand.
@@Rex88282 bruh I don't even use React Native nor did I say if its better than other solutions. I just mentioned about the update that removed the old slow bridge with the faster JSI.
@@Dev-Siriso there’s still a bridge just a faster one ?
I don’t see compiled to native (unlike the misleading name)
@@ko-Daegu well yes, but actually, no.
The bridge was just a communication medium, think of it like sending an HTTP request over-the-wire. Previously there were 2 threads and 1 Tree:
The main thread is basically just the Native Component layer that React Native renders with the components it gets from the JavaScript thread. There is also a seperate "tree" called the Shadow Tree which is responsible for calculating some dimensions or other stuff needed by the Main Thread to paint the UI to the screen. (This is basically the Virtual DOM that React uses although maybe slightly diff than what I said here). The JS thread runs a engine to execute the JavaScript bundle and then start sending responses.
In RN you commonly use the or components, those are actually getting sent to the main thread as JSON through the bridge which get rendered thereafter (Previously used JS core, but since it needed to be shipped with Android since JS core is only available by default on iOS, they created a new engine called Hermes which consumes less memory, runs faster, and also helps in startup time)
Now, theres no more of that bridge thing. We have the JS engine like before (now most of the time is Hermes) and the code written in TypeScript (mentioning TS specifically here because as far as I know, they do use the types). The new JSI (written in C++) holds reference to JavaScript event handlers and stuff with the types that I previously (I don't remember exactly how so I may be slightly wrong here but types are definitely used). Think of the new JavaScript interface like importing functions from a module. Then when something happens on the native side, the JSI executes the JavaScript it holds reference to for that particular element, and Ta-Da, we have the previous working stuff without the overhead of the bridge. Turbo modules are just a seperate feature RN added to reduce app startup time even further with on-demand loading. + The Fabric is also just a better & faster renderer than the one it used before.
You go explain tire 😂
Hermes is not optimized. It does not contain jit, it doesn't execute native code at all, everything is interpreted where code flutter executes is compiled to native binary
Basically, the higher up you go, you lose more performance and hardware access, but it gets easier
I would argue javascript is harder than kotlin/java. Javascript is a real piece of shit.
Unless you have a ton of web dev experience, I’d wager Flutter is easier to approach than Ionic+Angular
You also lose access to native components, I remember the dark days of writing slide out menus in Cordova.... Flutter FTW
revelatory 🤯🤯 i am so mind-blown with this incredible insight!
It's the old J2ME days again.
Kotlin multiplatform is also a really great thing, that has a lot of potential i think. I've tried it myself (I'm android dev). And I am very impressed with this. I also tried react native in the past and the performance was really horrible back then (although maybe they have improved it over these few years)
Yup it’s awesome
Hey Lewis, love your videos. Could you make a video on the different people behind creating an app and what the process looks like? Both the people on the business and tech side.
I think this is a great idea!
KMP will be a game changer
Flutter is mimicking the ui, not actually native.
Flutter compiles to native and uses method channels
I use Java for mobile dev (Android)
Us bro us😂❤
💀
Move on dude. Kotlin is the future
@@AlphaGamingWorld bro Kotlin is future in android only
can u make APIs through Kotlin ?but u can make them in JAVA
If you're learning kotlin, move directly to jetpack compose. I know the tutorials on the internet are bad, in some cases absolutely useless, but with some digging you can do it
It's disappointing that you didn't mention MAUI.
Yea I agree, as a .NET developer who never did a lot of android programming in java, Maui has been very enjoyable to use and let me actually develop my app straight away. A few learning curves to navigate but overall I have been very impressed.
Thank you for telling me about this
You should be disappointed on Microsoft for introducing a new framework and killing the existing one haha, .NET ecosystem is a joke
I agree, develop in MAUI has been a great experience so far, specially Blazor Hybrid 🎉
FLUTTER IS THE WAY. CHANGE MY MIND
the UI is ⭐️ garbage ⭐️
@@iDoComputers you forget a thousand things a day. make sure this is one of them
There is also Compose Multiplatform, single codebase in Kotlin, Compose is great
Cordova is actually EOL… lol
🤔what about capacitor ?
You forgot .NET MAUI.
Great video!! Could you make the video but for desktop gui
React native is very good and works quite good if you don't need something very hardware connected. Development is fast.
Flutter is ❤
REACT NATIVE > flutter
@@abdultheseekerofknowledge4453react is Dead never close to flutter
flutter is a nested hell
@@VictorMartins239 one that I love to work with 😅
Also… html 😐
@@VictorMartins239 flutter is Far better than react but all of them are just tools to solve a particular problem
Uhh Kotlin apps can compile to ios via KMM remember?
Ionic + Capacitor
For Android a Flutter is a good option, and for IOS, therapy would be ideal
Swift is amazing
@@rswierczynski Yeah I guess if you haye yourself you could find it amazing
If you’re going to use two frameworks for android and ios then better write native apps
@@justafreak15able whoosh I guess
What about android studio? It supports java and kotlin
The day developers stop making native apps is the day we'll forget about actual performance. Fuck webapps :)
Yes Native is always the best choice in my view
@@rgpflash7474 Agreed
flutter or react native which one should i go in the case of future jobs and salary
I guess he didn't mention Xamarin. I'm Kotlin developer tho
I guess people who don't know c++ and java have to jump through a whole lot of hoops.
This Guy content is Gold❤
An even higher level of abstraction for mobile apps is unity, but it's pretty limited outside of gamedev
What about .Net MAUI
Yep, I asked the same
Why did you not mention Java for Android it's interoperable with Kotlin and C++?
If you wanted to build an application that had a mobile app and a website, what backend would you use?
Django
Flutter can do web, windows, mac, iOS, android, and linux from one code base. So that’s pretty cool. You could also use react native for web. That can turn your phone apps into a website with some drawbacks. I like dart so I pick flutter. If you like js more then react native for web is not a bad option. Whatever gets the job done 👍
It's always a question about how complex you want your app to be. If you want an app for the public with high traffic, then you better go for some low-level programming languages and its framework, such as Java -> Spring Boot. If you want a simpler and fast solution, then go for Go Language... It depends on a situation
Django would be great but tbh any restful backend would work. Like node or django or fast api or literally anything. Performance wise you would have to compare but i know django so i would use that over anything else at least in the prototypical stages
I would use Rust for backend, for performance, insane safety...
Lewis also: why you should not build mobile applications. 😅
I’ve tried Flutter but just don’t love it as much as React/React Native. Wish I did because dependencies in RN are a pain
I guess you’ve never heard of Delphi.
.NET MAUI ❤
Throw in that blazor spice
What about .Net Maui?
That “AHHH” at the beginning was truly beautiful💀
Interesting
Since Flutter builds to native code, I wonder if there’s a real argument for not picking it up and going to react or ionic instead. Especially Ionic lol
Flutter code looks like a brain aneurism😂
ok i am a web developer and if i have to build app i will make it in react native it will hardly matter
Last sentence is well said
Maui... you can create even a webapp with mobile app...
I want to build something that can work on Windows and Android, what frontend stack would you recommend?
It wasn't mentioned in the video, but in addition to android and ios, Flutter can also build web, windows, linux, and osx frontend apps. Keep in mind that not all flutter package works on all platforms
@@romarmacaraeg661please don't recommend Flutter for the web...a horrible idea, I personally would Flutter only for mobile apps
React native & ionic what's the diff tho ?! Thought both are similar
Where's C# MAUI? You didn't know?
Ionic is using capacitor now. Its got more access
How about Java for android?
personnally i use C# for almost everything 😅 from Web API to mobile app, desktop app game etc
flutter is the Best
Native Kotlin is the Best
@@otimistno flutter is the best and simple one code in everywhere
@@otimistflutter is a good second
@@shlokbhakta2893 there s no much different between flutter a and native like kotlin Android , flutter performance is not different from kotlin ,flutter very simple and fast to develop a app
@@vickoalan With Jetpack Compose you can achieve this too, as well as having greater control over the capabilities of the OS and hardware.
Lewis, ha u doin buddy?👋🏻🇮🇹
Maui
Flutter is above react native Is terms of “abstraction” react native creates actual native elements of the screen which is why you still have to consider platform differences. Like shadows on iOS vs elevation on android. Flutter DOES NOT compile to native binaries? It compiles the dart code to a binary and the UI is all rendered on a single canvas, which is much better than a web view but it’s very much not native.
@@Rex88282 I don’t know about advantages. It’s just a different way of rendering UI
@@Rex88282I'd argue it has a ton of negative impact on UX across platforms. You shouldn't write one-size-fits-all native apps. You should consider how accessibility and UX works on either platform to keep consistent with the ecosystem and user expectations.
Another downside of Flutter is that your widgets won't not be updated with the OS and can end up with the "Old Windows"-type issue, where it uses UI that does not conform to changes in a new OS release-and how do you then consider supporting older and new versions at the same time?
excellent detailed information
Qt framework + C++ is the way to go
.NeT MAUI
Flutter is great
this is an iceberg
Flutterflow
replace 'cordova' with 'capacitor' now! Cordova has now become old
What about MAUI?
Wait, ThereIsNoGame logo?
I have a misunderstanding (which platform to create a app with official not third party way like google or something else
Kivy , kivyMD is also great 😸 python ❤
Kotlin Multiplatform ❤
Flutter doesn't compile to native. lmao
How about kmm ?
flutter is my choice
Doesn't anyone know here , that compose multi-platform with kmm is now in production.
Yes 👍
Java ❤
Dont forget Maui
Kotlin multi platform
that kotlin logo is dead
Does Python fall anywhere in that stack?
Lookup Kivy
no, not really. Theres kivy, but it is not well supported
I'm a python dev, and went to flutter. Dart is easy to learn. I made a flutter app and REST API server with dart in 2 months. 😁
You forgot java baby. And half cooked information. Those cross platform have a lot of shortcomings.
I use AI , I basically talk in English I say don't do this and do that if you don't I will turn off the power
😏
Compose multiplatform.
How do i not use java?
Stop development
@@AlphaGamingWorld dammit
hang on... Cordova is still a thing?? I thought that got shut down years ago?!
I love flutter, but with the goal of getting a job making mobile apps I think I might have to switch to something else… react native??????
If you want a job, react native is great! Flutter jobs just don’t pay as well 😢
@@shlokbhakta2893wht about native development.
I use kivy and kivymd
Whenever I see React Native or Web wrapper apps: 🤢
whyyy?
@@mirjalol49 slow as shit.
@@mirjalol49 complex react native apps tends to be slow because of JavaScript, and web-based apps in addition to being slow also have poor integration with the OS
@@mirjalol49cause bloatware
@@mirjalol49 slow
And MAUI ;)
Where's java
Java
And there is .Net MAUI
native is still better at performance
English please );
Flutter is your uncle
Xamarin
kotlin multiplatform
.net Maui?
Dotnet MAUI is best 🎉
So should i start with flutter or swift??
swift
Android also Java
That’s true but Java makes me sad lol
public static void main(String[] args)
@@shlokbhakta2893 lol Java is not fun that’s why I do react 😂
@@Rippersshow react is not fun no more that why I chose flutter md vuejs there's Vue native
@@shlokbhakta2893 there is no need any more to write public static void you can write so void main(){
}
@@ahmedbathily7013It's
void main( ) {}
not
main void( ) {}
And this doesn't still mean it's simpler, it's only there so that hello world isn't as embarrassing as it was
Easy tell ios users to go to North Korea. After all only such people would use such a device.
You can’t deny that iOS users are real and you have to cater toward them when building an app lol. You leave soo much money on the table when not making an iOS app. All I’m saying is it’s a good idea
- message sent from iPhone 😅
@@shlokbhakta2893ahh no. When comes to money it's directly proportional to demand. As android is most demanded you will find more users hence more ad impressions and more in-app purchase. Hence money is a no problem.
Kotlin Multiplatform Compose
👍
Whenever I see flutter syntax 🤢
İ use Flutter
is there anyway to make one with python?
What's next? Building ps6 ui and backend with python?
@@morteza55510 I'm new to this sector.currently learning python. all I wanted is to gain some experience by this that's all.
Yes, with KivyMD.
@@AkhtarReviews Thank you.
@@morteza55510sure why not, most libraries already use c++ and rust as their backend lol.
tip: never use ionic :)
Flutter should be above all
LoL
1st pin? 😅
Ill give you props, but no pin
@@CodingWithLewis thanks 👀
Unity best