Post on 21-Jan-2017
transcript
FAQs zur Technik 1 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Projekte. Beratung. Spezialisten.
FAQs zur Technik
IKS-Thementag
12.04.2016
Autor: Jan Laußmann
FAQs zur Technik 2 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Agenda
Development
Distribution
Push Notifications
Google Analytics
Security
FAQs zur Technik 3 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Agenda
Development
Distribution
Push Notifications
Google Analytics
Security
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 4 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Development
Nativ
Cordova / PhoneGap
Xamarin
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 5 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Native Entwicklung
Android
Java
Android Framework
iOS
Objective-C
Neuerdings Swift
Cocoa Touch Framework
Pro Plattform komplette Neuentwicklung
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 6 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
PhoneGap / Cordova
Unterschied PhoneGap und Cordova
Ursprünglicher Code stammt von dem Unternehmen PhoneGap
Dieses wurde von Adobe aufgekauft
Der Code wurde unter dem Namen Cordova als Open-Source-Apache-Projekt
veröffentlicht
Cordova ist jetzt der eigentliche Programm Code, der weiterentwickelt wird
Bsp. Linux ist der eigentliche Code
PhoneGap ist eine Distribution von Cordova
Bsp. Ubuntu, Suse, Red Hat sind Distributionen von Linux
Es gibt weitere, relativ unbekannte Cordova-Distributionen
Intel XDK, Appery.io, …
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 7 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Ansatz PhoneGap / Cordova
Eine Cordova-App besteht aus:
Web App, typischerweise SPA
HTML
JavaScript
CSS
Verpackung für die Web App (nativer Container)
Plugins (Cordova API)
Datenbank
Kamera
Beschleunigungsmesser
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 8 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativer Container
Den nativen Container kann man sich
als Spezial-Browser vorstellen
Keine URL-Leiste oder ähnliches
Sondern nur der Teil des Browsers,
der die Web App anzeigt
Wird nativ vom Betriebssystem zur
Verfügung gestellt
WebView Android
UIWebView iOS
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 9 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Cordova API
„Brücke“ (API) zwischen Web App und nativen Funktionen
Plugins für viele Smartphone Features werden direkt mitgeliefert
Adressbuch
Barcode Scanner
Beschleunigungssensor
U.v.m.
Mit der Cordova API kann man leicht eigene Plugins entwickeln
Muss nativ für jede Plattform programmiert werden
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 10 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Cordova
Läuft auf allen Geräten, nur 1-mal entwickeln
Gut geeignet, wenn viel JavaScript-Know-how vorhanden ist
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 11 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Ansatz Xamarin
Von den Entwicklern von „Mono“
Cross-Plattform-Entwicklung mit C#
C#-Code wird zu nativem Code kompiliert
Java / Android
Objective-C / iOS
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 12 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Xamarin.Forms
UI mit Xamarin.Forms
XAML-Code (ähnlich XML)
von Microsoft entwickelte allgemeine Beschreibungssprache für die
Oberflächengestaltung
Mapping von Xamarin.Forms auf native UI-Elemente
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 13 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Xamarin.Forms
Plattform-spezifischer Code
Device.OnPlatform(
iOS: () => label.Font = Font.SystemFontOfSize (NamedSize.Micro),
Android: () => label.Font = Font.SystemFontOfSize (NamedSize.Medium)
WinPhone: () => label.Font = Font.SystemFontOfSize (NamedSize.Large)
);
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 14 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Xamarin
Läuft auf allen Geräten, nur 1-mal entwickeln
Sehr gut geeignet, wenn C#-Know-how vorhanden ist
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 15 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Vor- und Nachteile: Nativ / Cross-Plattform
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 16 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Vor- und Nachteile: Nativ / Cross-Plattform
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 17 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Vor- und Nachteile: Nativ / Cross-Plattform
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 18 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Vor- und Nachteile: Nativ / Cross-Plattform
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 19 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativ vs. Cross-Plattform: Ressourcenverfügbarkeit
Leichter Android- / iOS-Entwickler zu finden als
Xamarin- / PhoneGap-Entwickler
Mehr Lösungen zu nativer Programmierung
im Internet zu finden, als zu
Cross-Plattform-Entwicklung
Deutlich bessere Tool-Unterstützung bei nativer Entwicklung
durch Google und Apple
Mehr Dokumentation, Tutorials, Beispiele für native Entwicklung
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 20 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativ vs. Cross-Plattform: Programm Bibliotheken
Nativ: Leichter 3rd Party Libs zu finden
Dokumente scannen
Push Notifications
Google Analytics
Schnittstellen
Vor allem leichter zu integrieren!
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 21 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativ vs. Cross-Plattform: Kompatibilität / Updates
Nativ: Weniger Probleme, wenn das Smartphone-Betriebssystem
aktualisiert wird
Nativ: Keine Probleme, wenn die Entwicklungsumgebung
aktualisiert wird
Nativ geschriebener Code ist im Fehlerfall deutlich
einfacher zu debuggen!
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 22 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativ vs. Cross-Plattform: User Interface
Nativ: Leichter sehr gute User Interfaces zu gestalten
Macht bei mobilen Apps einen großen Teil des Entwicklungsaufwandes aus
Nativ: Vom Betriebssystem mitgelieferte Unterstützung für verschiedene
Displaygrößen
Smartphone
Tablet
Retina
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 23 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Vergleich Smartphone vs. Tablet
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 24 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativ vs. Cross-Plattform: User Interface
Nativ: sieht auf jedem Gerät so aus, wie es die Benutzer erwarten
Man muss drauf achten, auf allen Betriebssystemen dasselbe Wording zu benutzen,
die Benutzbarkeit ähnlich zu halten und alle Funktionen möglichst gleich zu
implementieren
PhoneGap / Cordova: sieht auf allen Geräten gleich aus, verhält sich gleich,
hat dieselben Funktionen
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 25 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativ vs. Cross-Plattform: Kosten
Cross-Plattform
Kostenvorteil bei der initialen Entwicklung (ca. 25%)
Nativ
Kostet etwas mehr
Kann in der Wartung günstiger sein
Apps in der Regel hochwertiger
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 26 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Nativ vs. Cross-Plattform: Performance
Performance
Große Datenmengen (Fotos)
Maps
Anspruchsvolle Berechnungen
Animationen
Nativ: Optimaleren Code als den in der für das Betriebssystem nativen
Programmiersprache gibt es nicht
Bei Xamarin aufgrund des Übersetzens in nativen Code ähnlich gut
Aber schwerer zu debuggen
Bei Cordova regelmäßig Performance-Probleme
Speicher
Geschwindigkeit
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 27 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Vor- und Nachteile: Nativ / Cross-Plattform
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 28 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Agenda
Development
Distribution
Push Notifications
Google Analytics
Security
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 29 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Apple App Store
Apple Developer Account
Viele Daten für Registrierung notwendig
Jährlich 99$
App wird manuell überprüft ~1 Woche
Im Fehlerfall sind Notfall-Updates
bei Apple möglich!
Test Account für Apple
Wenn die App einen Login-Mechanismus hat, muss ein
Test Account für Apple eingerichtet werden!
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 30 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Play Store
Google Developer Account
Unkompliziert eingerichtet
Einmalig 25$
App wird automatisch veröffentlicht ~1 Stunden
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 31 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Möglichkeiten eine App zu verteilen
Aber es gibt auch gute Gründe Apps anders zu verteilen
Testversionen
Beta-Versionen
Interne Apps
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 32 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Ad Hoc / Website / E-Mail
iOS
Man kann einen speziellen Ad Hoc Build machen und dort die Ids von bis zu 100
Geräten hinterlegen
Diese App kann dann per Webseite auf allen Geräten installiert werden deren Id im
Build hinterlegt wurde
Android
Android-Apps können einfach so per Webseite oder auch E-Mail verteilt werden
Der Benutzer muss dafür auf seinem Gerät einstellen, dass er die Installation aus
„unbekannten Quellen“ erlaubt
Eignet sich sehr gut, um Vorabversionen / Testversionen zu verteilen
Keine automatischen Updates möglich!
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 33 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Enterprise Rollout (iOS only)
Benötigt Mitgliedschaft im „iOS Developer Enterprise Program”
Kostet 299$ / Jahr
Erlaubt nicht die Veröffentlichung im eigentlichen Apple App Store
Verteilung über eigenen App Store
Nur zur Verteilung der App an eigene Unternehmensmitglieder
erlaubt!
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 34 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Volume Purchasing for Business / B2B (iOS only)
Kostenlose Mitgliedschaft im „Volume Purchasing for Business Program”
Verteilung über Apple App Store
App ist unsichtbar, aber kann durch Freischaltcode sichtbar gemacht
werden
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 35 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Private Channel (Android only)
Mitgliedschaft im „Google Apps for Work“ Programm
Kostet 4€ / Nutzer / Monat
Mitarbeiter müssen mit ihrer „Google Apps for Work“-E-Mail-Adresse auf
ihrem Android-Gerät angemeldet sein
Dann können interne Apps nur für
die eigenen Mitarbeiter über den
herkömmlichen Google Play Store
verteilt werden
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 36 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Agenda
Möglichkeiten der App Entwicklung
Möglichkeiten eine App zu verteilen
Push Notifications
Google Analytics
Security
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 37 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Push Notifications
Push Notifications sind kurze Nachrichten, die an mobile Geräte gesendet
werden können
Ähnlich wie SMS nur über das Internet
Bei iOS werden diese als „Apple Push Notification“ bezeichnet
Bei Android läuft das unter dem Namen „Google Cloud Messaging“
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 38 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Push Notifications
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 39 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Push Notifications
Nachricht an alle: Broadcast
Warnmeldungen
Marketing
Allgemeine Informationen
Nachricht an spezielles Gerät: Single
Nachricht nur für dieses Gerät
Nachricht an alle Gerätes eines Benutzers
Muss man selber implementieren
Best Practice: Wenn die Nachricht auf einem Gerät gelesen wurde, dann auf den
anderen Geräten des Benutzers löschen
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 40 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Channels: Nur die Nachrichten empfangen, die
einen interessieren
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 41 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Agenda
Development
Distribution
Push Notifications
Google Analytics
Security
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 42 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Kann sehr einfach in native Apps integriert werden
Google Analytics Id erstellen
UA-123456-7
Bibliothek einbinden
Anonyme Datenerfassung ist einfach so möglich
Personalisierte Datenerfassung ist nur bei expliziter Zustimmung
des Benutzers erlaubt
Auf einer Webseite sind dann die Auswertungen über das
Nutzerverhalten in der App einsehbar
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 43 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 44 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 45 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 46 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 47 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 48 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 49 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 50 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 51 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 52 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 53 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 54 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 55 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 56 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Google Analytics
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 57 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Agenda
Development
Distribution
Push Notifications
Google Analytics
Security
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 58 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Security
Code Obfuscation
Bei Android sehr einfach möglich
Bei iOS mit Objective-C möglich / mit Swift noch nicht möglich
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 59 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Security
OWASP
M1: Weak Server Side Controls
M2: Insecure Data Storage
M3: Insufficient Transport Layer Protection
M4: Unintended Data Leakage
M5: Poor Authorization and Authentication
M6: Broken Cryptography
M7: Client Side Injection
M8: Security Decisions Via Untrusted Inputs
M9: Improper Session Handling
M10: Lack of Binary Protections
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
FAQs zur Technik 60 | 61
: Kopiert eine
Hinweis: Es gibt keine 2. Ebene
Klicke mit der Maus an die
Security
In App Security
Cache
History
Temporäre Dateien
Review durch Dritte
Zum Beispiel Telefonica
Development | Distribution | Push Notifications | Google Analytics | Security | Ende
WWW.IKS-GMBH.COM