Preface |
|
vii | |
|
|
1 | (14) |
|
1.1 World of mobile computing |
|
|
1 | (2) |
|
1.2 Tour of the apps developed in the book |
|
|
3 | (12) |
|
2 Developing, installing, and testing first app |
|
|
15 | (26) |
|
2.1 Choice of programming platform |
|
|
15 | (1) |
|
2.2 How to create a simple HTML5 web page |
|
|
16 | (4) |
|
2.3 How to put an HTML5 web page on the Internet |
|
|
20 | (5) |
|
2.4 More HTML5 formatting |
|
|
25 | (1) |
|
2.5 Unordered and ordered lists |
|
|
25 | (3) |
|
|
28 | (2) |
|
2.7 Cascading Style Sheets (CSS) |
|
|
30 | (11) |
|
|
38 | (1) |
|
|
38 | (2) |
|
|
40 | (1) |
|
3 Making apps more interactive through data input |
|
|
41 | (24) |
|
3.1 Embedding JavaScript in an HTML5 document |
|
|
41 | (2) |
|
3.2 Using JavaScript from an external file in an HTML5 document |
|
|
43 | (1) |
|
3.3 A JavaScript function |
|
|
43 | (2) |
|
3.4 Input widget In HTML5/jQuery/jQuery Mobile |
|
|
45 | (2) |
|
|
47 | (1) |
|
3.6 Header, footer, and content data-role |
|
|
48 | (1) |
|
3.7 More widgets In HTML5/jQuery/jQuery Mobile |
|
|
49 | (2) |
|
3.8 Identifying elements from a web page |
|
|
51 | (3) |
|
3.9 Range slider Input widget |
|
|
54 | (11) |
|
|
61 | (1) |
|
|
61 | (1) |
|
|
62 | (3) |
|
4 Making apps do significant computing |
|
|
65 | (34) |
|
4.1 Temperature converter app design |
|
|
65 | (1) |
|
4.2 Simple JavaScript calculations for temperature conversion app |
|
|
66 | (6) |
|
4.3 Projectile app to calculate distance and height of a projectile |
|
|
72 | (2) |
|
4.4 Validating input values in an app using Boolean expressions In JavaScript |
|
|
74 | (4) |
|
4.5 Calculation of distance and height of a projectile using JavaScript Math object |
|
|
78 | (5) |
|
4.6 JavaScript arrays for storing distances and heights over time of a projectile |
|
|
83 | (6) |
|
4.7 JavaScript for loop for repeating computations |
|
|
89 | (4) |
|
4.8 Dynamically adding rows and cells in a table using JavaScript |
|
|
93 | (6) |
|
|
95 | (1) |
|
|
95 | (2) |
|
|
97 | (2) |
|
5 A menu-driven app to monitor important indicators |
|
|
99 | (24) |
|
|
99 | (1) |
|
5.2 Overview of the functionality of the Thyroid app |
|
|
100 | (1) |
|
5.3 Numeric pad for password entry |
|
|
101 | (3) |
|
5.4 Disclaimer and help pages |
|
|
104 | (1) |
|
5.5 User information entry form |
|
|
105 | (4) |
|
5.6 Navigation with a menu |
|
|
109 | (1) |
|
5.7 Record display and update page |
|
|
110 | (2) |
|
|
112 | (1) |
|
5.9 Use of canvas and panels for graphical display |
|
|
113 | (10) |
|
|
120 | (3) |
|
6 Storing data locally on a device for long-term use |
|
|
123 | (38) |
|
6.1 Managing numeric pad for password entry |
|
|
123 | (3) |
|
|
126 | (1) |
|
6.3 JSON objects for Thyroid app |
|
|
127 | (2) |
|
6.4 Managing JSON objects for user information |
|
|
129 | (5) |
|
6.5 Exception/error handling in JavaScript |
|
|
134 | (1) |
|
6.6 Displaying user Information |
|
|
135 | (3) |
|
6.7 Managing the Records page |
|
|
138 | (3) |
|
|
141 | (6) |
|
6.9 Displaying all the records/history |
|
|
147 | (4) |
|
|
151 | (4) |
|
|
155 | (2) |
|
6.12 Deleting all the records/history |
|
|
157 | (4) |
|
|
159 | (1) |
|
|
159 | (2) |
|
7 Graphics on HTML5 canvas |
|
|
161 | (38) |
|
7.1 Introduction to canvas drawing |
|
|
161 | (2) |
|
7.2 Frequently used methods and properties of the canvas element |
|
|
163 | (5) |
|
7.3 Adding advice and gauge meter to the Thyroid app using RGraph |
|
|
168 | (10) |
|
7.4 Drawing line graphs in the Thyroid app using RGraph |
|
|
178 | (8) |
|
7.5 Making the output of the Projectile app graphical using RGraph |
|
|
186 | (4) |
|
7.6 Creating an icon on the home screen |
|
|
190 | (2) |
|
7.7 Running an app locally without the Internet |
|
|
192 | (7) |
|
|
195 | (1) |
|
|
195 | (1) |
|
|
195 | (4) |
|
8 Using servers for sharing and storing information |
|
|
199 | (20) |
|
|
199 | (1) |
|
8.2 Designing the server-based Thyroid app |
|
|
199 | (1) |
|
8.3 Signing up to a server-based app |
|
|
200 | (3) |
|
8.4 Syncing the records between the device and the server |
|
|
203 | (5) |
|
8.5 Programming with Node.js |
|
|
208 | (1) |
|
8.6 Launching a Node.js app server |
|
|
209 | (1) |
|
8.7 Modified navigation in the server-based Thyroid app |
|
|
210 | (2) |
|
8.8 Modified user form management in server-based Thyroid app |
|
|
212 | (1) |
|
8.9 Implementing the syncing of records in the server-based Thyroid app |
|
|
213 | (6) |
|
|
217 | (1) |
|
|
217 | (2) |
|
9 Using MongoDB server for sharing and storing information |
|
|
219 | (26) |
|
9.1 Emergence of NoSQL database models |
|
|
219 | (1) |
|
9.2 Introduction to MongoDB |
|
|
220 | (4) |
|
9.3 Modeling a NoSQL database |
|
|
224 | (3) |
|
9.4 Modeling a NoSQL database for the Thyroid app |
|
|
227 | (3) |
|
9.5 Launching the MongoDB server for the Thyroid app |
|
|
230 | (3) |
|
9.6 Saving a new user on the MongoDB server for the Thyroid app |
|
|
233 | (1) |
|
9.7 Processing login with the MongoDB server for the Thyroid app |
|
|
234 | (2) |
|
9.8 Updating user data In the MongoDB server for the Thyroid app |
|
|
236 | (1) |
|
9.9 Downloading records from the MongoDB server for the Thyroid app |
|
|
237 | (2) |
|
9.10 Uploading records to the MongoDB server for the Thyroid app |
|
|
239 | (6) |
|
|
243 | (1) |
|
|
243 | (1) |
|
|
244 | (1) |
|
10 Using a relational database server for sharing and storing information |
|
|
245 | (26) |
|
10.1 Relational databases |
|
|
245 | (1) |
|
10.2 Modeling a relational database |
|
|
246 | (2) |
|
|
248 | (10) |
|
10.4 Launching the MySQL server for the Thyroid app |
|
|
258 | (2) |
|
10.5 Saving a new user on the MySQL server for the Thyroid app |
|
|
260 | (1) |
|
10.6 Processing login with the MySQL server for the Thyroid app |
|
|
261 | (2) |
|
10.7 Updating user data In the MySQL server for the Thyroid app |
|
|
263 | (2) |
|
10.8 Downloading records from the MySQL server for the Thyroid app |
|
|
265 | (1) |
|
10.9 Uploading records to the MySQL server for the Thyroid app |
|
|
266 | (5) |
|
|
269 | (1) |
|
|
269 | (1) |
|
|
270 | (1) |
|
|
271 | (20) |
|
11.1 JavaScript templating |
|
|
271 | (1) |
|
|
271 | (2) |
|
|
273 | (1) |
|
11.4 Introduction to JavaScript templating using Handlebars |
|
|
274 | (5) |
|
11.5 Iteration and arrays in Handlebars |
|
|
279 | (6) |
|
11.6 Conditional statements in Handlebars |
|
|
285 | (6) |
|
|
289 | (2) |
|
12 Maps, location, and multimedia databases |
|
|
291 | (30) |
|
|
291 | (1) |
|
12.2 Setting up the environment in the Explorador app |
|
|
291 | (2) |
|
12.3 Specifying express routes |
|
|
293 | (9) |
|
|
302 | (2) |
|
12.5 Client-side JavaScript |
|
|
304 | (17) |
|
|
319 | (2) |
|
13 Cross-platform and native app development and testing |
|
|
321 | (12) |
|
|
321 | (1) |
|
13.2 Setting up the Explorador app for Apple iOS and Android platforms |
|
|
322 | (1) |
|
|
323 | (6) |
|
13.4 Building the Android app |
|
|
329 | (4) |
|
|
331 | (1) |
|
|
331 | (2) |
Indexes |
|
333 | (16) |
Index of HTML5 Tags and Elements |
|
349 | (2) |
Index of Javascript and Other Programming Elements |
|
351 | (4) |
Index of CSS Resources |
|
355 | |