js goes mobile: eine Übersicht · frederik von berg w11k gmbh - the web engineers thecodecampus.de...

35
Frederik von Berg w11k / theCodeCampus JS goes mobile: Eine Übersicht

Upload: others

Post on 04-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Frederik von Berg w11k / theCodeCampus

JS goes mobile: Eine Übersicht

Page 2: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Über mich

Historie

Mobile Native JavaScript

Vergleich mit Nativ & Hybrid

Frameworks

Setup & Codebeispiel

JS goes Mobile - Karlsruher Entwicklertag 2016 - 1.0 1

<1>

<2>

<3>

<4>

<5>

<6>

Überblick

Page 3: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Frederik von Berg

w11k GmbH - the Web Engineers

thecodecampus.de - Weiter. Entwickeln.

JS goes Mobile - Karlsruher Entwicklertag 2016 2

Software Developer<>Seit 2013 bei w11k GmbHScala und Web-Entwicklung </>

Gegründet 2000<>Entwicklung / ConsultingWeb / JavaEsslingen / Siegburg </>

Schulungen (seit 2007)<>Projekt-KickoffsUnterstützung im Projekt </>

Über uns

Page 4: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Native Apps Vor gar nicht allzu langer Zeit ...

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 5: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 4

Nativ

Page 6: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Hybrid Apps Halt, ich schreibe doch keinen doppelten Code!

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 7: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 6

Halt, doppelter Code? - Hybrid

Page 8: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Der Neuling - Mobile NativeJavaScript

Native Apps in JavaScript

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 9: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 8

Native Anwendungen geschrieben inJavaScript

kein WebView

<>

<>

React Native

Der Neuling - Mobile Native JavaScript

Page 10: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Nein, nicht schon wieder einFramework!

Was brauch ich als Entwickler?

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 11: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 10

Einen Rechner mit NodeJS

KenntnisseJavaScript / TypeScriptHTML & CSSAls Plus: Android / iOS Kenntnisse

<>

<>---

Voraussetzung für Entwickler

Page 12: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Ein kleines Beispiel ...

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 13: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

NativeScript + Angular2 + TypeScript

JS goes Mobile - Karlsruher Entwicklertag 2016 12

import {Component} from "@angular/core";1 2@Component({3 selector: "my-app",4 template: `5<StackLayout>6 <Label text="Drücke den Button" class="title"></Label>7 <Button text="Button" (tap)="onTap()"></Button>8</StackLayout>9`10})11export class AppComponent {12 public onTap() {13 console.log("Ich wurde geklickt");14 }15}16

Codebeispiel zum EinstiegCode

Page 14: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

TheCodeCampus - Angular 2 & TypeScript Grundlagen 13

Codebeispiel zum Einstieg Screenshot

Page 15: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Was ist 'Mobile Native JavaScript' ?

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 16: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 15

JS Engine generiert native Elemente

Schnittmenge von nativen KomponentenLabelButtonSwitch, Slider, Image ...

Voller Zugriff auf native Funktionalitäten (z.B. Kamera)

Plattformspezifische Benutzerführung

Plattformspezifische Anpassungen möglich

<>

<>---

<>

<>

<>

Was ist 'Mobile Native JavaScript'?

Page 17: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Demo

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 18: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Vergleich zu nativen Apps

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 19: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 18

Vorteile MNJS:

keine spezifischen Plattformkenntnisse nötig

Wissen aus der Webentwicklung

Ein Framework, mehrer Plattformen

Wiederverwendbarkeit von Code

<>

<>

<>

<>

Vorteil Nativ:

Schneller Startupzeiten

höhere Performance möglich

Besseres Tooling

Größere Community

<>

<>

<>

<>

Vergleich zu nativen Apps

Page 20: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Vergleich zu hybrid Apps

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 21: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 20

Vorteile MNJS:

Plattformspezifische Darstellung

Native Bedienkonzepte

Flüssige Bedienung

Erlaubt direkten nativen Zugriff

<>

<>

<>

<>

Vorteil Hybrid:

Liefert (oft) noch eine Web-/Desktop-App

Entwicklung im Browser

Größere Community

<>

<>

<>

Vergleich zu hybrid Apps

Page 22: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Welche Frameworks gibt es?

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 23: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

React Native

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 24: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 23

Facebook

Open Source

"learn once, write anywhere"

JavaScript (JSX)

CSS artiges Styling

Layouts per Flexbox

Native Elemente, aber kein natives Styling

Debugging in Chrome möglich

<>

<>

<>

<>

<>

<>

<>

<>

React Native

Frameworks - React Native

Page 25: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

React Nativeimport React, { Component } from 'react';1import { AppRegistry, StyleSheet, Text, TouchableNativeFeedback, View } from 'react-native';2 3class ReactNativeExample extends Component {4 render() {5 return (6 <View style={styles.container}>7 <Text style={styles.welcome}>8 Welcome to React Native!9 </Text>10 <TouchableNativeFeedback onPress={this._onPressButton}>11 <View style={{width: 80, height: 40, backgroundColor: '#DDDDDD' }}>12 <Text style={{margin: 5}}>Button</Text>13 </View>14 </TouchableNativeFeedback>15 </View>16 );17 }18 _onPressButton() {19 console.log("Ich wurde geklickt");20 }21}22 23const styles = StyleSheet.create({24 /* hier folgen noch mehr Styles */25});26 27AppRegistry.registerComponent('ReactNativeExample', () => ReactNativeExample);28 29

Frameworks - React Native: CodebeispielCode

Page 26: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

TheCodeCampus - Angular 2 & TypeScript Grundlagen 25

Frameworks - React Native: Screenshot Screenshot

Page 27: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

NativeScript

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 28: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 27

Telerik

Open Source

JavaScript, XML(HTML), CSS

TypeScript -> Angular2

Bekannte Layouts

Natives Styling als Standard

Debugging über VSCode Plugin

<>

<>

<>

<>

<>

<>

<>

NativeScript

Page 29: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 28

NativeScript - Natives Styling

Page 30: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Ein einfaches Setup

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 31: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 30

Voraussetzung:Android SDK/ X-Code & Node installierennpm install -g nativescript

Projekt anlegen:Normales Setup: tns create DemoAngular 2 & Typscript: tns create Demo --ng

Anwendung starten:cd Demo

Android hinzufügen: tns platform add androidApp starten: tns run androidLivereload: tns livesync android --watch

<><>

<><>

<><><><>

NativeScript - Setup

Page 32: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Beispiel in VisualCode

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 33: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

Na, noch Fragen? frederikvonberg

github.com/fvonberg

JS goes Mobile - Karlsruher Entwicklertag 2016

Page 35: JS goes mobile: Eine Übersicht · Frederik von Berg w11k GmbH - the Web Engineers thecodecampus.de - Weiter. Entwickeln. JS goes Mobile - Karlsruher Entwicklertag 2016 2 Software

JS goes Mobile - Karlsruher Entwicklertag 2016 34

Webseiten:https://www.nativescript.org/

https://facebook.github.io/react-native/

https://developer.android.com/index.html

https://cordova.apache.org/

https://crosswalk-project.org/

http://phonegap.com/

https://developer.apple.com/

Logos und Bilder:Font Awesome by Dave Gandy -http://fontawesome.io

Nativescript Android Button

Nativescript iOS Button

Quellen