Keynote from App.js Conf 2022
Are you afraid of animations? Well, you shouldn't be, Reanimated got you covered. Your mobile application can share a story through animations, can help users through micro-interactions, and differentiate your app from the others.
How can we have one codebase for mobile and web when both of them have different APIs and behavior? Sanket covered the behavioral and technical differences between web and mobile platforms.
There’s a bug in your app. Fix this by sending a small JS update to your users in between build and submit cycles. Track who got your fix with our Deployments tool. In this talk, Quin showed how to publish small updates to your users with confidence and covered how to do this with a production-grade app along with more advanced use cases like feature rollouts.
At the end of 2021, Meta successfully rolled out the new React Native architecture in the Facebook app. Now, it’s time to empower every React Native developer on the globe to use it. To support the whole community in this endeavor, we lined up a set of tools and materials that will help both app and library developers to join us on this journey. In the talk, Nico presented how the New React Native Architecture looks in the OSS space. He discussed the impact this will have on developing React Native projects. Lastly, he covered what we learned from the React Native new architecture migration at Meta, and how you can tackle your migration in your organization.
The web has several tools to measure performance, but what about us, React Native devs? Have you ever added some optimization in your code (like a memo here and there) and wondered if it had a real impact on performance? Presenting a Flipper plugin to measure React Native performance, with a concrete case of how it's used at BAM to bring their app performance to the top quality. Bonus: a deep dive into React DevTools flame charts!
Vanya focuses on the journey of using React Native to develop applications at Traveloka. Currently, we have 1 hybrid application and 6 applications built using React Native from scratch. Reusability is the key theme of our work, so she focuses on the interoperability between React Native and Native which includes git submodules to support development workflow in multiple repositories and sharing components between them. She also talks about how they developed an in-house solution for enabling bundle splitting in React Native code as it enables several capabilities, such as the Independent CodePush release.
Why do we need the blockchain? For the first time ever, blockchain allows people to own a piece of the digital asset on the internet. Digital ownership and sovereignty have unlocked new use cases that will enable people to create, trade, and earn value online with unprecedented scale. With StarkNet.js, you can now build scalable web3 mobile dApps that allow your users to participate in this new digital economy.
Ever wondered how hackers can compromise your app and your app data? In this talk, you will see in a live demo, how to infiltrate an app with different techniques like decompiling, sniffing, and reverse engineering. By the end of the talk, you'll walk away a little bit scared but more prepared with some great practices to infiltrate your own app and the knowledge to battle them.
Benefiting from JSI abstraction, nowadays, we can have different JavaScript runtimes by developers' choices. Many references recommend using Hermes for TTI (Time-To-Interactive) performance gain. On the other hand, V8, another famous JavaScript runtime you probably would use daily from Google Chrome or Microsoft Edge browsers, has many powerful features. This talk would go through some V8 features like JIT, inspector, WebAssembly, and bytecode caching to help React Native apps. These weapons will give developers more choices to develop good apps. Other than that, with Expo config plugins, V8 adoption in an Expo-managed project has never been easier.
One of the main benefits of using React Native for us has been the ability to share non-UI code between our web applications and our mobile applications. In this talk, Fernando focused on how to properly set up a monorepo with shared code and React/React Native apps and how to build and deployment configurations for Expo, Vercel, etc.. He also covered architecture choices, authentication flows (same backend API but very different frontend), common problems, and some other issues we've encountered.
Derek loves his e-bike but he felt like none of the apps available to configure and track rides were up to his standards. That’s why he decided to build his own. But if working with hardware by itself isn’t already hard, creating a smooth user experience, and dealing with the build and distribution process makes everything more complicated. That is unless you use Expo, Reanimated2, and EAS. During this talk, Derek shared how he went from idea to creating a Bluetooth LE-enabled app, an amazing animated dashboard, and a great user experience using these tools in 1 week.
A wise person once said: “Never spend 6 minutes doing something by hand when you can spend 6 hours failing to automate it”. As developers, we love automating things. It’s not always simple though. It’s not always possible yet as well. We can’t be sure if we don’t try at least. When it comes to performance testing of React and React Native applications, we usually pick the manual way, because the topic is quite complex with issues coming from multiple realms. But what if we could automate some part of it? Make measuring the most impacting metrics a habit? Let’s say, a part of the standard CI pipeline? Wouldn't we spot the issues quicker this way? Look no more, because someone already spent those “6 hours” for you and is going to open source it really soon.
Developing for each platform individually is so 2010s. These days, with React Native’s component system providing base-level UI constructs, we can efficiently develop for every platform while not sacrificing any particular platform’s uniqueness. Taz will review the approach they’ve taken while developing Guild, and the creation of their Mondrian cross-platform responsive design system as well as how they’ve accommodated the differences in navigational experiences across platforms to accomplish a codebase that can be 95+% shared across every platform.
In case you forgot, making calls was the initial reason behind inventing the telephone. Nowadays, video calling is no big deal too, so it should be fairly easy to embed a video calling feature in your app, right? Well, it wasn't until we created react-native-membrane-webrtc. In this talk, I'll show you how to set up a video chat in your RN app in minutes, with react-native-membrane-webrtc [https://github.com/membraneframework/...] working as the media server. Mateusz also explains what technologies were used and why, why video streaming is hard in general, and what react-native-membrane-webrtc does to make it easier.
At Chime, it was necessary to ensure their mobile app can scale with their member base. There are a number of intentional design decisions that have been made to ensure the members’ experience is seamless and Chime's app is both highly available and resilient. In the talk, Jessica and George will cover topics of REST/GraphQL requests, designing the mobile queries, and keeping the app resilient.
Excuse me, do you have a moment to talk about Fabric? Do you sometimes wonder what the new architecture is all about? Is it difficult to port my app or library to Fabric? What exactly does that change for me and is it really worth it? We're glad you asked. Tomasz and Krzysztof will not only answer these questions but also share their recent experience with the new architecture from the perspective of migrating open-source libraries.
In this talk, Kelvin focuses on how Expo has made it easy for them as a company to build two apps they are maintaining and deploy them with ease, how they are able to fix and publish code within seconds and how EAS has boosted their productivity. Not being a native developer, and having tried maintaining two codebases as a startup with only 3 engineers, Kelvin's talk will be focused on how the 'build once deploy everywhere' philosophy has really benefited them as a company.
Have you ever had a problem with creating in-app notifications for your users? None of the available solutions meet your expectations? Let me introduce the brand new in-app notification library. I’ll demonstrate its features and how to implement them into your code. Customize animations, styles, and more, or choose from the wide range of options we have prepared.