Why Airbnb was wrong to ditch React Native in 2018 - Mohammad Javad - RNL - August 2023

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
The Talk today is called sunrising react native which is contrary to what you've been told for the last 30 minutes so I'm going to see if I can remove the negative effects of Victor from you guys why is he not here come on all right he's too afraid for the truth don't worry okay so we're going to this is a this is an intro to react native basically and we're going to talk about a very famous article about Airbnb released a little while back so uh as Michael mentioned uh my name is Mo uh I'm the head of mobile uh here in the UK Forest theater theodo is a global consultancy with just over 700 people right now so we've been building digital products web mobile whatever have you for Fortune 500 companies but also startups everything in between you may know us by a different name bam so bam is our mobile specialist startup based in France they've built a bunch of Open Source in react native they've been doing it since 2015 when it came out so libraries like react native image resizer or you might recognize flashlight which is built by one of my colleagues Alexander and it's basically used to measure mobile performance all of this is not to get you sold on theater by the way this is just to say like we've been in the mobile space for a little while invested in it and so being in the consultancy space oftentimes people start to ask you questions about which Tech they should use what platforms they should invest in and a lot of the times the right answer is react native for mobile and you'll typically get a little bit more pushback than usual you'll get asked questions like should we really use react native for the next mobile app that we built is it actually stable are there any serious apps that are built with react native and then at the very end they'll just be like well isn't native better anyway right so there's this cloud of Doubt cast Over react native and the essence is can we trust react native is it a trustworthy technology and could we put the success of our company at stake with adopting a technology like recognative so unfortunately back in 2018 Airbnb was like known as the go-to adopter of react native other than Facebook and then they wrote this article sun setting react native and they basically were saying look we had a bunch of Technical and organizational issues and we're not going to be focusing on react native anymore we're just going to be going fully native and so this caused a lot of damage to the reputation of react native and we want to look at what has changed since 2018 because these guys were using it in 2017 till today uh and we can go from there so let's start talking about react native we're going to try to answer the question what is react native how does it work who uses it in the real world like what apps actually use it that you might know and what is the feature of react native so how does it work less this is broken down into several parts but if you look at reacts fundamentally it's a UI library and it's agnostic to the rendering platform so on web you will have react and then you pair that with react Dom which is saying how should it be rendered on the Dom and it works for web apps and so at some point when react came out in 2013 a little while after people said well you know this would be a nice way to build uis in in Native as well and as Victor mentioned you know back then the state of native mobile development was just in shambles if you've ever written Objective C old Objective C code you'll know the pain that I'm referring to so it was a mess and building uis in react was something that was just so pleasant comparatively so replace that the react native team replace the renderer layer and you use the app registry in react native and basically you had react native now this isn't gross oversimplification in reality this is the new architecture that's in react native and even this is a simplified version so there's a lot of parts that go into this but the gist of it is that you've got some JavaScript react code in the middle there's a conversion layer that allows JavaScript code to talk to Native level code and then each platform execute some JavaScript code and so on and so forth the middle layer is now called the JSI it's this new architecture that they've been working on for like three years it's going to be like the standard at some point but it's still experimental and things like Fabric and turbo modules fabric basically is the renderer engine so it says if you give me a react element what will that render on Native uh and it's that handles the engine for the conversion layer uh turbo modules uh handles when you want to have native code running from your react native code if you want to call it from native code so uh just to give you an example here and this is one of the core misconceptions that people have about react native you have a view that's coming inside of your react native code that is an element in react native it goes through that middle layer and on the other side after some processing comes out Android View and UI view these are the native views on each side and then they get used up by H1 so you don't have some like web views rendering it because generally some people think it's like ionic or something where you just have web views that are kind of acting like mobile videos no these are actual genuine mobile views mobile text elements so on and so forth so at react native learning we had Taz I'll give a talk a few months ago and he had this slide so I've just stolen that line exactly but it's react native is native effectively and if you look at the Airbnb article somewhere buried somewhere down it actually mentions something almost identical to this which is react native is great because it's native so yeah funny how things work out taking a step back again from like the architecture what this means is react native has two layers to it and the react native app you've got a JavaScript layer and you've also got a native layer the split between JavaScript and native code is something that has been changing and adopting over the years in the react native space I think the community is trying to figure out what is the nice balance between the two and I think we're starting to reach that equilibrium a lot of code now runs on the native layer and there's been tools that we're going to look at in a little bit that's that makes it easier for you to run native code from JavaScript and so things like animation they should probably be run on the native thread so that they're smooth and not janky and that type of stuff so this is something we're figuring out but important to note you've got JavaScript and you've got native now with JavaScript there comes the nice advantage of the fact that JavaScript can kind of just be shipped over the air so if you decide I want to actually change some of my JavaScript code what you could do is you could just generate a new JavaScript bundle and then send that to some server and afterwards your react native app can actually start listening for new changes to JavaScript and then it can just update the JavaScript layer without even going through an app store and this is something that's quite unique to react native I don't think any other I know flutter doesn't do this kotlin doesn't have anything like this and neither does like Swift apps so this is this concept of over-the-air updates is quite cool what that means in reality is that you can basically update your app at a much faster rate you shouldn't abuse this and that's usually the question that comes up you can faster you can have faster iterations you can release out code to your users quicker if you've got a bug fix because you don't have to wait like hours at the very bare minimum to get it approved by Apple so it's quite powerful but it also lets me do what I'm about to do next which is have a bit of a wacky interactive demo so we're using a meta framework quote called Expo and it makes building react native apps super simple you guys have downloaded Xbox who's downloaded Xbox go anyone have Expo go okay that's more than I expected so go ahead and scan that QR code we've already got six connected devices here should I zoom that in all right everyone scan the QR code yeah okay so this is a very basic app this is there's not much to this this is just a few lines of code and effectively what we've got here is we've got a map view which you'll see on the right in the simulator and that map view is a native map view it's not like some web view of a map view and what that means is if I actually scan this on my phone I'll just start to show you some of the gestures that you can do on your on this if I have something up on my phone first of all it's detected that my phone is in dark mode so all of the Native functionalities and the system settings that you have automatically come with it and this is a Swift view that we've got but it also means that you know I can do anything that I'm used to on the native layer effectively because this is a native map view and nothing more with a wrapper that is in react and the markers that you see there those markers are react native views that have then been translated down to Android users as Android views and to iOS users as UI views and in theory with a little bit of modification I can also run this on web and the animations are running on the native layer animation driver so we're basically running very very minimal JavaScript code here and most of this is done out of the box without me needing to write a single line of native code now one of the nice things about this ecosystem right now is it's so well developed that you have access to so much Native functionality without needing to have a develop native code so what do I mean by that I want to actually add some haptic feedback to every time that you click on one of those markers on the map so what you can do here is I've imported haptics from this Library called Expo haptics expo's got a whole bunch of these native libraries and what I'm going to do here is I'm going to actually are you actually feeling the the haptic feedback so far okay cool I've Ruined My Demo it's fine I'm going to remove the haptic feedback because Victor's told me it's crap so haptic feedback's gone and now because it's all over the air you should have gotten the update instantly you're not going to get that anywhere else so magic okay cool cool so you've got a little view into like how easy it is to change things on react native how quick and responsive it is as a developer the devex has gotten really good over the past few years we've talked about how it works obviously we can go into more detail there's a lot of content just look it up as you're interested all right let's talk about usages of reacts native so uh react native as you might know is owned by meta or it's open source by meta it's a very thriving project you know there's hundreds of thousands of stars Bunches of forks many companies have internal Forks of it as well if they want to modify it but it's a thriving Community there's a massive ecosystem around it uh it's not some Library that's got a few hundred stars in it you know it's something that's very serious and you can trust it within your applications and Beyond GitHub stars because they're not the Arbiter of truth let's look at some apps that are built with it So Meta has built parts of the Facebook app but also the entire ads manager app in its entirety and some of the Oculus app with react native Microsoft surprisingly has a pretty big stake in rap native so they've built the office apps the Outlook apps and the Xbox game pass apps and Shopify famously in 2020 announced that they are going all in on react native and they've got the Shopify app and some of the other apps for sellers all built-in recognized so you've got three heavy weights in the tech industry with a lot of money pumping cash into react native so it's it's a good place to be and what that means is beyond the apps that they build for themselves they actually output a lot of code for you to be able to use in your projects So Meta obviously manages react native but also they have the Hermes engine which is like a fast JavaScript engine that's optimized to run Rec native on devices like iOS Android and I think also on Mac OS and uh windows uh Metro is the bundler that they've built specifically for react native so they're really managing that side of it Microsoft on the other hand has kind of taking ownership of Windows and Mac OS ports of react native and some tools like rnx kit and then you've got Shopify solving some of the problems that people typically talk about in rack native like slow lists with flash list are in skia to have nice canvases to render stuff on and then a UI Library like restyle so they're invested in the open source of this ecosystem as well which is great but it's not just the big names like this is usually there's these screenshots come from Evan bacon who's one of the Expo core team members and he goes on the App Store and looks at what apps actually use react native and average is about 25 of the apps in the top 100. apps in the US at least seem to use react native so libraries apps like that shop which is by Shopify klarna you might know there's a few here that are basically using react native under the hood like Capital One and so on and so forth so and a lot of these apps are really highly rated this this notion that it's hard to create good quality of react to Native apps is one that I just fundamentally disagree with and I think there's ample proof that teams have been able to to manage that so I want to talk about the feature a little bit did anyone go to app.js other than Michael Michael cool there was a there was a talk there called Reckoning of 2030 where Fernando Rojo talks about like the future of react native from predictions more than anything really but he talks about the the previous state of react native and where we're at right now any of the common issues that people have with react native is things like lists are slow images aren't optimized and cached properly you know shared transitions are pain native code is difficult to integrate with a react native app if you don't know what you're doing and so over the years especially in the last I'd say couple of years the communities kind of come together and uh and propose some solutions this is ripped directly from this guy's talk by the way so that's why I mentioned his name don't give me don't give me slack for this and so you know Shopify made flash list Expo image and then things like reanimated allow you to now do shared element transitions as quickly as possible and then native code is becoming easier and easier to integrate so we'll get into that in a second so this is really interesting to know the state of things but I I kind of want to talk about the things that I'm excited about so this is the subjective part of this talk so one is simpler Integrations with the native layer so the new architecture is kind of being worked on actively turbo modules makes it easier to integrate native level codes with a bare react native architecture and they're making steps to make this more accessible to apps that are Brownfield like adding the new render interoperability layer uh stuff like that makes it easier for all direct native apps to start to adopt some libraries that use this new architecture but outside of the world of meta a lot of people are now using Expo and Expo was traditionally limited by how much Native code you could you could use that wasn't within their sort of client and they've been taking some really great steps to make this easier than ever before so uh config plugins allows you to basically write uh plugins that will modify the native level code in any expert project that is really cool because you can still stay within that ecosystem and do any changes you want to the native layer but beyond that the Expo modules API is really cool so this is this is 2021 so not as new anymore but you know new enough so we're going to go over this and this is a way where you can define a module of code in Swift and kotlin uh pretty easily and run that if you need in your react native app so this is the example that they have in their docs you can see the Swift and the kotlin code on the left and the right so you basically Define a module and within that you specify the name of the module but you also talk about sorry about that and then you talk about functions you might have some methods and some events that live within there and these all will can then call other Swift files and call other Swift functions or they can just kind of like all live within this one file that's not best practice but you know just for the sake of this example it's there it's the same on the kotlin so you can see the syntax here is very similar beyond what like to the extreme that they could have made the syntax similar where their languages would have allowed they've done it and it's quite nice because there's that like familiarity as long as you're familiar with the way that they've defined their API it's quite easy for you to get started even if you don't know switch for cotton so that's very basic we're just going to have a function called that's called get theme and it just returns system on both you can make it more complex later and learn how to do that and then you have a module definition in typescript that says like here are the functions that are going to be exported by this module at this stage you have to cast the types but they're actively kind of working on stuff to make some of the types deduced and then you use it inside of your rack native code and it's pretty much that we're changing sort of three files each of them less than 10 lines you can basically create your own native module which is really powerful and really cool and I think it makes it more accessible to people who haven't written native code before but it also just make it so much easier and you don't have to worry about it it's all handled within that ecosystem so we're bridging and this is pun totally intended the gap between JavaScript and Native and hopefully we're all going to be very happy Developers so talking about Bridging the Gap between JavaScript and Native has anyone heard of universal apps two three four you've heard it because I specifically ranted about it to you you don't count four okay it's my co-worker I'm not this me so this idea that you can write once and run anywhere so the vision with arachnidism that you write once and it just kind of runs everywhere it's that you learn once the apis of how like react native works and then you can write it for any platform that you want there will be platforms specific differences people in the community though they they kind of wanted to go a step further and just run for them wherever they want and so this Vision has been fueling a lot of Open Source and so there's a lot of libraries like react native for web it basically means that you can run your react native views and texts and it'll just convert it into web elements for you in the Dom but there's also a lot of other libraries that are being built like UI Library styling libraries navigation libraries that basically means you just write one set of code and it just kind of works on web and mobile and this is really cool because instead of having three teams initially which is iOS Android and web you reduce that down to first two teams with react native which is mobile and web and then maybe in some utopian future you can just have one team that understands front-end in the full complexity of it and so we've actually been trialling this a lot with some of our newest projects uh this is the arc this sort of the the architecture the folder structure of one of our news projects that we're working on um what we've actually done here is flip things around this is a universal app we've got an apps directory but there's a bunch of packages and each of these packages are either going to be managed by one person or by one team specifically so and they're kind of split by the features of the application so things like home pages a feature listen read watch these are all kind of features and so what that means is that if you look inside of each of these features they'll contain the Core Business logic anything that's common in the react native space like some of the components but also if there's any specific iOS code that's necessary uh Android code or web code they can kind of live within this package and so what that means is you're kind of taking your platform teams teams that might have an iOS Developer an Android developer and a web developer and you're making them product specialists in that specific part of their feature which is really cool because it can oftentimes accelerate and you don't have to worry about too much context switching between different features and parts of a big app so you might have seen this before the next natural step is why can't we just have Micro front ends for mobile and this is kind of the long-term game that I think we can play with so if anyone's familiar with webpack there's module Federation here and with module Federation it basically means that there's a shell sort of bundle that you have and it can access different sub bundles and they can all have different deployment streams and different processes to there's this sort of like a discovery of different bundles and what that means is different teams can manage parts and chunks of an application and so people have tried to use this with react native there's this webpack ports called repack it's a toolkit that lets you basically use model Federation with react native the issue with this is that webpack isn't the de facto bundler for react native it's Metro and you have a lot of issues introduced when you start to use webpack so just to show you the other direction the people are going in people would use webpack on react native for react native for web Expo now comes pre-packaged with Metro for web so they're stepping away from webpack as much as they can to standardize it all within Metro to work across web and mobile so you've almost got this Divergence of where the different sort of community players are going and I think ultimately it would be great if and I think this is something that is possible Metro will start to support some mechanism very similar to module Federation because then you can build something which is an app that's got a bunch of different Federated apps within them micro front ends if you will that are native layer sort of sub apps within them and that is something that I think can be a game changer for the mobile development space because you're suddenly allowing this new scale of Enterprise level application development especially for super apps like in China you'll have WeChat that basically does anything you could want in in functionality and you know you need multiple teams for that and this is going to be groundbreaking for that and uh something that I'm looking at a lot and working on so it won't go into too much detail but I think this is a really cool thing to see coming into fruition so we've talked about what react native is how it works what the usages are and what the future is now let's get back to that Airbnb to Art article right that's why you're here so the article is not all doom and gloom there is definitely Nuance to it unfortunately people read like The subtitle and then they kind of just make a decision and say oh this means reckon is bad no they talk a lot about things that that work well you know if you look at the text section of that article they talk about how cross-platforms help them share about 90 of the code across web across Mobile Android and iOS they really loved using reacts obviously it was a declarative UI library that they could use and they didn't have access to that on the native layer so many different things one of the one of them was the collaboration with web which I think is interesting because again they were sharing things like their Redux stores across web and mobile so it saved them a lot of functionality but it also gave them feature parity across the team and you know if you look at the the survey that they did among their their developers 80 actually described it as positive or incredibly positive there's only about 20 that weren't happy about it so it was more of an organizational thing so what actually went wrong and if you dig into the details they weren't happy about the sort of the maturity of the ecosystem for Native functionality as one example and now the Expo SDK as you saw has a bunch of different libraries like haptics that makes it super easy for you to integrate them you don't need to be on an expo app to use those libraries either they're accessible on any react native Library they just make it significantly easier in an expo managed workflow like like lack of type safety in arachnid it was a big thing for them they were really struggling with refactors they couldn't keep a track of all of this they tried to use flow back in the day wasn't good so typescript is now actually the default language within react native apps whether you start them in Expo or you start them with the bear react native CLI so things are starting to move in the right direction you may have different opinions about typescript in itself and that's that's a whole thing but that's just the language that that's more restriction than language rather than I'd say Rec native another interesting thing was inconsistent performance of JavaScript engines so they were relying on JavaScript core at that stage and the version of JavaScript core on Android was just notoriously horrible it was okay on iOS and so with Hermes now being the default in react native if you look at the left this is actually made by Alexander Moreau who does some of our performance stuff on the left hand side that's just a basic app without Hermes and it takes several seconds to open on the right hand side it's on a low end Android phone with Hermes and it just loads pretty much instantly I'll let that go one more time it's about 26 seconds at the start of time so Hermes done within a second the other side and this is on a j7 which is as bad of a performance phone that you can find anywhere so yeah and then also I'm sorry if anyone has a j7 by the way and then a also about the slow app times and the render speed which we just saw there the other thing is lists people seem to really struggle with lists on reconnective and it's I think it's largely due to the existence of existence of flightless the fact that flight list exists as a default rack native component people kind of think oh this is what I should use deceivingly and then you struggle and so this is a comparison with using flat list versus Flash list in terms of the JS thread getting blocked if you see on the left hand side the JS thread is getting blocked that's not like delays in getting data that's just the JS threat getting blocked whereas on the right hand side with flashlist you're pretty much just scrolling without stop so there's a lot of these things that have been worked on over the years that makes it significantly better to develop a rack native app with a higher quality the other thing that they mentioned was upgrading rack native versions there's now the react native upgrade helper it's not perfect but it gives you a little bit more support in doing it and then there's also Expo upgrade if you're in a managed workflow it just basically does it for you and tells you maybe these libraries might need a little bit of manual work but in all in all pretty much does it for you I've had like maybe one instance where I've had to actually go into the code and fix it as you can see there's a lot of these points that maybe aren't applicable anymore you know react native in 2017 2018 is not the same piece that it is today and so the response since has been mixed so Shopify in 2020 and non-swell we're going all in on react native and we're actually going to try to just like fully adopt it as much as physically possible for our functionality which was really cool it kind of revived the image of react native a little bit and their CEO seems very passionate about this decision somebody asked them like didn't Airbnb just react native and he's like well uh you guys should try out react natives pretty good yeah I'm just joking with you okay so all of this is to say I've ranted rambled on talked about some opinions and and whatnot all this is to say that there's just like a lot of exciting stuff in store right now there's people far smarter than me working on react native and I hope that this has kind of got you slightly more excited about react native or maybe just interested in looking into it because honestly I do believe that there's an incredibly bright future awaiting react native if you want to stay on connected on the app formerly known as Twitter that's the QR code and that's LinkedIn so yeah I guess a thing that I hear a lot and that Victor kind of touched on was like like the breakability of react native as a framework you know it seems like from the get-go there's a lot of choices to be made and it's easy to do it wrong how big of a problem do you actually think that is for a company looking to build an app now and how do you mitigate that I think you've got to give incredible kudos to the Expo team because if you are trying to start a react native app as a beginner especially without uh any of the those decisions made and it not being as opinionated enough you're going to shoot yourself in the foot so many times and so I think with Expo it's quite simple because of how opinionated it is how many sdks you have access to and the documentation that's just there for you it kind of holds your hands throughout the process and teaches you how to do a lot of these things like how you go through your builds and how you set up your updates with them and a lot of that's done kind of out of the box but it really explains some of those Concepts to you so I think you have less choices to make with Expo as you delve deeper in obviously it's a little bit more flexible in that in those ways and you can make a lot of mistakes and a lot of apps do I think the scope of it has gone so much better now with Expo and with Expo being so mature that I don't think there's much of a risk for it for especially for small size apps and for startups I think they're going to be great for larger scale apps I think you need to have an architectural conversation and you need to really plan it out but I think it's something that can be incredibly powerful especially with sort of things like Expo modules where you can kind of Define how much how much Native code you want to have and you can write some native modules yeah I think I've gone on another tangent I want to ask about that over there JavaScript bundle updates are there any limitations of what sources you can update you can update anything that doesn't require any new native code so if your app suddenly needs some extra Swift or kotlin code bundled into the package that won't be updatable over the year what you can update is let's say in the case that we were doing we're doing over there updates right mod you the apps that you had installed on your phone they already had all of the Native codes to cause a vibration so I didn't need to send that native code you didn't need to receive that native code anymore all I was sending was sending the JavaScript invocations of the of the native code to say run the vibration on so-and-so spell right so if you want to make things typically that means if you're not adding any new native libraries to your application you'll be fine if you're making things like a bug fix on the JavaScript layer maybe you've mishandled an API call or something like that you can fix that and send that over there isn't that Rising any security issues can I send new you could yes so one of the things that then people say about this is okay well what if I just change the entire functionality in my app right Apple's guidelines on this are that you and and sustain probably with Google I'd say is you can't change the nature of your app without going through an app store review process so if you do that your users will report you and your Apple to get taken down by the end of the day usually depending on how quick they are so yes you can circumvent that whole process but you can also probably write that in Swift and column to some capacity like you could write some engine that will then like listen for some code and then execute something that you don't want to be executed so it's not it just gives you the functionality to send some JavaScript code but yes you can definitely abuse it you shouldn't abuse it because your Apple will get taken down and all of the bundles that are sent over there are like code signed and everything so in in that sense you're you're safe but it's more can the developers do something shady and yes they can yeah during the demo like you use the online editor and then you change the something and then the change was immediate on the simulator what's the setup how did you do that so on the simulator specifically that'll work with any react native application that you have because you're every time that you change your your JavaScript code you're effectively doing a hot reload and so it ships the bundles with Metro it ships those bundles directly to whatever device has been listening for the JavaScript bundles so any react native application that you build if you just go and like start a new rack made of application or you start a new Expo application they'll they'll have this live reload functionality and so what we used here was an expo snack it's basically like a cloud hosted version of that which basically exposes those QR codes to the Internet so it's serving the bundles to everyone publicly so you're able to use it on your phone and everybody else's regardless of what network they're on so first of all I wanted to say it was a nice explanation you provided I've been using react native for years now I've used Expo I've enjoyed over the air updates running over tunnel a lot of cool features provided by Expo but Vector was throwing a very important thing regarding the native code so right now what you've said what you've mentioned now we have jetpack in in kotlin and we have a swift UI right compose and Swift UI and I've I've looked at both and they are quite similar so don't you think we reach a place where one mobile developer can do both instead of going for ACT native to have the native you know performance touch with I I think to some degree you can't have the convergence of them is is that they're getting closer right and they're they're actually all inspired by react so jetpack is officially like said oh we've we've like taken a lot of these Concepts from declarative UI Frameworks like react and I think it's the same with Swift as well um so yeah they're all getting closer and it means they're getting closer to react native as well um so it means if you're a react native developer you can probably write easier Swift UI code and easier jetpack and postcode as well um but the gist of it is yeah whilst the UI Frameworks like Swift UI and jetpacks are getting closer I think you still have to go in and learn the underlying native code you need to understand how like to handle data and state and error handling on calling and you need to do the same on Swift apps and you know those things don't necessarily come free and it don't come for free and you have less margin for error when you're doing it in react native now all of the code that's running in react native is native layer code as well but they're written by the Expo team which I have a lot more faith in their coding abilities than I do in my own so that that would be my counter argument to that but no they are getting closer yeah Mo what do you think about Victor's statement from the first talk when there was a table and and I had to ask when testing in react native was his and icon was ahead was exploding so I assume it's a headache updating was a headache and typescript doesn't work as intended he prefaced it by saying that table is subjective so well it's his opinion of it I didn't agree with the table I thought there were bits of it like uh testing Frameworks on react native I mean the examples that were there RPM detox most people are using Maestro that I know these days people have migrated over so I think like things are a bit different now one of the things as well with testing I think some of the core fundamental concepts that Victor was talking about you should apply in your react native apps I one of the things that I'm a bit annoying about to all of the developers at our company is I keep on talking about this one hook for screen rule they're so annoyed of me I swear and like it's this concept of saying like none of your application States your UI like data fetching and stuff should be inside the components itself it should live in a custom hook that does all of that and what that means is the testing is significantly simpler because you're testing like input output you know if data is like this will it throw down an error and then you assume that the UI components are going to handle that like it's a known testing principle it's called The Humble object model that Martin Fowler's got like three articles about so you can go and read it so like that is great stuff that we can learn but it doesn't come for free in typescript so I can understand saying it's not coming for free but it's not impossible in react native I think if you have the right people teaching you and you have the right architecture in place that's actually very simple to get that and you're still using a UI library with 111 000 stores sorry okay thank you everyone [Applause]
Info
Channel: Pusher
Views: 4,060
Rating: undefined out of 5
Keywords: developer language, language code, libraries, help, tips, forum, meet-up, meet up, learn code, coding education, coding hints and tips, lecture, coding lecture, learn about code, learn a developer language, amazon alexa skills, developer conference, node.js, javascript, backend
Id: RwUQnfcxH0o
Channel Id: undefined
Length: 35min 1sec (2101 seconds)
Published: Thu Sep 28 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.