Callstack OSS Update

youtube-cover
Subtitles
Show
let's go back hey hello everyone Welcome to our next episode of coffee talk by callstack when where we talk about latest and greatest Enrique and react native news today at callstack we have a Learning and Development day which is a day when we gather all together uh to this class Learning and Development topics and I was thinking I could get some of my colleagues today on podcasts to discuss our latest and greatest in open source activities that we do here at callstack so my first guess is as always as usual uh Mike pershkawa our head of Technology who is responsible for our open source activities hello Mike yeah great to be here as always uh there's a coffee talk and we are supposed to drink coffee but today I have a tea yeah for a coffee for me and yeah um we have some caffeine right we can like repurchase and there's some caffeine in uh um in in tea as well uh so it's not too much okay let's jump into the topics uh I have two for you first please explain briefly what do we do at call stack in terms of OSS what is our structure there uh yeah so um OSS uh as it stands for open source software um uh at coastac we have a um r d and open source department or a technology department that governs all of our actions in the open source and we invest um heavily in that as a company it's like vital part of our business it's in our company's DNA and uh um as a part of it we structure it uh in two ways we have our maintainers that maintain the open source libraries that we believe are important for the community and some of our libraries and also the Deep work research where we um dive way deeper than with the maintainer stuff so just the maintain it's not just the maintaining but actually researching and developing new
Solutions right yeah yeah and uh the research part usually happens uh like behind closed doors and it eventually open source okay so let's jump into the research topic first and I think this one is a bit controversial uh if we can say that uh we are recording this on Friday so this dropped just a day or two days ago the request for comments can you say something about this yeah so yesterday we launched a proposal on the discussions and proposals repository on upstreaming the Expo config plugins specification into react native core so we want basically we want to support Expo config plugins um by default and react native CLI apps there are multiple ways to attack this problem and this is not like the um the only goal that we want to solve uh we're actually there for um as a part of cosex r d we're there to fix uh or vastly improve the upgrading experience of react native apps's number one problem for many years and uh there's this Expo that's you know handling this for for years to come um with uh one of the or two of the ideas the config plugins and pre-built so we thought it there is a space where it actually would make sense to adopt those ideas into the core of react native to make it a part of the ecosystem so it's not only Expo it's just react native where Expo and reactive CLI can Implement specific config plugins and of course it's a bit controversial because uh but maybe before we we jump into the controversy part uh if I I will explain in my own words what I think the conflict plugins are and please tell me how wrong I am okay so I think what the conflict plugins are is uh language to change the contents of native files
inside Expo react native projects yeah I think you could you could say that so it's a kind of a specification a set of tools modifications or mods as they call it where you can write your modifications to the specific native files like xcode configurations or Android or or some um or even some regexs in in terms where there is no good parser for for something that we want to modify and to do it reliably so Expo config plugins allow us to write our modifier so that the native code can be generated for us instead of being there where we can modify it on our own Etc and this is like the deal breaker for upgrading we yeah I was I was going to ask you I'm going to ask you how does that impact upgrading so again I'm gonna throw something out there and tell me how wrong I am uh the way we are modifying uh CLI projects right now is that we modify them directly right so I can write something in my uh application Java file and then when I try to upgrade the upgrade tool does not uh recognize my added lines and this can be a problem and the way the plugin works is more reliable because they work the same way for everyone and they apply the same patches for everyone in the same order uh yeah so uh uh there's a client a simplification but the the gist of it is is there right so okay um so you can you can basically like the problem uh with upgrades uh like one of the bigger problems is that we have all of this native code checked out in our repository it's also a benefit uh in many uh cases so it's worth to take that into account uh but it is there so anytime we upgrade our react native dependency we need to make sure hey did it actually change something in the default template and edit those files manually
um if you've upgraded react native app you know uh that it's a it's a pain basically and with a mechanism such as config plugins we would be able to essentially generate those files so they won't be in many cases they wouldn't need be need to be checked into the source troll um so that gives you this this leverage of uh upgrading reactive version to any version that you like and it will generate the files for you uh provided that the config plugins are um obeying some specific requirements and that they are compatible with the template with the files with the data files out there and that's a tricky bit and that's why we believe um there is a space for moving the config plugin specification into or closer to the react native core okay so that it's specification that's jumping into I understand how is it helpful for how it is helpful for upgrading the project and I think it can be uh a great help to do that jumping into controversy I've it's hard not to notice that in the Twitter discussions in the RFC discussions we have some voices saying that you can already do that like you can already use uh config plugins inside react native so why upstreaming this then yeah you can you can already do that with uh um by installing Expo and running pre-build yourself which will make changes to the um to those native files at the specific um I mean modifications to to those native files and why it's uh and at the same time like there is a lot of misunderstanding of what Expo is what it isn't there is a lot of clients that we also interact with that uh um for many reasons uh that are always that are oftentimes invalid and just don't want
to use Expo for for a reason they they want to have uh you know non-expo app whatever and uh yeah and there's uh an expert accounts for like 40 of reactive downloads so it's a it's a big chunk but it's not all of the apps and I think as a community we want to be in a space where most of the apps are either written in Expo or um or or they're just governed by it or using their um their tools and only some part of apps that needs uh to support extra platforms or need to be at the very edge of react native because Expo is always uh some versions behind using minor versions uh so that's a it's not a big deal for um for everyone and yeah it's about uh Expo is great and it has its own constraints it has its own design goals which are not always the same as being on the edge of react native using alternative bundlers using a nightly version of react native and experimenting with that and we want to make sure that it's all um all possible all supported and now we try to with this uh I don't see you have this RFC we want to start discussion on how to like Advance the ecosystem forward uh it's it doesn't matter if it's yeah that's the end up and reactive core this way or another yeah that's the point that I wanted to end up on so this is an RFC request for comment it doesn't say that we are going to do this next week and you have to deal with it uh we are asking everyone for their opinion and how we can move on with this idea of how to make react native more unified right and it doesn't have to be exactly like uh like you and other folks at call stack wrote in the RFC it can be some other way but let's start talking about this uh thanks mihao for joining our today's Coffee Talk uh have a great rest of your day and I will go on with the coffee talk and with more updates uh
from our open source space and right now to talk with me about the super apps showcase I want to invite graphics and hola to the show uh hello Graphics uh hello hola hola can you show uh tell us something about what you do at call stack and what was your involvement in super apps template yeah hi uh thanks for having me it's it's a real pleasure um so I'm the senior content specialist at callstack and today I have the pleasure of uh speaking on behalf of my brilliant marketing team um so our involvement was basically you know just making the most of the knowledge of our great uh react native experts if I was super app experts and just turning this knowledge into content which I'm also excited to talk about okay and one of the super apps expert that you are talking about is Graphics Graphics can you tell us something about your involvement in super app space Graphics I'm sorry to say but you are muted right now it's like a normal conference call at work hello I hope yes thank you now uh sure I can't talk about it uh so um my involvement in the in the super app uh showcase was mainly just coordinating the the the stuff the the main authors of the show Keys uh was the the first one was Andrew uh and then uh um took over from him uh and he he's the like the last person who could like make it make it into a shape and that we can see and I can also speak from like repack maintainer perspective I'm super glad that this content was created that we have this super app showcase because in repack repo there are a lot of um issues created uh where people are asking how to uh scale the architecture that repack enables you to to to implement and now I'll be able just to you know link them to the Showcase and yeah actually I think you did this you
touched on very important subjects so let me let's let some uh groundwork here uh repack is a tool that allows you to split your JavaScript uh bundle into remote chunks that you can download to your app and uh it's rafik is actually maintaining this and the think that we released now just like a day ago or two days ago I'm really excited about this is the super apps showcase so what exactly is super apps showcase and how does it connect to the repack um so it like takes the the tool the repack as a tool and builds on top of it like uh shows maybe not a full real uh World app but something that is a close to being a pretty good prototype of that app and it shows how you can structure things and connect them in a real world use case because previously we had uh repo which was if I remember correctly was called repack examples and it just showed uh how you uh can do simple things with repack or maybe not so simple things because there were some complex examples there like recursively referencing one main app from the other I don't want to dive into the details here but they were not like a real world use case they were just showcasing what you can achieve with that and now in the Showcase we we basically tell the world how how we see the the the the best architecture side of things and how you you should structure your apps like you can based on that example yeah so from what I saw in the repository the way that we repack team and super apps team as we think how you should use it is we have set up a mono repo for you to clone to Fork to to play with yourself and we reference all of the other parts of the mono repo in one big super app really excited stuff uh so what are the resources beside the monorepo that we are bundling in this huge release
yep actually there's I feel like there's plenty of knowledge that we have to share about uh both repack and super apps because we feel like this concept is not yet as popular in the west uh as it could be um so we prepared some resources for uh both uh Technical and business audiences so that's really a lot and probably I won't be able to tell you all about it but you will find all of them uh in the show notes later on but we have for example the technical FAQ for developers and Tech leaders we have resources on optimizing development and team efficiency in the super landscape we have step-by-step guide to support development and the case study of this our superb showcase so that's already a lot but we also have an FAQ for Business Leaders for those who wants to jump into superb development and haven't yet tried it and we also have some plans for for more so there are plenty of things going on in the next weeks and months I believe okay and uh I don't aren't we are like doing some kind of webinar uh very soon to talk about all of these things it seems like a lot of reading for one person to do right yeah so there is going to be a webinar it's planned for the 10th of May uh and I think you all are invited uh we'll be also sharing uh more details about it in the show notes it will be focused on updates uh to repack and some practical insights about uh superups and the use of repack in this context oh yeah okay awesome um last last thing that I want to have your opinion on because what we are doing here releasing this super apps template super app showcase is to give people and ready to use architecture let's say of applying repack in real world but I know from discussions from other with other developers that
um there is some confusion about how repack should be it's not about how to apply repack in the architecture but how to apply repack in the business case if they should use repacks should use super app in their business case so I hope I don't want you to you to answer this on this show but I hope you can touch on this subject uh in the webinar as well yeah we surely will okay uh thank you Ola uh for joining us for the coffee talk I hope you enjoyed it and I hope we'll get uh to talk with you uh pretty soon yeah thank you guys rafix please stay on the on the air uh because I what I want to talk to with you uh particularly about is updates in repack so if you can uh let us have a peek behind the curtain what's going on there sure sure uh so um we're currently in a release candidate phase of uh version 3.
2.
0 uh
there's our C1 you can batch uh from GitHub now and and just play with it although there will be some slight changes to the API as it's released candidates so uh there will be some breaking changes before we uh release it uh like in the final version and there are basically two features uh that will come with this release the first one is uh a built-in way to handle remote Assets in the repack itself like a extension of a webpack loader and also a webpack plugin that will be baked into the repack it was problematic there were a lot of issues in the repo itself because previously there was no built-in way to to handle remote assets coming from mini apps you either had to implement it yourself manually which was not a great solution and there was another way to just inline the the assets into the bundles of the of the of the mini apps that you're on demand fetching and um it was also not a good idea because
it's like if your mini app is asset heavy it will explode the bundle say so so yeah and I can imagine that you can reference you you may want to reference the same asset in in separate mini apps so yeah that's another so so the the first thing is like a way to handle remote assets uh and uh it almost I think it's almost ready so if you want to play with that as I said just go on and pull the latest uh RC candidate um and the second thing is code sign in so uh as you know repack is uh mostly um it's a good choice for big organizations and large development teams so the security there is a must and we wanted to make sure that there's a built-in thing into the repack that will help you ensure the security so uh this is uh like halfway done there's still some work being done by kubara mind check on that as we are talking right now uh and like today now now yeah yeah I was I was just like messaging a few months like before this episode so yeah there's there's some work being done right now um I think we we plan to to finalize it in the next week so in the week of 24th of April um okay and yeah I I invite everyone uh to to check out the the code to play it uh to play it with it and you know if you have any comments any suggestions just you know uh we're on GitHub open issue or anything that's sure I hope we can uh we can drop this episode right after the weekend so people have a chance to contribute to the RC to the to the like the final solution uh thank you rafik so much I really enjoy having you on the show and uh you might if you are watching us you might notice that there is someone else sitting with Graphics in our podcast studio in vodswave that is wukash valtrak episode uh who actually today he's gonna say
anything everything about it but like I said in the beginning of the episode uh today on Friday we have the Learning and Development they are called stack and uh wukash is actually leading a team of paper maintainers he is the main maintainer of paper and they will have some planning today around this so I invited him to the show to tell us all about it what are the plans for repa uh sorry for paper uh how are we looking at them yeah hello everyone and yeah thanks for having me here again and as always when I appear in the podcast Studio probably I will talk about the the paper so yeah um the same thing today so uh right now in the paper uh we are in the version 5.
7 and two material designs are still
supported and currently we are focused mainly on the fixing bugs but from my perspective and from my experience working uh in the open source on the open source project it's all about to having fun so we also uh adding some features and recently thanks to uh tomekani check we extended our Dynamic color schemes generator so the users can customize their themes by setting primary secondary or sexuality tertiary colors or even custom colors and it's based on the algorithms from Material color utilities and it has the same functionality as material theme Builder but it generates uh the theme compatible with the paper status of the paper and that is not the RC that is something that you can use right now and you can add this first second and third color and custom colors in your app exactly okay so what are you going to do today with your team of I don't know a few people working actively on paper what are you applying planning for V6 yeah so as you mentioned we have today uh upskilling day and I will take that time to organize the creative Workshop
let's say so we are going to collect some ideas for the physics for we will create some kind of the roadmap for the next version we'll set some plans for the next six months and I think that V6 will be more stable more mature more performant and more better yeah and more more customizable because in the previous version we had to rush a bit because we wanted to release material you support as soon as possible there was some uh let's say pressure from the community asking um where we'll get the material you support we would like to play with it and so on so yeah right now it's it's time to chill it's time to focus on the code base simplify it simply AI components code and make the code base more approachable for new contributors yeah yeah yeah awesome one question that I want to ask um so you said that V5 was rushed a little bit you had to deliver for the community the material design V3 the material you but you kept the md2 the material design second version in place are you going to deprecate the support for material design V2 in a paper version 6.
um the decision is not made yet definitely it'll be it will be that topic for our Workshop today uh but yes on the previous couple presentation I was saying that we made it because it was possible because we had solid team uh but at the same time we created some kind of the tech depth and currently in the cold ways you have like more over 100 checks easy free uh and most likely we'll drop the support for md2 however we'll do our best to make components even more customizable so user who wants to keep the md2 style unfortunately we have to adjust their components by themselves maybe we will create some kind of presets don't know yet uh but generally we also we we want
to go back to the idea of paper being the solid base for your components Library okay all right so um yeah you will be making all of those decisions today I'm looking forward to the outcome of this and I'm looking forward for the first rc of paper V6 I no pressure though I I can wait I'm not the community I can wait okay okay thank you everyone that was uh our episode recording during the upskilling day the Learning and Development Day at kolstack where we have all of our developers um learning and developing new things and working on open source as well so uh thank you Graphics uh thank you for having me uh thank you Ola who is already off the air and thank you Miha who is already off the air as well I hope you to see sometime soon and yeah that was the episode thanks so much thank you bye [Music]
Timestamps
Show
Listen on Spotify
Watch on YouTube
Listen on SoundCloud
Listen on Apple Podcasts
Guests
Michał Pierzchala
Principal Engineer
@
Callstack
Łukasz Walczak
Software Engineer
@
Callstack
Aleksandra Pytko-Włodarczyk
Marketing Lead & Podcast Producer
@
Callstack

