Book description
Mobile Anwendungen (Apps) sind allgegenwärtig und haben sich im privaten und geschäftlichen Umfeld weltweit durchgesetzt. Viele Unternehmen lassen mobile Apps entwickeln, um ihre Webanwendungen zu unterstützen bzw. um diese vollständig auf mobilen Endgeräten verfügbar zu machen.Und auch wenn es sich prinzipiell um Softwareentwicklung handelt, gibt es bei der Mobile-App-Entwicklung signifikante Unterschiede zur konventionellen objektorientierten Softwareentwicklung für Desktop- und Notebook-Computer.Vor diesem Hintergrund beschreibt dieses Lehrbuch ein strukturiertes und systematisches Vorgehen zur Entwicklung mobiler Apps. Anhand eines durchgehenden industriellen Anwendungsbeispiels wird praxisnah und detailliert beschrieben, wie sämtliche Phasen des Softwarelebenszyklus – also von den Requirements bis zum Go Live – mit geeigneten Methoden, Werkzeugen, Sprachen und Best Practices der Softwaretechnik durchzuführen sind, um hochqualitative mobile Apps zu entwickeln.
Table of contents
- Cover
- Titel
- Impressum
- Geleitwort
- Vorwort
- Danksagung
- Inhaltsverzeichnis
- 1 Einleitung
-
2 Herausforderungen zur Entwicklung mobiler Apps
- 2.1 Oberflächengetriebene Konzeption und Entwicklung
- 2.1.1 Usability
- 2.1.2 User Experience
- 2.1.3 User-Centered Design
- 2.1.4 Interaktionsdesign
- 2.1.5 Multi-Touch-Displays
- 2.1.6 Guidelines, Styleguides und Normen
- 2.1.7 Konsequenzen für das Mobile App Engineering
- 2.2 Hardware- und softwareseitige Fragmentierung
- 2.2.1 Mobile Endgeräte und Betriebssysteme
- 2.2.2 Gesten
- 2.2.3 Konsequenzen für das Mobile App Engineering
- 2.3 Entwicklungsparadigmen
- 2.3.1 Native mobile App
- 2.3.2 Mobile Web-App
- 2.3.3 Hybride mobile App
- 2.3.4 Interpretierte mobile App
- 2.3.5 Cross-kompilierte mobile App
- 2.3.6 Konsequenzen für das Mobile App Engineering
- 2.4 Hardwarekomponenten mobiler Endgeräte
- 2.4.1 Multitouch-Display
- 2.4.2 Akkumulator
- 2.4.3 Central Processing Unit
- 2.4.4 Netzanbindung
- 2.4.5 Sensoren und Aktoren
- 2.4.5.1 Beschleunigungssensor
- 2.4.5.2 Gyroskop
- 2.4.5.3 GPS-Sensor
- 2.4.5.4 Magnetfeldsensor
- 2.4.5.5 Kamera
- 2.4.5.6 Mikrofon
- 2.4.5.7 Helligkeitssensor
- 2.4.5.8 Annäherungssensor
- 2.4.5.9 Voltmeter
- 2.4.5.10 Vibrationsaktor
- 2.4.5.11 Weitere Sensoren
- 2.4.6 Konsequenzen für das Mobile App Engineering
- 2.5 Berücksichtigung des Anwendungskontexts
- 2.6 Vertrieb via App Store
- 2.7 Zusammenfassung
- 2.8 Übungen
- 2.9 Weiterführende Literatur
-
3 Die mobile Stromversorgungs-App ENPURE
- 3.1 Projektbeschreibung
- 3.1.1 Zielsetzung
- 3.1.2 Zielgruppe
- 3.1.3 Eingesetztes Entwicklungsparadigma
- 3.1.4 Rollen im Projekt
- 3.1.5 Laufzeit und Umfang des Projekts
- 3.1.6 Middleware und Backend-Systeme
- 3.2 Initialisierung der mobilen App
- 3.3 Onboarding
- 3.4 Registrierung
- 3.5 Tarifrechner
- 3.5.1 Registrierung zum Vertragsabschluss
- 3.5.2 Zahlungsdaten eingeben
- 3.5.3 Passwortvergabe
- 3.6 Lieferprozess/Mein Vertrag
- 3.6.1 Daten und Bonität prüfen
- 3.6.2 Anschluss prüfen
- 3.6.3 Altvertrag kündigen
- 3.6.4 Liefertermin bestätigen
- 3.6.5 Vertrag ablehnen
- 3.7 Vertragsinformationen laden
- 3.8 Abschlag und Zählerstand
- 3.8.1 Abschlag anpassen
- 3.8.2 Zählerstand mitteilen
- 3.8.3 Zählerstände abrufen
- 3.9 Rechnungen verwalten
- 3.10 Postfach
- 3.10.1 Preisinformation übermitteln
- 3.10.2 Bezahlung
- 3.10.3 Informationen über Zahlungseingang
- 3.10.4 Erinnerung/Mahnung
- 3.11 Login
- 3.11.1 Passwort ändern/vergessen
- 3.11.2 Einstellungen
- 3.12 Kündigung
- 3.13 Informationen
- 3.14 Reporting und Tracking
- 3.14.1 Crash- und Bug-Reporting
- 3.14.2 Benutzungsstatistik
- 3.15 Zusammenfassung
- 3.16 Übungen
- 3.17 Bezugsquellen der mobilen App ENPURE
-
4 Requirements Engineering
- 4.1 Projektvision und Benutzergruppen definieren
- 4.1.1 Projektvision
- 4.1.2 Ziel- und Benutzergruppen definieren
- 4.2 Anwendungs- und Systemkontext ermitteln
- 4.2.1 Systemkontext ermitteln
- 4.2.2 Anwendungskontext ermitteln
- 4.2.3 Domänenmodell erstellen
- 4.3 Personas entwickeln
- 4.4 Szenarien entwerfen
- 4.5 Storyboard erstellen
- 4.6 Anforderungen ermitteln
- 4.6.1 Anforderungen kategorisieren
- 4.6.2 Semistrukturierte Interviews durchführen
- 4.6.3 Anforderungsworkshop durchführen
- 4.6.4 Interaction Room
- 4.6.5 Anwendungsfälle modellieren
- 4.6.6 Anwendungsfall-Spezifikationsschablone ausfüllen
- 4.6.7 User Stories ermitteln
- 4.6.8 Funktionale Anforderungen
- 4.6.9 Nicht funktionale Anforderungen
- 4.6.9.1 Mobile Endgeräte und Betriebssystemversionen
- 4.6.9.2 Entwicklungsparadigma auswählen
- 4.6.9.3 Einzuhaltende Standards definieren
- 4.6.10 Requirements im ENPURE-Projekt
- 4.7 Anforderungsspezifikation erstellen
- 4.7.1 Arten der Anforderungsdokumentation
- 4.7.2 Anforderungsdokument gliedern
- 4.7.3 Einsatzzwecke der Anforderungsspezifikation
- 4.7.4 Anforderungen testbar formulieren
- 4.7.5 Anforderungen analysieren
- 4.7.6 Anforderungen priorisieren
- 4.7.6.1 Nutzenbetrachtung
- 4.7.6.2 Risikobetrachtung
- 4.7.6.3 Kostenbetrachtung
- 4.7.7 Anforderungsspezifikation im ENPURE-Projekt
- 4.8 Versionsplanung durchführen
- 4.9 Zusammenfassung
- 4.10 Übungen
- 4.11 Weiterführende Literatur
-
5 Konzeption und Design
- 5.1 Interaktionsdesign entwickeln
- 5.1.1 Visuelles Vokabular
- 5.1.1.1 Grundannahmen
- 5.1.1.2 Basiselemente des visuellen Vokabulars
- 5.1.1.3 Eindeutige und prägnante Namen
- 5.1.1.4 Ungerichtete Kanten
- 5.1.1.5 Gerichtete Kanten
- 5.1.1.6 Kantenbeschriftungen
- 5.1.1.7 Simultane Ereignisse
- 5.1.1.8 Fortsetzungspunkte
- 5.1.1.9 Wecker-App unter iOS 10
- 5.1.2 UML-Zustandsdiagramme
- 5.1.3 Interaktionsdesign im ENPURE-Projekt
- 5.2 Mobile App grafisch gestalten
- 5.2.1 Gestaltungsrichtlinien für mobile Apps
- 5.2.2 Visuelles Konzept entwickeln
- 5.3 GUI-Prototyping
- 5.3.1 Prototyping-Grundlagen
- 5.3.2 Arten des Prototypings
- 5.3.3 Low-Fidelity-Prototyping
- 5.3.4 High-Fidelity-Prototyping
- 5.4 Konzeption der Barrierefreiheit
- 5.4.1 Visuelle Beeinträchtigungen
- 5.4.2 Hörschädigungen
- 5.4.3 Physische Beeinträchtigungen
- 5.4.4 Kognitive Beeinträchtigungen
- 5.4.5 Richtlinien zur Barrierefreiheit
- 5.5 Seitenspezifikation erstellen
- 5.6 Softwarearchitektur
- 5.6.1 Model-View-Controller
- 5.6.1.1 MVC-Muster im praktischen Einsatz
- 5.6.1.2 Anwendung des MVC-Musters unter Android
- 5.6.1.3 Anwendung des MVC-Musters unter iOS
- 5.6.2 Model-View-Presenter
- 5.6.3 Model-View-ViewModel
- 5.6.4 Softwarearchitektur im ENPURE-Projekt
- 5.7 Release- und Iterationsplan erstellen
- 5.7.1 Dauer der Iterationen
- 5.7.2 Explorative Iterationen
- 5.7.3 Erstellung des Release- und Iterationsplans
- 5.8 Zusammenfassung
- 5.9 Übungen
- 5.10 Weiterführende Literatur
-
6 Implementierung
- 6.1 Programmierung nativer mobiler Apps
- 6.2 Android-Grundlagen
- 6.2.1 Entwicklung, Build und Ausführung
- 6.2.2 Signierung
- 6.2.3 Laden und Installation
- 6.2.4 Ausführung
- 6.2.5 Garbage Collection
- 6.2.6 App-Komponenten
- 6.2.6.1 Activity
- 6.2.6.2 Service
- 6.2.6.3 Content Provider
- 6.2.6.4 Broadcast Receiver
- 6.2.7 Android-Systemarchitektur
- 6.2.8 Entwicklung mit Android Studio
- 6.2.8.1 Das Android-Manifest
- 6.2.8.2 Java-Quellcode
- 6.2.8.3 Ressourcen
- 6.2.8.4 Gradle
- 6.2.9 Intents und Intent-Filter
- 6.2.9.1 Explizite Intents
- 6.2.9.2 Implizite Intents
- 6.2.9.3 Intent-Filter
- 6.2.10 Fragmente
- 6.2.11 Design
- 6.2.12 View und ViewGroup
- 6.2.13 Back-Stack
- 6.2.14 App-Widgets und Widgets
- 6.2.15 Prozesse und Threads
- 6.2.16 Android-Implementierung des ENPURE-Tarifrechners
- 6.3 iOS-Grundlagen
- 6.3.1 Cocoa Touch
- 6.3.2 Entwicklung mit Xcode
- 6.3.3 App-Komponenten
- 6.3.3.1 UIScreen
- 6.3.3.2 UIWindow
- 6.3.3.3 UIView
- 6.3.3.4 UIViewController
- 6.3.3.5 UINavigationController
- 6.3.3.6 UIPageViewController
- 6.3.3.7 UITabBarController
- 6.3.3.8 UITableViewController
- 6.3.4 Auslieferung einer mobilen iOS-App
- 6.3.5 Bedienung einer iOS-App
- 6.3.6 Design
- 6.3.7 Ausführung
- 6.3.8 iOS-Implementierung des ENPURE-Tarifrechners
- 6.4 Cross-Plattform-Entwicklung
- 6.4.1 Xamarin
- 6.4.2 React Native
- 6.4.3 Apache Cordova mit Ionic
- 6.5 Dokumentation der Programmierung
- 6.6 Zusammenfassung
- 6.7 Übungen
- 6.8 Weiterführende Quellen und Literatur
-
7 Test
- 7.1 Definition
- 7.2 Herausforderungen und Strategien
- 7.2.1 Entwicklung und Ausführung
- 7.2.2 Fragmentierung
- 7.2.3 Konzeption, Design und native Entwicklung
- 7.2.4 Anschaffungskosten
- 7.2.5 Gerätehardware und deren Eigenschaften
- 7.2.6 Testwerkzeuge zur Automatisierung
- 7.3 Arten von Tests
- 7.3.1 Whitebox-Test
- 7.3.2 Blackbox-Test
- 7.3.3 Greybox-Test
- 7.4 Tests für mobile Apps
- 7.4.1 Teststrategie
- 7.4.2 Testfälle
- 7.4.3 Testszenarien
- 7.5 Tests während der Konzeptions- und Designphase
- 7.5.1 Usability-Test durch Experten
- 7.5.1.1 Testobjekt
- 7.5.1.2 Testziele
- 7.5.1.3 Tester und Operatoren
- 7.5.1.4 Testmethode
- 7.5.1.5 Testablauf
- 7.5.1.6 Usability-Test durch Experten im ENPURE-Projekt
- 7.5.2 Usability-Test durch Benutzer
- 7.6 Tests während der Implementierung
- 7.6.1 Debuggen
- 7.6.2 Unit Tests
- 7.6.3 Prüfung der Logdateien
- 7.6.4 Integrationstests
- 7.6.5 Funktions- und Benutzbarkeitstests
- 7.6.5.1 Funktionstests
- 7.6.5.2 Benutzbarkeitstest
- 7.6.5.3 Test der Fehlermeldungen
- 7.6.6 Performanztest
- 7.7 Tests nach der Implementierung
- 7.7.1 Test des Energieverbrauchs
- 7.7.1.1 Test bei vollgeladenem Akku
- 7.7.1.2 Test bei fast entladenem Akku
- 7.7.1.3 Test bei leerem Akku
- 7.7.1.4 Werkzeuge zur Anzeige des Energieverbrauchs
- 7.7.2 Stress- und Robustheitstest
- 7.7.3 Stand-by-Test
- 7.7.4 Installationstest
- 7.7.5 Update-Test
- 7.7.6 Datenbanktest
- 7.7.7 Test des lokalen Speichers
- 7.7.8 Sicherheitstest
- 7.7.9 Testen der Betriebssystem-Richtlinien
- 7.7.10 Konformitätstest
- 7.7.11 Crashtest
- 7.8 Testautomatisierung
- 7.8.1 Identifizierungstechniken
- 7.8.2 Ausgewählte Testwerkzeuge
- 7.8.2.1 Appium
- 7.8.2.2 Calabash
- 7.8.2.3 Espresso Test Recorder
- 7.8.2.4 ios-driver
- 7.8.2.5 Keep It Functional
- 7.8.2.6 Monkey
- 7.8.2.7 Robotium
- 7.8.2.8 Selenium
- 7.8.2.9 Spoon
- 7.8.3 Kriterien zur Auswahl eines Testwerkzeugs
- 7.9 Testdokumentation
- 7.9.1 Test-Checklisten
- 7.9.2 Checklisten im ENPURE-Projekt
- 7.10 Zusammenfassung
- 7.11 Übungen
- 7.12 Weiterführende Literatur
-
8 Go Live
- 8.1 Veröffentlichungsort einer mobilen App
- 8.2 Veröffentlichungsprozesse
- 8.2.1 Veröffentlichung im Apple App Store
- 8.2.2 Veröffentlichung bei Google Play
- 8.2.3 Mobile-App-Indexierung
- 8.3 Mobile-App-Tracking
- 8.3.1 Vorgehen beim Mobile-App-Tracking
- 8.3.2 Kennzahlen für das Mobile-App-Tracking
- 8.3.3 Reaktionsmöglichkeiten
- 8.3.4 Zielgruppen des Mobile-App-Tracking
- 8.3.5 Softwarewerkzeuge zum Mobile-App-Tracking
- 8.4 Pflege und Wartung
- 8.5 Zusammenfassung
- 8.6 Übungen
- 8.7 Weiterführende Literatur
- 9 Zusammenfassung und Ausblick
- Anhang
- Fußnoten
- Stichwortverzeichnis
Product information
- Title: Mobile App Engineering
- Author(s):
- Release date: June 2017
- Publisher(s): dpunkt
- ISBN: 9783864904219
You might also like
book
Basiswissen Mobile App Testing
Dieses Buch vermittelt die Grundlagen des mobilen Testens und gibt einen fundierten Überblick über geeignete Testarten, …
book
Mobile App Testing
das erste deutsche Buch zu diesem Thema- der Autor ist auf diesem Gebiet internat. bekannt - …
book
Requirements Engineering für die agile Softwareentwicklung, 2nd Edition
Dieses Buch gibt einen praxisorientierten Überblick über die am weitesten verbreiteten Techniken für die Anforderungsspezifikation und …
book
Das WordPress-5-Buch, 4th Edition
WordPress erfreut sich großer Beliebtheit: Auf dem Redaktionssystem basieren mehr Websites als auf jedem anderen Content-Management-System. …