SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Einführung
TYPO3camp Hamburg – Markus Günther
Agenda
- Was ist React-Native
- Development requirements
- Development-Environment setup
- Getting started
- Initiale react native app
- Test App in Simulator
- Erklärung React-Native Basics
- Wie wird aus JS eine native Komponente?
- JSX
- Mehr React-Native interna
- Struktur einer RN App
- Struktur einer RN index file
- Neue Komponenten erstellen
- Komponenten stylen
- State-Management, Storage, Properties
Anforderungen
Basis Anforderungen
- Node.js
- npm oder yarn
- Watchman
- React Native command line interface
iOS Anforderungen
- Xcode mit den inkludierten iOS SDK
Android Anforderungen
- Android Studio
- Android SDK
- Android SDK Platform
- Android Virtual Device
Host Betriebsystem
- OSX/MacOS 10.7 oder neuer
- Linux Systeme mit inotify
- Homebrew installieren
/usr/bin/ruby -e "$(curl -fsSL https://raw.* usercontent.com/Homebrew/install/master/install)"
- Homebrew aktualisieren
brew update && brew upgrade
- node installieren
brew install node
- watchman installieren
brew install watchman
- yarn installieren
brew install yarn
- react-native-cli installieren
yarn global add react-native-cli
Installation (MacOS)
- Java version prüfen
javac -version
- Android Studio installieren
- Android SDK installieren
- Android SDK Platform installieren
- Android Virtual Devices installieren
- Android home in ~/.bashrc definieren
export ANDROID_HOME=~/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
Wenn man android via Homebrew installiert dann ist der Pfad /usr/local/opt/android-sdk
Installation für Android
Erstellen einer neuen App via CLI
react-native init AppName
App starten
cd AppName
react-native run-ios
Getting started
Wie wird JS zu einer Nativen-Komponente
export default class SgTestApp extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
<Text style={styles.instructions}>
To get started, edit index.ios.js
</Text>
<Text style={styles.instructions}>
Press Cmd+R to reload,{'n'}
Cmd+D or shake for dev menu
</Text>
</View>
);
}
}
React Native Basics - JSX
React.createElement(
Text,
{styles.welcome},
'Welcome to React Native!'
)
React Native Basics - JSX
<Text style={styles.welcome}>
Welcome to React Native!
</Text>
JSX Code kann auch in JavaScript geschrieben werden.
export default class SgTestApp extends Component {
render() {
const welcome = React.createElement(Text,{style: styles.welcome},'Welcome to React Native!'),
view = React.createElement(View, {style: styles.container}, welcome);
return (
view
);
}
}
React Native Basics - JSX
class Greeting extends Component {
render() {
return (
<Text>Hello {this.props.name}!</Text>
);
}
}
React Native Basics - Komponenten
- React-Native ist sehr Komponentenorientiert
- Mehr oder weniger ist was man sehen kann in der Anwendungen eine Komponente
<Greeting name="Jon Doe" />
React Native Basics - Komponenten
- ActivityIndicator
- Button
- DatePickerIOS
- DrawerLayoutAndroid
- Image
- KeyboardAvoidingView
- ListView
- MapView
- WebView
- ScrollView
- Slider
- SnapshotViewIOS
- StatusBar
- Switch
- TabBarIOS
- TabBarIOS.Item
__tests__
ios
node_modules
android
index.ios.js
index.android.js
jsconfig.json
package.json
Struktur eine React-Native App
Basis Struktur nach dem kickstarten mit dem CLI Tool
import React, {Component} from 'react';
import {AppRegistry, Text, View} from 'react-native';
export default class SgTestApp extends Component {
render() {
return (
<View>
<Text>Hello World</Text>
</View>
);
}
}
AppRegistry.registerComponent('SgTestApp', () => SgTestApp);
Struktur einer index File in React-Native
Die Struktur sollte immer folgendes
umfassen
Abhängigkeiten importieren
Komponente erstellen
Komponente als App registrieren

Weitere ähnliche Inhalte

Was ist angesagt?

Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsBild GmbH & Co. KG
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
German Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als CodeGerman Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als CodeJan Gehring
 
Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014inovex GmbH
 
Dokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machenDokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machenSebastian Hempel
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerGregor Biswanger
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungFrank Schmittlein
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebAndreas Schmidt
 

Was ist angesagt? (13)

Deployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkinsDeployment pipeline mit maven, chef und jenkins
Deployment pipeline mit maven, chef und jenkins
 
Pimcore
PimcorePimcore
Pimcore
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
German Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als CodeGerman Perl Workshop 2015 - Infrastruktur als Code
German Perl Workshop 2015 - Infrastruktur als Code
 
Automatisierung mit grunt
Automatisierung mit gruntAutomatisierung mit grunt
Automatisierung mit grunt
 
Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014Einführung in Elasticsearch - August 2014
Einführung in Elasticsearch - August 2014
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Node.js für Webapplikationen
Node.js für WebapplikationenNode.js für Webapplikationen
Node.js für Webapplikationen
 
Dokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machenDokumentation schreiben kann spass machen
Dokumentation schreiben kann spass machen
 
Nginx
NginxNginx
Nginx
 
MongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen HackerMongoDB: Security-Tipps gegen Hacker
MongoDB: Security-Tipps gegen Hacker
 
DDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale EntwicklungsumgebungDDEV - Eine lokale Entwicklungsumgebung
DDEV - Eine lokale Entwicklungsumgebung
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
 

