Leverage your existing web development skills to learn the whole cycle of hybrid mobile app development. This edition is fully updated with the changes in Ionic 4, including Stencil, a new framework based on the web components standard. It explains Ionic and Firebase in detail, including how to create hybrid mobile apps using using React and Vue, and run those apps in an internal browser using a wrapper created by Apache Cordova.
Build Mobile Apps with Ionic 4 and Firebase shows you how to focus on developing front-end code, without needing to manage any back-end code or servers. You'll learn in the context of building a Hacker News client app, which can view top stories in Hacker News, view comments of a story, and add stories to favorites.
Explore how Ionic 4 uses Angular as the JavaScript framework to easily develop apps using an interface similar to native apps, and how to access Firebase, a real-time database, in web apps using JavaScript.
What You'll Learn
- Create content-based Ionic mobile apps
- Work with new Ionic 4 compnents like gesture, text, and keyboard controller
- Manage your apps with RxJS & Redux
Who This Book Is For
Front-end developers and mobile app developers
About the Author |
|
xv | |
About the Technical Reviewer |
|
xvii | |
Acknowledgments |
|
xix | |
Preface |
|
xxi | |
|
Chapter 1 Getting Started |
|
|
1 | (28) |
|
|
1 | (1) |
|
|
2 | (6) |
|
|
4 | (1) |
|
|
5 | (2) |
|
|
7 | (1) |
|
|
7 | (1) |
|
Prepare Your Local Development Environment |
|
|
8 | (7) |
|
|
9 | (1) |
|
|
9 | (4) |
|
|
13 | (1) |
|
|
13 | (2) |
|
|
15 | (1) |
|
|
15 | (6) |
|
|
17 | (4) |
|
|
21 | (4) |
|
Use Chrome for Development |
|
|
21 | (1) |
|
Use Chrome DevTools for Android Debugging |
|
|
22 | (1) |
|
Use Safari Web Inspector for iOS Debugging |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
25 | (3) |
|
|
25 | (1) |
|
|
26 | (2) |
|
|
28 | (1) |
|
Chapter 2 Languages, Frameworks, Libraries, and Tools |
|
|
29 | (38) |
|
|
30 | (29) |
|
|
31 | (1) |
|
|
32 | (6) |
|
|
38 | (3) |
|
|
41 | (5) |
|
|
46 | (4) |
|
|
50 | (9) |
|
|
59 | (4) |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
62 | (1) |
|
|
63 | (2) |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
66 | (1) |
|
Chapter 3 Web Components and Stencil |
|
|
67 | (36) |
|
|
68 | (19) |
|
Why Do We Need Web Components? |
|
|
70 | (2) |
|
|
72 | (6) |
|
|
78 | (6) |
|
|
84 | (1) |
|
|
85 | (2) |
|
|
87 | (15) |
|
|
89 | (1) |
|
|
90 | (1) |
|
|
91 | (1) |
|
|
92 | (1) |
|
|
92 | (1) |
|
|
93 | (3) |
|
|
96 | (1) |
|
|
97 | (1) |
|
|
98 | (1) |
|
|
99 | (2) |
|
|
101 | (1) |
|
|
102 | (1) |
|
Chapter 4 Basic App Structure |
|
|
103 | (16) |
|
Understanding the Basic App Structure |
|
|
104 | (1) |
|
|
105 | (2) |
|
|
105 | (1) |
|
|
105 | (1) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
108 | (2) |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
109 | (1) |
|
|
109 | (1) |
|
|
110 | (1) |
|
|
110 | (1) |
|
|
110 | (1) |
|
|
110 | (7) |
|
|
111 | (1) |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
114 | (1) |
|
|
114 | (1) |
|
|
115 | (1) |
|
|
115 | (1) |
|
|
116 | (1) |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
117 | (2) |
|
|
119 | (86) |
|
|
120 | (1) |
|
|
121 | (6) |
|
|
121 | (1) |
|
|
122 | (1) |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
125 | (2) |
|
|
127 | (6) |
|
|
127 | (4) |
|
|
131 | (1) |
|
|
132 | (1) |
|
|
133 | (11) |
|
|
134 | (4) |
|
|
138 | (4) |
|
|
142 | (2) |
|
|
144 | (2) |
|
|
146 | (6) |
|
|
149 | (3) |
|
|
152 | (12) |
|
|
153 | (1) |
|
|
154 | (6) |
|
|
160 | (2) |
|
|
162 | (2) |
|
|
164 | (1) |
|
|
164 | (29) |
|
|
165 | (3) |
|
|
168 | (1) |
|
|
169 | (1) |
|
Alternative Model and Service Implementation |
|
|
170 | (3) |
|
|
173 | (5) |
|
|
178 | (6) |
|
|
184 | (5) |
|
|
189 | (2) |
|
|
191 | (2) |
|
|
193 | (10) |
|
|
193 | (7) |
|
|
200 | (3) |
|
|
203 | (2) |
|
Chapter 6 State Management with NgRx |
|
|
205 | (38) |
|
The Importance of State Management |
|
|
205 | (2) |
|
|
207 | (2) |
|
|
209 | (32) |
|
|
210 | (6) |
|
|
216 | (19) |
|
|
235 | (5) |
|
|
240 | (1) |
|
|
241 | (2) |
|
|
243 | (16) |
|
|
243 | (1) |
|
|
244 | (13) |
|
|
244 | (1) |
|
|
245 | (4) |
|
|
249 | (2) |
|
|
251 | (5) |
|
|
256 | (1) |
|
|
257 | (2) |
|
|
259 | (22) |
|
|
259 | (5) |
|
|
264 | (1) |
|
|
265 | (15) |
|
|
265 | (2) |
|
|
267 | (1) |
|
|
268 | (1) |
|
|
268 | (12) |
|
|
280 | (1) |
|
Chapter 9 User Management |
|
|
281 | (44) |
|
|
282 | (13) |
|
|
282 | (2) |
|
|
284 | (1) |
|
|
285 | (1) |
|
|
286 | (5) |
|
|
291 | (1) |
|
|
291 | (2) |
|
|
293 | (1) |
|
|
294 | (1) |
|
|
295 | (22) |
|
Model for User Management |
|
|
296 | (1) |
|
|
297 | (4) |
|
|
301 | (9) |
|
|
310 | (4) |
|
|
314 | (3) |
|
|
317 | (6) |
|
|
323 | (2) |
|
Chapter 10 Manage Favorites |
|
|
325 | (22) |
|
|
325 | (3) |
|
|
328 | (8) |
|
|
336 | (4) |
|
|
340 | (2) |
|
|
342 | (2) |
|
Integration with Authentication |
|
|
344 | (1) |
|
|
345 | (2) |
|
|
347 | (10) |
|
|
347 | (2) |
|
|
349 | (2) |
|
|
351 | (5) |
|
|
353 | (3) |
|
|
356 | (1) |
|
Chapter 12 Common Components |
|
|
357 | (24) |
|
|
357 | (4) |
|
|
361 | (5) |
|
|
366 | (3) |
|
|
369 | (4) |
|
|
373 | (3) |
|
|
376 | (4) |
|
|
376 | (1) |
|
|
377 | (3) |
|
|
380 | (1) |
|
Chapter 13 Advanced Topics |
|
|
381 | (18) |
|
|
381 | (1) |
|
|
382 | (3) |
|
|
385 | (2) |
|
|
387 | (1) |
|
|
388 | (3) |
|
|
391 | (5) |
|
|
396 | (1) |
|
|
397 | (2) |
|
Chapter 14 End-to-End Test and Build |
|
|
399 | (18) |
|
End-to-End Test with Protractor |
|
|
399 | (14) |
|
|
400 | (4) |
|
|
404 | (2) |
|
|
406 | (3) |
|
|
409 | (2) |
|
|
411 | (2) |
|
|
413 | (3) |
|
Headless Chrome for Tests |
|
|
413 | (2) |
|
|
415 | (1) |
|
|
416 | (1) |
|
|
417 | (8) |
|
|
417 | (1) |
|
|
418 | (1) |
|
|
418 | (2) |
|
View and Share with Ionic View |
|
|
420 | (1) |
|
|
421 | (1) |
|
|
422 | (3) |
Index |
|
425 | |
Fu Cheng is a full-stack software developer living in Auckland, New Zealand with rich experience in applying best practices in real product development and strong problem solving skills. He is the author of the book Exploring Java 9: Build Modularized Applications in Java, which covers the new features of Java SE 9 and provides a deep dive of Java platform core features. He is also a regular contributor to IBM developerWorks China and InfoQ China, with more than 50 published technical articles covering various technical topics.