React Native
Andrey Semin

 Andrey Semin

 Frontend Developer @ EPAM Systems

What did we have at the start?

What restrictions did we have?

Choosing a right tool

Building Native Apps is
HARD

Building Native Apps is
HARD

What's wrong with native apps

Web technologies

HTML CSS Javascript

Hybrid mobile apps

Web View apps

Hybrid mobile apps

Why not Web View?

Hybrid mobile apps

Compiled mobile apps

Compiled mobile apps

Why not compiled apps?

Crying man

React Native

React

React consists of

React

React consists of

React

React consists of

React

Write once

Pull to refresh code

Get platform specific UI

Pull to refresh iOs Pull to refresh android

Platform Specific Code

Platform.OS method

Platform.select method

Platform-specific file extensions

Wait a minute

How React Native works

React Native

Performance

Performance

Performance

React Native

Performance

React Native

Performance

React Native

Performance

Swipable Component Swipable Component Code

Set state from JS on every touch event

Swipable Component Code

Implement the Swipeable container handling touch events in native

Swipable Component Code

Using a native driver

Swipable Component Code

How to use it

How to use it

Ready to go

				npm install react-native-cli
				react-native init ExampleApp
				cd ExampleApp
				react-native run-android
			

NOTE: You should also install Android SDK and Xcode

What do we have out of the box?

Dev tools

Dev tools - Inspector

Dev tools - Perf Monitor

Conclusion

Pros

Conclusion

Cons

People talk


People talk

Did it fit our goals?

Yes

Would we choose it again if we have to start a new project now?

Yes

Should you use it?

You decide

But remember

React Native doesn’t mean end on Native. You’re still doing it, but doing less of it and concentrating your efforts on the important parts

Showcase

Facebook

Facebook

Fabebook Ads

Facebook Ads Manager

Facebook Groups

Facebook Groups


Instagram

Instagram

Aribnb

Airbnb

SoundCloud Pulse

SoundCloud Pulse