Deputy CTO - Theodo UK
https://twitter.com/WoodyRousseau
https://github.com/wrousseau
Helping our clients seize the opportunity of the digital transformation since 2009
2009
2015
100
15
25
2014
2016
10
Happy client
Theodo Standards Met
Super fast team of developers
Amazing user experience (UI, UX, 60 FPS)
Top engineers
PHP, Python and Javascript experts
Provision
Amazon EC2
Web App
WebView
HTML
JS
CSS
Apache
Cordova
React Code
+
Vendors
const Button = props => (
<TouchableOpacity onPress={props.onPress}>
<View style={styles.container}>
<Text bold style={styles.text}>{props.text}</Text>
</View>
</TouchableOpacity>
);
Button.propTypes = {
text: PropTypes.string.isRequired,
onPress: PropTypes.func,
};const borderRadius = (Platform.OS === 'android') ? 5 : 0;
const Button = props => (
<TouchableOpacity onPress={props.onPress}>
<View style={[styles.container, { borderRadius }]}>
<Text bold style={styles.text}>{props.text}</Text>
</View>
</TouchableOpacity>
);
Button.propTypes = {
text: PropTypes.string.isRequired,
onPress: PropTypes.func,
};const Button = props => (
<TouchableOpacity onPress={props.onPress}>
<View style={styles.container}>
<Text bold style={styles.text}>
{props.text}
</Text>
</View>
</TouchableOpacity>
);
Button.propTypes = {
text: PropTypes.string.isRequired,
onPress: PropTypes.func,
};const Button = props => (
<TouchableHighlight onPress={props.onPress}>
<View style={styles.container}>
<Text bold style={styles.text}>
Button: {props.text}
</Text>
</View>
</TouchableHighlight>
);
Button.propTypes = {
text: PropTypes.string.isRequired,
onPress: PropTypes.func,
};Button.ios.js
Button.android.js
<Button text="Wow" onPress={Actions.home} />Using the component
1. Build with Gradle
2. Sign
1. Create signing certificate
2. Create app id
3. Create push notification certificate
3. Set entitlements for the app id
4. Create a provisioning profile
5. Feed to XCode
6. Hope it works
platform :ios do
lane :deploy do |options|
if options[:env] == 'prod' then
sh('./update-pbxproj.sh')
end
match
gym
if options[:env] == 'staging' then
hockey
elsif options[:env] == 'prod' then
deliver
end
end
endApple
Developer
Git Repository
Encryption
https://github.com/bamlab/generator-rn-toolbox
describe('<NavBar />', () => {
it('should get to a user profile when clicking', () => {
const wrapper = shallow((
<NavBar
rightComponentIcon="Profile"
rightComponentAction={() => Actions.profile({ userId: 2 })}
/>
));
expect(wrapper.find(TouchableOpacity)).to.have.length(1);
wrapper.find(TouchableOpacity).at(0).simulate('press');
expect(Actions.profile.calledWithExactly({
userId: 2,
})).to.be.true;
});
});1. Denial and isolation
2. Anger
3. Bargaining
4. Depression
5. Acceptance
https://github.com/wix/detox
it('renders with a provided email and password', () => {
const store = mockStore({ credentials: Map({
email: 'myemail@gmail.com',
password: 'mypassword',
}) });
const tree = renderer.create(
<Provider store={store}>
<Login resetState={() => {}} />
</Provider>,
).toJSON();
expect(tree).toMatchSnapshot();
});React Code
+
Vendors
Woody Rousseau — Theodo UK
twitter.com/WoodyRousseau
github.com/wrousseau