Alexey Kosinskiy
avkos
avkosinski
avkosinski
WebView
React
WEBVIEW
SERVER
JS bundle
REACT
YOUR APP
LOCAL
FILE
STORAGE
NATIVE CONTROLLER
LOCAL
FILE
STORAGE
JS bundle
REACT NATIVE
YOUR APP
Mobile Browser
IOS
Android
IOS
Android
Windows
Example Simple App Video
React + WebView
React Native
let style={ backgroundColor: `rgb(${r},${g},100)`, width: 1, height: 1,
display:'inline-block' };
let style = { backgroundColor: `rgb(${r},${g},100)`, width: 1, height: 1 };
for (let r = 0; r < 255; r = r + 10) { green[r] = []; for (let g = 0; g < 255; g++) { cnt++; green[r].push(<div key={`s${r}-${g}`} style={...} />) } red.push(<div key={`v${r}`}>{green[r]}</div> ) }
for (let r = 0; r < 255; r = r + 10) { green[r] = []; for (let g = 0; g < 255; g++) { cnt++; green[r].push(<View key={`s${r}-${g}`} style={...} />) } red.push(<View key={`v${r}`}>{green[r]}</View>) }
React + WebView
React Native
render() { let {R, G, B} = this.state; return <View style={{ height: 500, backgroundColor: `rgb(${R},${G},${B})` }}/>; }
render() { let {R, G, B} = this.state; return <div style={{ height: 500, backgroundColor: `rgb(${R},${G},${B})` }}/>; }
React + WebView
React Native
Re-Render
Transitions
Animations
Transitions
Animations
JS
Native
Controller
Native
Component
<div/>
CSS3
ReactCSSTransitionGroup
<Animated.View/>
Animated
classes + styles
time-functions
Draw
Command issue
Swap buffers
16ms
React + WebView
React Native
Custom API
or
Framework
Cordova
Components
window.mobileApi.scanQR();
document.mobileApi.pushNotification(data);
React + WebView
React Native
Devices
Render
Animations
Native API
Native
$8 000
$12 000
$38 000 - $70 000
Cost
GPU