Ähnlich wie Einführung React Native

Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit RustJens Siebert
 
Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit RustJens Siebert
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenHendrik Lösch
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1Manfred Steyer
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
 
Rhomobile
RhomobileRhomobile
RhomobileJan Ow
 
JsUnconf 2014
JsUnconf 2014JsUnconf 2014
JsUnconf 2014emrox
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Torsten Kleiber
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
BASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionBASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionRobin Sedlaczek
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Springdenschu
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Dirk Ginader
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...gedoplan
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenICS User Group
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreGregor Biswanger
 

Ähnlich wie Einführung React Native (20)

Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
Backend-Services mit Rust
Backend-Services mit RustBackend-Services mit Rust
Backend-Services mit Rust
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
 
Node.js
Node.jsNode.js
Node.js
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1
 
Einführung in React
Einführung in ReactEinführung in React
Einführung in React
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Rhomobile
RhomobileRhomobile
Rhomobile
 
JsUnconf 2014
JsUnconf 2014JsUnconf 2014
JsUnconf 2014
 
Ionic 3
Ionic 3Ionic 3
Ionic 3
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
BASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionBASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in Action
 
Wicket Kurzübersicht
Wicket KurzübersichtWicket Kurzübersicht
Wicket Kurzübersicht
 
Enterprise Java Batch mit Spring
Enterprise Java Batch mit SpringEnterprise Java Batch mit Spring
Enterprise Java Batch mit Spring
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010
 
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratorenIcsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
Icsug conf 14_tipps-und-skripts-fuer-ibm-connections-administratoren
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 

Einführung React Native

  • 2. Agenda - Was ist React-Native - Development requirements - Development-Environment setup - Getting started - Initiale react native app - Test App in Simulator - Erklärung React-Native Basics - Wie wird aus JS eine native Komponente? - JSX - Mehr React-Native interna - Struktur einer RN App - Struktur einer RN index file - Neue Komponenten erstellen - Komponenten stylen - State-Management, Storage, Properties
  • 3.
  • 4. Anforderungen Basis Anforderungen - Node.js - npm oder yarn - Watchman - React Native command line interface iOS Anforderungen - Xcode mit den inkludierten iOS SDK Android Anforderungen - Android Studio - Android SDK - Android SDK Platform - Android Virtual Device Host Betriebsystem - OSX/MacOS 10.7 oder neuer - Linux Systeme mit inotify
  • 5. - Homebrew installieren /usr/bin/ruby -e "$(curl -fsSL https://raw.* usercontent.com/Homebrew/install/master/install)" - Homebrew aktualisieren brew update && brew upgrade - node installieren brew install node - watchman installieren brew install watchman - yarn installieren brew install yarn - react-native-cli installieren yarn global add react-native-cli Installation (MacOS)
  • 6. - Java version prüfen javac -version - Android Studio installieren - Android SDK installieren - Android SDK Platform installieren - Android Virtual Devices installieren - Android home in ~/.bashrc definieren export ANDROID_HOME=~/Library/Android/sdk export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/platform-tools Wenn man android via Homebrew installiert dann ist der Pfad /usr/local/opt/android-sdk Installation für Android
  • 7. Erstellen einer neuen App via CLI react-native init AppName App starten cd AppName react-native run-ios Getting started
  • 8. Wie wird JS zu einer Nativen-Komponente
  • 9. export default class SgTestApp extends Component { render() { return ( <View style={styles.container}> <Text style={styles.welcome}> Welcome to React Native! </Text> <Text style={styles.instructions}> To get started, edit index.ios.js </Text> <Text style={styles.instructions}> Press Cmd+R to reload,{'n'} Cmd+D or shake for dev menu </Text> </View> ); } } React Native Basics - JSX
  • 10. React.createElement( Text, {styles.welcome}, 'Welcome to React Native!' ) React Native Basics - JSX <Text style={styles.welcome}> Welcome to React Native! </Text> JSX Code kann auch in JavaScript geschrieben werden.
  • 11. export default class SgTestApp extends Component { render() { const welcome = React.createElement(Text,{style: styles.welcome},'Welcome to React Native!'), view = React.createElement(View, {style: styles.container}, welcome); return ( view ); } } React Native Basics - JSX
  • 12. class Greeting extends Component { render() { return ( <Text>Hello {this.props.name}!</Text> ); } } React Native Basics - Komponenten - React-Native ist sehr Komponentenorientiert - Mehr oder weniger ist was man sehen kann in der Anwendungen eine Komponente <Greeting name="Jon Doe" />
  • 13. React Native Basics - Komponenten - ActivityIndicator - Button - DatePickerIOS - DrawerLayoutAndroid - Image - KeyboardAvoidingView - ListView - MapView - WebView - ScrollView - Slider - SnapshotViewIOS - StatusBar - Switch - TabBarIOS - TabBarIOS.Item
  • 15. import React, {Component} from 'react'; import {AppRegistry, Text, View} from 'react-native'; export default class SgTestApp extends Component { render() { return ( <View> <Text>Hello World</Text> </View> ); } } AppRegistry.registerComponent('SgTestApp', () => SgTestApp); Struktur einer index File in React-Native Die Struktur sollte immer folgendes umfassen Abhängigkeiten importieren Komponente erstellen Komponente als App registrieren