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
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?
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
@@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
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.
@@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