- Basic JavaScript knowledge
- Background reading on React
- Background reading on ES6
- Exercise applies reading
- Project structure
- NPM/dependency management
import React, { Component } from 'react' | |
import { AppRegistry } from 'react-native' | |
// Patch `AppRegistry.registerComponent` on first launch | |
if (!global.originalRegister) { | |
global.hasRegistered = false | |
global.hasRegisteredOnce = false | |
global.getComponent = null | |
global.originalRegister = AppRegistry.registerComponent |
// In Deco | |
const mapStateToProps = (state) => createSelector( | |
(state) => state.storyboard, | |
(storyboard) => ({ | |
storyboard, | |
}) | |
) | |
class Storyboard extends Component { |
// In Deco | |
class Storyboard extends Component { | |
const {storyboard, dispatch, fileId} = this.props | |
render() { | |
<YOPS | |
// The currently running storyboard | |
storyboardId={fileId} | |
/> |
'use strict'; | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
exports.Image = exports.Text = exports.View = undefined; | |
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | |
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
Navigation RFC | |
https://github.com/ericvicenti/navigation-rfc | |
Navigator Comparison | |
https://github.com/ericvicenti/navigation-rfc/blob/master/Docs/NavigationOverview.md | |
3 Options Today | |
React Native Router Flux |
@setContext | |
class Provider extends Component { | |
render() { | |
return null | |
} | |
} | |
@context(['color']) | |
class Hello extends Component { |
(function webpackUniversalModuleDefinition(root, factory) { | |
if(typeof exports === 'object' && typeof module === 'object') | |
module.exports = factory(require("react"), require("react-native")); | |
else if(typeof define === 'function' && define.amd) | |
define(["react", "react-native"], factory); | |
else if(typeof exports === 'object') | |
exports["@shoutem-animation"] = factory(require("react"), require("react-native")); | |
else | |
root["@shoutem-animation"] = factory(root["React"], root["ReactNative"]); | |
})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) { |
http://cdn.rawgit.com/dabbott/react-native-web-player/gh-v1.6.1/index.html#width=260&scale=0.75&fullscreen=true&styles=%7B%22tab%22%3A%7B%22backgroundColor%22%3A%22rgb(250%2C250%2C250)%22%7D%2C%22header%22%3A%7B%22backgroundColor%22%3A%22rgb(250%2C250%2C250)%22%2C%22boxShadow%22%3A%22rgba(0%2C%200%2C%200%2C%200.2)%200px%201px%201px%22%2C%22zIndex%22%3A10%7D%2C%22headerText%22%3A%7B%22color%22%3A%22%23AAA%22%2C%22fontWeight%22%3A%22normal%22%7D%2C%22transpilerHeader%22%3A%7B%22backgroundColor%22%3A%22rgb(240%2C240%2C240)%22%2C%22boxShadow%22%3A%22rgba(0%2C%200%2C%200%2C%200.2)%200px%201px%201px%22%2C%22zIndex%22%3A10%7D%2C%22transpilerHeaderText%22%3A%7B%22color%22%3A%22%23888%22%2C%22fontWeight%22%3A%22normal%22%7D%2C%22tabText%22%3A%7B%22color%22%3A%22%23AAA%22%7D%2C%22tabTextActive%22%3A%7B%22color%22%3A%22%23000%22%7D%7D&title=Shoutem%20Animation&code=import%20React%2C%20%7B%20Component%20%7D%20from%20'react'%0Aimport%20%7B%20AppRegistry%2C%20StyleSheet%2C%20View%2C%20Text%2C%20Easing%20%7D%20from%20'react |