As the content of this episode revolves around Open Source, we begin by explaining how Callstack pays it forward to the community with involvement in OSS projects.

Then, we move on to the first topic: RFC for the proposal for natively supporting Expo Config Plugins by React Native core. This proposal has been released as part of our R&D program. Check the GitHub discussion on Expo Config Plugins for more details.

We throw a spotlight on super apps and our approach to building them. We mention our freshly released super app development page, which includes a bunch of helpful technical & business resources.

Moving on, we talk about the latest updates to Re.Pack, including deal-breaking code signing and remote assets. If you’d like to dive deep into these new features, register for Super app development made easy with Re.Pack” webinar held on May 9.

Last but not least, we have a segment on React Native Paper, where we discuss the latest developments and plans for future versions. We are currently on version 5 of RN Paper and version 3 of Material Design. Our ongoing work includes fixing bugs and extending our dynamic color schemes generator. We also share some spoilers for version 6 of RN Paper.

Enjoy the talk!

Launching or scaling an open-source project?

We help teams bring new open-source projects to life and grow them within the React Native space.

Let’s chat
Link copied to clipboard!
//
Insights

Learn more about

Open Source

Here's everything we published recently on this topic.

Sort
No items found.
//
Open Source

We can help you move
it forward!

At Callstack, we work with companies big and small, pushing React Native everyday.

React Native Development

Hire expert React Native engineers to build, scale, or improve your app, from day one to production.

React Development

Develop high-performance React applications with advanced patterns and scalable architectures.

React Compiler Implementation

Use React Compiler to achieve instant performance benefits in your existing applications.

React Native Trainings

Equip your team with React Native skills through tailored training sessions.