Introduction |
|
xxi | |
|
Chapter 1 Introducing Cloud-Based Mobile Apps |
|
|
1 | (30) |
|
How to Build Mobile Apps in the Cloud |
|
|
2 | (2) |
|
Using Your Existing Skill Set |
|
|
2 | (1) |
|
Determining What Tools You Need |
|
|
3 | (1) |
|
|
4 | (1) |
|
Two Big Ideas About the App Industry |
|
|
4 | (3) |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
7 | (22) |
|
Using JavaScript Functions |
|
|
7 | (13) |
|
The WebKit Browser Engine |
|
|
20 | (1) |
|
|
21 | (4) |
|
Introducing the nginx Web Server |
|
|
25 | (4) |
|
|
29 | (2) |
|
Chapter 2 Mobilizing Your App |
|
|
31 | (40) |
|
Building a Touch-Sensitive Drawing App |
|
|
32 | (20) |
|
How to Draw on the Screen |
|
|
32 | (7) |
|
Drawing in Response to Touch Events |
|
|
39 | (7) |
|
Applying the DRY Principle to Your Code |
|
|
46 | (6) |
|
|
52 | (15) |
|
How Geography Affects Amazon AWS |
|
|
54 | (1) |
|
Using the Elastic Compute Cloud |
|
|
54 | (7) |
|
Deploying Your Mobile Web App |
|
|
61 | (4) |
|
Deploying Your Mobile App to the Instance |
|
|
65 | (2) |
|
|
67 | (4) |
|
Chapter 3 Building Mobile Web Apps |
|
|
71 | (40) |
|
What You Can Do with Mobile Web Apps |
|
|
71 | (7) |
|
|
72 | (2) |
|
Responding to Device Orientation |
|
|
74 | (2) |
|
|
76 | (1) |
|
Installing Mobile Web Apps on iPhone Devices |
|
|
76 | (1) |
|
Installing Mobile Web Apps on Android Devices |
|
|
77 | (1) |
|
Introducing jQuery and jQuery Mobile |
|
|
78 | (13) |
|
|
78 | (5) |
|
The jQuery Mobile Library |
|
|
83 | (8) |
|
Building a To-Do List App |
|
|
91 | (17) |
|
|
108 | (3) |
|
Chapter 4 Enhancing Your App |
|
|
111 | (24) |
|
|
112 | (3) |
|
|
115 | (12) |
|
|
116 | (2) |
|
|
118 | (9) |
|
Embedding an Interactive Map |
|
|
127 | (4) |
|
|
127 | (4) |
|
Providing an Application Icon and a Startup Screen |
|
|
131 | (1) |
|
|
132 | (3) |
|
Chapter 5 Building Apps In The Cloud |
|
|
135 | (42) |
|
|
136 | (14) |
|
|
136 | (2) |
|
|
138 | (3) |
|
Using the Node Package Manager |
|
|
141 | (3) |
|
Introducing the MongoDB Database |
|
|
144 | (6) |
|
Cloud Analytics for Your To-Do List App |
|
|
150 | (24) |
|
|
150 | (2) |
|
|
152 | (8) |
|
Collecting the Usage Data |
|
|
160 | (4) |
|
Submitting the Usage Data |
|
|
164 | (3) |
|
|
167 | (7) |
|
|
174 | (3) |
|
|
177 | (34) |
|
The Classic Cloud Architecture |
|
|
177 | (3) |
|
|
178 | (1) |
|
|
179 | (1) |
|
Introducing Amazon SimpleDB |
|
|
180 | (2) |
|
The SimpleDB Approach to Cloud Storage |
|
|
180 | (1) |
|
|
181 | (1) |
|
Putting the To-Do List App in the Cloud |
|
|
182 | (27) |
|
Introducing the simpledb Library |
|
|
182 | (6) |
|
Building a Command-Line Client |
|
|
188 | (8) |
|
|
196 | (2) |
|
|
198 | (5) |
|
Synchronizing with the Cloud |
|
|
203 | (6) |
|
|
209 | (2) |
|
Chapter 7 Enhancing The User Experience |
|
|
211 | (24) |
|
Creating a Classic Tab Bar Interface |
|
|
211 | (11) |
|
Implementing the jQuery Mobile Solution |
|
|
212 | (4) |
|
Using the iScroll Solution |
|
|
216 | (6) |
|
Enabling Mobile Audio and Video |
|
|
222 | (8) |
|
Playing Audio in Your App |
|
|
222 | (4) |
|
Playing Video in Your App |
|
|
226 | (4) |
|
Launching Apps from Your App |
|
|
230 | (2) |
|
Launching a Web Browser from Your App |
|
|
230 | (1) |
|
Launching a Phone from Your App |
|
|
230 | (1) |
|
Launching SMS from Your App |
|
|
230 | (1) |
|
Launching Mail from Your App |
|
|
231 | (1) |
|
Launching Maps from Your App |
|
|
231 | (1) |
|
Launching YouTube from Your App |
|
|
231 | (1) |
|
|
232 | (3) |
|
Chapter 8 Working With The Cloud |
|
|
235 | (38) |
|
Storing Content in Amazon S3 |
|
|
236 | (11) |
|
The Architecture of Amazon S3 |
|
|
236 | (2) |
|
|
238 | (9) |
|
Signing In with the Cloud |
|
|
247 | (8) |
|
Building Large-Scale Apps |
|
|
255 | (16) |
|
Getting the Big Picture Right |
|
|
256 | (2) |
|
|
258 | (13) |
|
|
271 | (2) |
|
Chapter 9 Creating Hybrid Apps That Run Natively |
|
|
273 | (42) |
|
|
274 | (1) |
|
|
274 | (1) |
|
|
275 | (19) |
|
|
275 | (1) |
|
Understanding Code-Signing |
|
|
276 | (7) |
|
|
283 | (5) |
|
|
288 | (6) |
|
Lifestream, a Photo-Blogging App |
|
|
294 | (16) |
|
|
295 | (11) |
|
Storing Pictures on Amazon S3 |
|
|
306 | (4) |
|
|
310 | (5) |
|
Chapter 10 Building A Photo-Blogging App |
|
|
315 | (56) |
|
The Architecture of Lifestream |
|
|
316 | (1) |
|
|
317 | (28) |
|
|
317 | (16) |
|
|
333 | (3) |
|
Uploading and Posting Pictures |
|
|
336 | (9) |
|
Completing the Lifestream App |
|
|
345 | (23) |
|
|
346 | (11) |
|
Integrating Social Network Identity |
|
|
357 | (11) |
|
|
368 | (3) |
|
Chapter 11 Working With Cloud Development Services |
|
|
371 | (16) |
|
Getting to Know the Mobile App Development Platforms |
|
|
372 | (1) |
|
Using the FeedHenry Platform |
|
|
373 | (4) |
|
|
374 | (1) |
|
The FeedHenry Development Environment |
|
|
375 | (1) |
|
Deciding to Use FeedHenry |
|
|
376 | (1) |
|
Using the Appcelerator Platform |
|
|
377 | (4) |
|
|
378 | (1) |
|
The Appcelerator Development Environment |
|
|
379 | (1) |
|
Deciding to Use Appcelerator |
|
|
380 | (1) |
|
Using the appMobi Platform |
|
|
381 | (3) |
|
|
382 | (1) |
|
The appMobi Development Environment |
|
|
383 | (1) |
|
|
384 | (1) |
|
|
384 | (3) |
|
|
387 | (48) |
|
|
388 | (7) |
|
Working with the Twitter API Usage Limits |
|
|
390 | (1) |
|
Using the Entities that the Twitter API Exposes |
|
|
390 | (1) |
|
|
391 | (4) |
|
An App for Direct Messages |
|
|
395 | (36) |
|
|
395 | (4) |
|
Getting the Hygiene Factors Right |
|
|
399 | (5) |
|
|
404 | (9) |
|
|
413 | (8) |
|
|
421 | (4) |
|
Event Consumers and Producers |
|
|
425 | (6) |
|
|
431 | (4) |
|
|
435 | (20) |
|
What You Need to Publish Your App |
|
|
436 | (5) |
|
|
436 | (2) |
|
|
438 | (1) |
|
Screenshots and Orientations |
|
|
439 | (1) |
|
|
440 | (1) |
|
Working with the App Stores |
|
|
440 | (1) |
|
Building Your App for Release |
|
|
441 | (11) |
|
|
452 | (3) |
|
Chapter 14 Selling Your App |
|
|
455 | (16) |
|
Determining a Marketing Strategy |
|
|
456 | (6) |
|
|
457 | (1) |
|
Using Apps to Promote Your Business |
|
|
458 | (2) |
|
|
460 | (2) |
|
Choosing Tactics for Promoting Your App |
|
|
462 | (6) |
|
|
463 | (2) |
|
|
465 | (1) |
|
|
466 | (2) |
|
|
468 | (3) |
Appendix: Exercise Solutions |
|
471 | (34) |
Index |
|
505 | |