The work that you DON'T SEE - Lorenzo Sciandra | React Native Heroes 2023

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
and now I kind of want to open a small parenthesis you know some of you may be thinking okay but how is this been here happening like these are pretty massive things like you literally refactor the entire code base why they didn't even know or how do these things even happen so there's no one like simple answer it's basically a conert of things as some of you may know in the rec native uh space there's meta of course that it's like the owner the original Creator but there's also an ecosystem of Partners uh among those Partners is of course Microsoft and other companies and what we do is invest and collaborate a lot on the success of re native [Music] itself all right hello everyone good morning it's great to be here uh I know that you want to hear all about FR native but before let me talk a bit about myself I wanted to start by like just saying a big Chow toino because uh as probably just one person in the room actually just one person in the room knows uh I actually went to the Poly Technical here that was my graduation thesis and while I was trying to look for pictures that were not cringe about me at Uni I actually managed to find a picture of me doing RN for the first time back in 2016 uh this was more or less around like R native 0 2728 is anyone else in the audience been around or being using RN ever since oh lovely yes to perfect yeah uh it's like it's probably better if you weren't using rag native back then it was quite a message we'll be talking a bit about uh in a second year but for those of you who don't know me uh I'm Loreno shendra as Lucy was just saying you may know me aset I'm a senior software engineer at Microsoft and I've been a maintainer and releaser of retive for almost 5 years um well maintainer for more than five years releaser a bit less but we're getting there and that picture and like my face may not look familiar to you but maybe this does if you ever use rective or you're on GitHub uh usually you may see me closing your issues or commenting on your PRS so your welcome or I'm sorry either one we can talk it out I'm sure about that uh but enough about me let's talk about uh the problem I want to share with you all today um you know when it comes to react native usually especially at this type of events or like in blog posts in YouTube uh videos what you hear about are like the big new shiny things and usually that means talking about the new architecture as Umberto was mentioning earlier talking about the new future coming in the new releases like I'm part of that problem in a way because I I want you to use the latest version so I'm always trying to be like hey look at this it's shiny right right um and also of course Expo as always bringing a ton of hype and a ton of like good interesting features and I know that Thomas later today will share more about that uh but you know when it comes to recognitive uh and this picture kind of gives it away but like there's so much more going on uh usually the part that people talk about is much less than everything happening and me um I'm usually down there and that kind of like is what I would call the boring side of Rec native that's probably why we're all the way down there but this is where uh usually uh we talk about the processes we do documentation work we do refactorings and today what I want to do is kind of like get you down there with me so that I can show you a bit what's going on all the way down and to do that let me start with something that might look familiar but we're not going to talk about releases in the usual way you know when it comes to releases most of you talk or like think uh about like the newest one uh right now it's of course uh 71 I wanted to get here on S be like no it's 72 we had a couple problems so it's coming up next week I hope but uh we're not going to talk about the new shiny things we're going to talk about how things started actually uh when I did my first ever release with which was uh 57.4 this one as you can see things were not quite like they are today uh for example like poor communication like it just barely says September it's like what version title is that Laur so why do you even put that there um there was a lot of tribal knowledge for example the only people doing releases back back when uh it was like me mik Kowski and I think a third person but basically we're all people from the community and we were just sharing with each other like verbally how to do things there were no documentation we were just like okay oh yeah for that thing you need to do this and then that and like that also meant that if we weren't around for any reason if one of us was sick like the release couldn't happen pretty much which wasn't great and of course lack of testing like we were kind of like doing things blindly we were trying our best for sure but uh I think that some of the practices that were in place back then were not the greatest and some people you know when upgrading or were trying new versions they may have experienced crashes that could have been avoided and that's why today things look more like this um as you can see we have change logs which is great we had to create a custom tool that would work for a very specific way R native is created but now it's there and we use it constantly uh we have documentation we I know this is going to sound weird because like usually it's pretty hard already to convince people to write documentation we had to write documentation to document the processes to do releases so it's even less interesting but it's so good that we have it there because finally I can take a vacation and not worry that no one will be able to do it without me and then of course we have processes like for example we have the discussions maybe if you've been using recognitive for production uh work you've seen that like you can come to the discussion for the minor you're using you can ask for a commit to be chap pick if you have a problem that has already been solved by commit main or in another release and we will try our best to pick it up and bring it into the version and not only that uh as you may have noticed also in the other screenshot I was showing earlier when we do announce a new version you'll usually see four people in the blog post announcing it and that's the release crew like we have now got to the point where we have two people from the community two Engineers from meta on rotation working as the release crew for a specific new version which is incredible that means that we can share knowledge we have redundancy and we have rotation like for example uh I was in the 70 uh crew I'm I I'm in the 71 I'm being in 72 of course but like I'm going to rotate out for 73 and other things uh can move also other Engineers can come in both from meta and from the rest of the community not just that we are also looking at improving things even more uh for example one of the things I'm working on is the addition of end to end testing on CI on the gethub side of recognitive this is because a lot of what we do as a release crew boils down to testing and making sure the release is stable and if we something we can fix it so that we hit the wall first so that you will be able to use R native more easily on once we release it and overall this is great because it means that we can create more stable releases and reduce the human error and this is great but we're engineers want numbers so let me show you this is actually working so probably this might look a bit too small so clickity there it is we have actually the number so as you can see here we actually managed to get 71 to higher than 50% like this to me it's Madness like I I I wasn't ever imagining since I started doing releases I would have never expected one single version to become so prominent in the number of downloads by the way this is like the weekly downloads so we keep constant track of all the numbers and everything to kind of like assess how things are going and seeing 71 being a 55% right now like I I took the screenshot the other day so it's very very recent it's huge it means that the new processes the things that we're doing to make releases more stable and L error pron are actually working and yes I know some of you may be thinking wow this is absolutely boring why am I even listening to a guy talking about processes don't worry we can do better I can be more boring I can be more convoluted so let me actually talk to you about my other like uh baby project that took us almost a year to get through um so when it comes to react native as I've been already teasing while I was speaking earlier uh it's not your usual repository it's not your usual process of working in a code base some of you may think oh yeah I just need to go on GitHub there's the rective folder right and that's it no that would be too easy and two painless so things are actually a bit more complicated uh this graph is kind of like simplifying a bit but basically what we have in the r native folder is B the retive nod module the one that you want to use and where we deploy through mpm but also it's a monor repo with like 20 other packages within it and as you can see here uh well first off you may be like hang on a second how can that nod module not bring along everything else then that's a great question it shouldn't and the way we actually fix that problem is through black magic like what we do is pretty much like when we create a branch for working on a new release we cut off some settings so that it will not get picked up which is not ideal uh another thing that you may have noticed is actually that it's very inconsistent like some of these packages are not on the same name space the versioning some packages are on version three we're still struggling to get Rec native to 1.0 how is it possible that some packages are on a different major entirely and like also how do you even publish those packages Well turns out the only way and this is something that I learned way too far into the process like last year I think I only realized this but basically all these packages could only be released manually by met Engineers like there wasn't even anything on CI it wasn't automated at all and I was actually able to find a video of us trying to get some of these packages to work as you can see everything went completely fine the entire time but anyway uh J decid how do we solve it uh because yes we did solve it uh again as I was saying it took us almost a year but what we did in 12 months was take Rec native and bring it down into the package you're like oh my God this is so revolutionary why did it took you so long well that's a great question so well uh the reason is that because retive itself is actually a reflection of the code that lives within meta so it was very complicated to get this done because it had to First happen within their internal systems so it took us actually a super long time and not just that by doing this now that it's a proper monor repo we are also able to rename some packages and do reversion as you can see here now every package is on the same minor as rective itself so this means that we can do targeted releases for any of these other packages for that specific if minor also they're in the same Nam space which is like so much more consistent and because finally things are working the where they're supposed to we can do automation which is oh so good now all I need to do is run a script push on C and everything works automatically well most of it but it's still like such a huge change and I'm happy to report the 72 is going to be the first one implementing these new systems uh and yeah as I was just mentioning by the way this job was only doable thanks to some engineering uh some engineer meta called Rosland and like his work was absolutely essential to make it happen so like this is like a shout out to him because like literally when he jumped on the project and we were like eight months into it we were like okay this is probably going to take another eight months and like in two months it came in it made it happen we were like oh my God yes thank you so but yeah so why this is good why why does it even matter well first off allows for further granularity now that we have everything that works and everything set up is nothing is really preventing us from adding more folders to the mor repo or splitting the rective folder even further what if it was rective IOS and retive Android or we split things even further that allows for more control and more automation right and also makes things easier to contribute all of a sudden you need like oh welcome to R native here's the list of all the weird things that you have to do if you want to contribute like please make sure you don't fall on any of the traps and you know it scared a lot of people off like a lot of uh people when talking to me were like oh I would love to contribute but it's too complicated I was like yeah I totally get it and I really hope that now with this change we're going to be able to make it easier for everyone so basically um I do a lot of massively boring stuff absolutely but also these things are building up to a very exciting future overall and now uh I kind of wanted to open a small parentheses uh you know some of you may be thinking okay but how is this been here happening like these are pretty massive things like you literally refactor the entire code base why they didn't even know or how do these things even happen so there's no one like simple answer it's basically a concert of things uh as some of you may know in the rec native uh space there's meta of course that it's like the owner the original Creator but there's also an ecosystem of Partners uh among those part Partners is of course Microsoft and other companies and what we do is invest and collaborate a lot on the success of re native itself so for example there's the discussion and proposal repository this repo is where you may find all the rfc's if you want to get a glimpse of what may be changing further down the road you should go there and have a look and also these communication are openening all in the opens because we really want people to be able to see what's happening and even you know contribute or comment on them even for smaller working groups for example the one on this uh on the left side here is a working group that we as Microsoft started last year uh to talk about Metro with the Metro team uh the bundling uh tool of course for retive and not just that like very very recently like at appjs uh more or less a month ago um Alex Hunt from the Metro from the developer experience team at meta literally announced a new working group for the bugging because we finally are trying to also address that problem and yeah as you can see like we're trying to literally keep all of this as in the open as possible and as interactive as possible so some of you maybe I hope maybe at least one of you uh may be asking yourself like how can I get involved like this looks great I have my own ideas for how I want to see recognitive change I want to make it better so again no simple answer uh sadly uh but what I can do is kind of give you my personal take on how you can try to be you know participating in this and shaping Rec native into what you think it should be so it's a pretty simple but it's actually pretty complicated at the same time uh so first thing you need to have your own proposal it needs to be tight it needs to be very very well done it needs to be be thought through you need to review it you need to prepare a document show some graphs have anything that you can have on your side to explain how your idea is very good you should prepare once you have it then you should show it to some of your colleagues some of your peers get some feedback you want it to be very very smooth like it's basically like pitching an entire new startup or something like that it it needs to be very well done and then at that point what you you need to try and do is go to meta and like hey can we establish a partnership can we collaborate on this I want this to be something happen can we make it happen uh to some of you maybe working on medium to bigger sized companies this is how you sell it to your leadership by the way you go there and like oh I'm going to establish a partnership with meta like oh my God and yeah that usually helps um and then at only at that point I wouldn't do it any earlier than that like once you have a collaboration with meta sealed that's when you do the RFC in the discussion and proposal repo sadly not all the rfcs that you can see there have gone through this process again this is just my personal take but uh if you want to be successful you want to see the things you want to make happen happen this is how I think you should go for it and then at that point you need to be ready to co-own the plan which means working actively on it uh it's not by chance that the two changes I've just shown are in a way made by Microsoft I worked on these things directly for many many months years uh in some scenarios and talking about made by Microsoft this is the a Shameless plug slide of course I had to do it uh we actually aside from investing in R native core directly with like me working on the open source we actually do maintain in case you don't know uh Mac OS and windows you can use rective to develop a desktop there was a to at chain react again less than a month ago about how they migrated Facebook Ander from electron to desktop so to re MOS and re Windows which provided huge Benchmark improvements which is incredible and like we use it in our own production apps uh again we have many talks there's an entire Dev blog official uh Microsoft Dev blog about R native you can go there see all our talks all the ways we use R native we also do maintain things for more like if you're not interested in desktop we have R native ttop basically if you have a library this solves like 80% of your problems because 80% of your problems come from having an example up that is always updated and then we have RX kit which is our monor repo this is where we anything that we create as a tool internally at Microsoft and we want people to use internally we put it out in this repository so that the entire Community can benefit so for example the Metro serializer there is an extra plug-in that we have created to add three sh to Metro which is something that now it's in the works for Metro itself but so far this is the only way to kind of like reduce the bandle size of your apps then we have a line apps which is another tool super helpful when you do upgrades and so so much more so please if you want to learn more ask me the directly go to the link follow us on platforms but this is the parenthesis let's close this one off let's actually get to the closing of this talk to be honest so as you as I hope I have shown you like R native yes there's a lot of hype a lot of great things going on but it's not just that there's so much more going on under the surface and key companies like Microsoft and meta are heavily invested in the success of this of this technology on the flip side this means that meta if you have a good idea they will listen and probably help you get through with it like it happened for the monor repo work of course you need to know where to look I really hope that I was able to point you in the right direction with this talk and also be ready to put in the work sadly uh especially now uh you know with companies you know doing layoffs and AI taking over and all these great things is getting like it literally needs to be a partnership you need to be involved and work on this all together now we're done in a way we're getting up we're done with staying all the way down there with the iceberg and to close it off I actually wanted to get back at the hype level and um Talk a second about when I started uh doing Rec native open source because I'm an engineer so as most of you when I fixate on something I over fixate on it and I learn anything that I can and what happened to me by learning the history open source and learning how other projects do their leadership structures or like how projects get set up and grow over time time one thing came to me while I Was preparing this talk which is I think a very uh like bold statement in a way but it's a very personal takeaway that I really believe in which is that rack native is one of the safest bets in the entire open source space like think about it like some of these changes that I've just shown you they're massive can you think of another open source project these maintained by two of the biggest tech companies in the world that is 8 years old and can still do these big changes like and I even even talked about the new architecture which is another big change coming up like the fact that direct ni is so like well covered and so like able to keep evolving to me really shows a virtue of this project as being one of the safest but in the entire open source space but yeah that was me uh I really hope that this all kind of gave you a boost of trust in the project itself uh and thank you for listening uh I've been Loreno you can find anything on my website um and Twitter and all those places and now we have a bit of a Q&A for us welcome
Info
Channel: React Native Heroes
Views: 1,635
Rating: undefined out of 5
Keywords: React Native, software engineering, mobile app development, future of coding, coding revolution, programming future, software development, ecosystem evolution, React Native changes, technological advancements, insider tech talk, React Native upgrades, mobile technology, developer insights, coding future, React Native community, Microsoft technology, next-gen app development, coding best practices, app developer insights, mobile app trends, React Native future
Id: epOzZXQKDFY
Channel Id: undefined
Length: 22min 11sec (1331 seconds)
Published: Tue May 07 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.