Andrei Calazans

Podcast Summary - Eli White on the princiciples of React Native and more.

☕️ 7 min read

In this interview conducted by Michael Chan AKA Chantastic, Eli White goes over React Native’s team principles which he wrote about on this post. During the interview he mentioned a bit more than just the principles, he gave us a bit more insight of his perspective of React Native.

Links to the podcast interview: Podcast | Youtube Video

React Native teams still need native developers


- Eli White

26:35

the platform are coming in and saying like we don't need mobile developers anymore and that's not that's not how we we feel

Native(iOS and Android) developers can help maintain a high bar


- Eli White

28:29

maintain the bar of what the experience is on these native platforms you know like you have a bunch of ios engineers or android engineers and they're going to not let you say like not let you use react native as an excuse like we really want to make

You should leverage native code


- Eli White

29:45

or there's already existing code in native to to do that using it in native is is still react native and we want to encourage that

that we've seen have the best success are teams that still have some native engineers


- Eli White

31:03

and the teams that we've seen have the best success are teams that still have some native engineers

Components have a drawback


- Eli White

34:14

They are shared everywhere but then finding the right components to use becomes the problem



34:50

so we have a bunch of tooling internally to help make this better but uh it's not a it's not a solved problem

React Native incentivizes more generalits supported by fewer specialists.


- Eli White

36:09

that's actually part of React Native as a whole is that yeah mobile used to be only accessible to people with deep native expertise but the up leveling with components and with react native as a whole has enabled this kind of thing that's required expertise to be more towards generalists, supported by fewer specialists

react native is a framework and a technology that transcends facebook


- Eli White



37:27

react native is a framework and a technology that transcends facebook

Facebook is working closely with Microsoft because it has internal products using its technology


- Eli White



39:08

you know partnering really closely with microsoft to support windows and mac and you know we're building up a team to do that because we have products now at facebook that are using those

Priority is to match native UI expectation


- Eli White



40:45

priority for react native is to really match the expectations that people have of that platform

The goal is not one code for all platforms (Famous learn once, write everywhere quote in its documentation


- Eli White

)


41:06

the goal isn't like 100% code reuse the goal isn't that uh you write one like piece of code and that will run on every platform look and feel exactly

The challenge about cross platform inconsisntency. For Web devs, they are used to seeing browsers handle UI differently, for Native devs they are used to the platform lock-in.


- Eli White



42:38

is that a challenging way to think about things like or talk about them as you introduce react native to people i think it is for

The trade-offs aren't performance


- Eli White



43:56

flutter and swift UI and jetpack compose and a bunch of different choices that people. the trade-offs that people often talk about are you know maybe like performance or uh who who created it but I think that's not that's not really the the things that we really want people to think about

Eli White thinks Flutter has a different principle when it comes to developer experience, they cherrish it more.


- Eli White



44:47

my understanding is that they don't have the same principle that for them it matters much more that the experience is the same across all platforms uh not because they want the experience to be the same across all platforms but they want the developer experience to be so great. They want you to you want they want you to be able to confidently write code and have confidence that it's going to work the same way

Between developer and user experience - React Native chooses user experience.


- Eli White



45:32

your belief that you know if it comes between a user experience and a developer experience you're going to choose the user experience over the developer experience

React Native Core team is particularly focused on issues at Facebook's scale. Leaving everything else for the community


- Eli White

.


46:12

for our team it's really important that we focus on the kind of issues that we see at that scale a lot of things that we aren't able to focus on because they don't cause us the biggest problems of this

And instead enable other companies to focus on the issues at other scales


- Eli White



46:12

we want to enable other companies that operate those scales to really focus on the things that impact them and

Expo is providing high quality building blocks


- Eli White



49:54

they're really providing out like high quality building blocks that people use yeah and

More important to enable these companies instead of Facebook doing it all


- Eli White

.


51:02

i think for us it's more important to build our relationship with these companies and enable them versus trying to do it all ourselves

Hermes and Turbo Modules are a great example of Facebook solving a problem at scale


- Eli White



52:12

react native and this is like a great example of what it means for us to focus on on scale because

Hermes is about optimizing for startup performance on mobile


- Eli White



53:30

for hermes that's really the main focus is really optimizing for startup performance on mobile

A JavaScript Engine is a not a thing anybody can build from scratch


- Eli White



53:35

and you know it's not a thing that anybody can do, creating a new javascript engine

Hermes compiles JS to bytecode then executes it off the disk. Thus no parsing or evaluation of JS code, just bytecode instructions


- Eli White

.


53:51

compile that javascript to uh bytecode that is then execute like directly executed and off disk and so there's no there's no javascript source there's no parsing there's no evaluation and it is it is like actual bytecode instructions

React's rearchitecture is to achieve new optimizations and more capabilities


- Eli White



54:51

React Core team rethought the core implementation without changing the public APIs to push new capabilities and optmizations not previsouly possible to achieve

Conclusion

The requirement of native development experience is an important point to make for web developers working with React Native, it is important for them to work towards reducing this knowledge gap.

Cross-platform can be classified as a generalist trade since it requires broad knowledge that only increases as you work with more platforms.

And leveraging the platform OEMs/widget is what truly differentiates React Native from other approaches, not performance or who is leading development.