| Inhaltsverzeichnis | 5 |
---|
| Danksagung | 9 |
---|
| Kapitel 1 – Einleitung | 11 |
---|
| 1.1 Warum dieses Buch? | 11 |
| 1.2Warum mobile Webapplikationen? | 12 |
| 1.3Warum JavaScript? | 14 |
| 1.4Single Page Web-Apps | 15 |
| 1.5Entwicklungsprozess | 16 |
| 1.6Ziel des Buchs | 17 |
| 1.7Zielgruppe dieses Buchs | 18 |
| 1.8Vorstellung des durchgehenden Use Case | 18 |
| 1.8.1Das Beispielunternehmen RYLC | 19 |
| 1.8.2Fachlichkeit der Beispielanwendung | 20 |
| 1.8.3Architektur der Beispielanwendung | 23 |
| 1.8.4Codebeispiele online | 24 |
| 1.9Kapitelübersicht | 24 |
| Kapitel 2 – JavaScript-Grundlagen | 29 |
---|
| 2.1Objekte und Objektliterale | 29 |
| 2.2Funktionen | 30 |
| 2.2.1Codeblöcke | 31 |
| 2.2.2Callbacks | 31 |
| 2.2.3Methoden | 32 |
| 2.2.4Sofort ausgeführte Funktionsausdrücke | 33 |
| 2.3Namespaces | 34 |
| 2.4Module | 34 |
| Kapitel 3 – Projekt-Setup | 37 |
---|
| 3.1Maven | 39 |
| 3.1.1Convention over Configuration | 39 |
| 3.1.2Das Project Object Model | 41 |
| 3.1.3Build Lifecycle | 42 |
| 3.1.4Plug-ins | 43 |
| 3.2Ant | 46 |
| 3.3Entwicklungsumgebungen | 49 |
| Kapitel 4 – Testen | 51 |
---|
| 4.1Testen von und mit JavaScript | 53 |
| 4.2Unit Tests mit Jasmine | 55 |
| 4.3Der Jasmine Spec Runner | 59 |
| 4.4Jasmine Spies | 62 |
| 4.5Asynchrone Tests | 64 |
| 4.6Automatische Testausführung | 65 |
| 4.7Integration in das Projekt-Setup | 68 |
| 4.8Fazit | 71 |
| Kapitel 5 – Oberflächenkomponenten | 73 |
---|
| 5.1Beispiele für Komponentenbibliotheken | 76 |
| 5.1.1jQuery Mobile | 77 |
| 5.1.2Sencha Touch | 80 |
| 5.2jQuery Mobile | 83 |
| 5.2.1Gerüst einer jQuery-Mobile-HTML-Seite | 84 |
| 5.2.2jQuery Mobile Pages | 85 |
| 5.2.3Gestaltung des Content-Bereichs | 88 |
| 5.3Oberflächentests | 91 |
| 5.3.1Jasmine UI | 92 |
| 5.3.2Fortgeschrittene Konzepte | 98 |
| Kapitel 6 – Data Binding | 103 |
---|
| 6.1Manuelles Data Binding | 105 |
| 6.2Data Binding mit Angular | 108 |
| 6.2.1Scopes und Controller | 109 |
| 6.2.2Templates | 114 |
| 6.2.3Integration von Angular und jQuery Mobile | 118 |
| 6.3Angular-Module | 119 |
| 6.4Weiterführende Konzepte | 121 |
| 6.4.1Erweiterungen der Controller-Logik | 122 |
| 6.4.2Shared Controller | 123 |
| 6.4.3Repeater Scopes | 126 |
| 6.4.4Filter | 128 |
| 6.5Zusammenfassung | 128 |
| Kapitel 7 – Backend-Kommunikation | 129 |
---|
| 7.1Dependency Injection mit Angular | 130 |
| 7.2Angular Promises | 134 |
| 7.3Zugriff auf das Backend | 141 |
| 7.4Tests für Backend-Kommunikation | 147 |
| 7.5Zusammenfassung | 150 |
| Kapitel 8 – Die fertige Web-App | 151 |
---|
| 8.1Architektur im Überblick | 151 |
| 8.2Shared Controller | 154 |
| 8.3Wait-Dialog | 156 |
| 8.4Prefetching | 159 |
| 8.5Mehrseitige Wizard-artige Dialoge | 162 |
| 8.6Weitere Eventtypen | 163 |
| 8.7Nachladen bei großen Datenmengen | 164 |
| 8.8Kontrolle der Browser-History | 165 |
| Kapitel 9 – Modularisierung und Build | 169 |
---|
| 9.1Modularisierung von HTML | 170 |
| 9.2Modularisierung von CSS | 173 |
| 9.3Modularisierung von JavaScript | 175 |
| 9.3.1Moduldefinition | 176 |
| 9.3.2Zusammenspiel mit AngularJS | 182 |
| 9.3.3Zusammenspiel mit automatisierten Tests | 183 |
| 9.3.4Build und Optimierung | 185 |
| 9.4Das Ergebnis | 188 |
| 9.5Die App in Betrieb nehmen | 189 |
| Kapitel 10 – Hybride Apps | 191 |
---|
| 10.1PhoneGap | 191 |
| 10.2PhoneGap Build | 193 |
| 10.3Lokaler Build | 195 |
| 10.4Eigene Plug-ins | 197 |
| 10.5JavaScript-Entwicklung mit PhoneGap-Proxy | 201 |
| 10.6Das Backend in Betrieb nehmen | 206 |
| 10.7Zusammenfassung | 207 |
| Stichwortverzeichnis | 209 |