React Native doesn't build the best apps, but I would choose it over building 2 apps with Swift/Kotlin for iOS/Android store. #benawad #reactnative ---- Follow me online: voidpet.com/benawad #benawad
I feel like developer experience is severely underrated. The power of having a single codebase way outweights any performance or size costs you add imo. Especially in 2020 when everyone is dropping support for any device more than 10 years old.
Companies should optimize user experience for the user... Just a few performance issues on react native for the user means the company is going to lose millions of dollars, so its actually cheaper to have two teams.
Your opinion is wrong IMO. Hyrbrid frameworks are always frustrating as hell to work with, full native is a way better development experience and it yields a superior product. The only reason to go hybrid is if the business is on a shoestring budget or cannot find competent enough programmers.
"a single codebase way outweights" You mean a single codebase that has Javascript AND Swift AND Kltlin code? Yeah 3 codebase in one, and pretend it's fine
Thanks so much for this video, as a beginner of web/app dev, it's really helpful to understand if React is a good choice if one person wants to build for both web/ios/android.
thanks for that, I share your opinion, I think many developers are also just missing the business side of code and digital tech in general - just beeing able to move to the market faster with a smaller team and a shared codebase enables organizations to stay more flexible, especially in highly uncertain market environments, which is a huge benefit for me from a business innovation and transformation perspective.
I think that native development should be done just to know what react native is abstracting, but I feel like in a year react native will be able to create apps that can contend with native development
What I’ve been hearing that interests me is companies making apps that are native but utilize React Native for specific views (like a profile view, or a view that fetches and displays rows of data). I believe I read that Airbnb is one of the proponents of this approach.
If you do Flutter you can make the website in the time you saved using Flutter. I have made two production apps using RN, and am now about halfway in my first Flutter app. My impression so far is that if developing an app natively for iOS and Android is 2, then React Native is about 1.5. Flutter feels more like 0.8 so far. As long as you develop CRUD apps with mostly just forms and standard widgets you'll probably be OK with either, but when it is time for slippy maps and video playback I had serious headaches with RN, especially on the Android side.
4:11 this totally opened my eyes to why I absolutely need to use React and React Native for my personal project. This alone saves so much time and work for solo devs.
Can you cover react-native-web? Architecting out a new solution at work currently considering it. Also looking at how to manage consistency between our product, design and development team. So considering storybooks, already using Figma and I intend to make a UI library. Would be good to see a video on building a UI library.
@Ben Awad you have full compatability in sharing code with Flutter apps and Flutter Web Apps or even just an web app with a JS library. Dart transpiles to Javascript if you use the correct approaches on your code to be fully dart and not depend on Flutter
I know you aren't big on design Ben, but I think a video on how you plan and design your full stack projects would be super helpful. Your tutorials are great but you kinda just jump into it and I've always wondered what kind of planning it took to set you up for those. Thanks!
if I'm wrong please correct me but you can do tons of stuff with js but you only use dart in flutter. so when choosing between these two. the core language itself should be considerd a factor.
Wondering what's your take on Flutter now, ~6 months later - Flutter 2 is released with support for Mobile, Web and Desktop (Windows, Mac and Linux). You should do a follow up video...
@@handsanitizer2457 I've been learning flutter for a week and i don't have any development experience so i can't even compare them what do you think should i switch to rn for adapting to web easily in future or just stick to flutter
@@burakkosova8481 just stick to flutter. But, it's up to you. I just started learning flutter a few days ago and i'm used to react native (not saying that i'm an expert at it). But for me, since rn use javascript, it was easier for me to learn.
For me personally, I prefer RN because Flutter uses Dart which is OOP. While in RN I can use something like ReasonML for FP. IMO writing logic is way more crucial than building UI
I might be wrong but idk if ionic compiles to native. I think it is all in WebView? Not sure if that changed so in terms of performance not as good as react native
@@RadTwin yes its not native, still a webview but way faster than before. In terms of performance, yes, ofc its not as fast as RN but its also extremely easy to make apk or ipa with it
I’ve had a blast using Ionic and capacitor. Plus it’s much more forward thinking with stencil web components and native wrapper for any platform. Haven’t tried their ci/cd app flow but from what I’ve heard it’s buttery.
Im willing to give up some speed and just build an app once. I rather save 5+months plus you can always make React Native faster I think, just needs more development ?
With PWA you can basically download an app to your phone. Could you or someone elaborate more on why you think PWA might be worse way to develop a mobile app than React Native?
Hi, Ben do you have tutorial how to secure apikey and url on react native, encrypt api key and url or hide from decompile in React Native. can it be done for secure the app ?
agree completely with your point, but still go with swift and kotlin route because i just like learning different programming paradigms in general (and i like pain and suffering apparently?)
@@jmitchell2464 good point. but after all, i still want to build it with react native. One reason i can't agree more is my website is already using react, so a lot of stuff can be shared (copy and paste) between two.
Hi Ben, if I recently learned the fundamentals of JavaScript what else should I need to learn in order to learn react native? What would you recommend??
Hey bro. You don't need to learn Node.js to start learning React Native. Just learn Fundamentals and ES6 JavaScript. Learn how to use React useState, useEffect hooks at bare minimum .
so how about optical character recognition with deep learning object detection mobile app which one the best advice between flutter and react native? if you say react native perform okay without im doing crazy thing in mobile app?
I 100% agree. It is not about native vs hybrid or kotlin/swift vs react native/flutter it is about having a common standard for a common app. And after all this time we still do not have that that's what crazy.
@feldim2425 If it's just a basic static site with a bit of JavaScript, then it's not a big deal to use webview. With Trusted Web Activities they're trying to close the gap between web apps and mobile apps. The performance isn't really any worse than opening a website. I still think, if you have the time, it's sometimes worth it to make it native.
you should definitely try nativescript! it just had a rough two months because it got handed off to a new primary maintainer at the same time they released a new major version, a new js runtime for ios, AND ios 14 support. but i think they learned their lesson, having talked to the maintainer about it. the angular support is A++ throughout the community, vue support is pretty good, and there's also some support for react and svelte. the tradeoff is you can't share templates across web and mobile, but most everything else you can, and the native plugins are generally great. build times suck but the performance makes up for it
As a flutter dev I have to say that the code sharing between native apps and web is actually very easy now. Flutter web is still in beta so it has some quirks that you have to account for but for the most part it's a very smooth experience between mobile and web (I would argue that more so than with react native and web). Obviously for companies it's much easier to find react devs and put them to work with react native with very small amount of time needed for adjustment which is probably react native's biggest asset right now compared to competition.
the main advantage right now with react native is that you have something like expo, which is a godsend. "want to test your app without having to bend the knee and suck apple? no problem bro, here, download this little client on your ios device, log with your expo account and you will see your project currently in dev or on the release channel you want to test, go ahead have fun", "on android too? kay buddy do the same there". "oh ready to make a build? kk, dont worry bruh, I will build and compile that for you on the cloud, just sit tight I will send you the artifact for the download". on top of the fact you have release channels where you can tell certain builds to only receive updates from a staging channel, production channel etc, it really raises you up to speed. Disadvantages however are what you would expect, need to configure that low level shenanigans? want to add a native library that is not currently in the expo managed workflow? good luck buddy, see if you can work around that, if not welp, you can always eject and keep using the channels and the other expo libraries that are compatible with the bare workwflow but now the config and compiling for each platform is on you. meanwhile in flutter, ionic and others, there is nothing akin to that yet as far as I know. The react community is both a blessing and a curse sometimes.
I've just started app dev and have really been enjoying all the stuff that expo makes easier for newbs like me. However, I can't figure out how to reduce apk size after builds no matter how hard I look. People tell me to just copy paste sources from the expo project over to a "react-native init" project but how will I get the expo libraries I imported originally without expo? This has been such a headache. Made a simple audio playing app as my first one and it had a bloated 58 MBs apk x_x
@@hououinkyouma5372 there is no way around the size of an app build from expo, that is one of the drawbacks too, all of those are in the documentation. The app is big because expo by default includes all the binaries and native configs for anything you might need from expo so you can just use expo publish without worry, that also means there might be a lot of code you dont really need so in return you get a really thicc app. They are aware of such shortcomings and have been saying they are working on trying to customize such behavior to only include what you need and such but yeah, if you really need to shave off that size you would need to eject, and that suggestion they gave you make sense, you can take all your code you have right now and just migrate it to a plain codebase, but it would be easier to just use expo eject, it will give you all the configurations for ios and android and you wont need to track which libraries you need to install again and such. Of course if either you eject or take the codebase to a react native init one, you still need to check which expo libraries you were using and check if they are avaiable outside the managed workflow. The most common ones are avaiable, at the end of the day, when you use expo install, its just an npm package that makes sure that whatever you might end up installing, is compatible with the expo sdk version you are using, check the eject section in the docs so you can make a well thought decision.
@@arashitempesta Thanks for the advice! I didn't know about the eject option for expo. Will surely look into it. Also, I read on a stackoverflow post that some libraries aren't available through expo and one would need to download them from a simple react native project. If that's true, then wouldn't getting too used to expo be detrimental to one's experience in the long run? Sorry for the questions, I'm just curious 😅
@@hououinkyouma5372 expo install uses npm under the hood, expo install is an utility to make sure that the packages you are downloading are at the correct supported version for your expo sdk. Example, react native webview needs native configurations below, that is why its included in the expo documentation because the expo team included those configs for you so you can use that library if you need it. if the library uses only JS there is no problem. And the detrimental part well yes, expo abstracts all the configurations you would need to learn, maintain and configure for the platforms you are targeting. Its like create react app, under the hood it configures babel, webpack and such so you can just start coding and set up all the base functionality, if later you need to configure those low level configs, eject and do it but at that point it means you now have to bite the bullet and learn how to do that. It all comes down to what you need and time, if you can just use expo because it fulfils all your requirements there is nothing wrong with going with it and not bothering learning the platform specific configs. It all comes down to weighting the pros and cons for each option.