| About the Authors |
|
xv | |
| About the Technical Reviewer |
|
xvii | |
| Acknowledgments |
|
xix | |
| Introduction |
|
xxi | |
|
Part I Basic App Development Using Swift Core Concepts |
|
|
1 | (202) |
|
Chapter 1 Xcode Introduction |
|
|
3 | (8) |
|
|
|
3 | (2) |
|
Installation and System Requirements |
|
|
5 | (1) |
|
|
|
6 | (3) |
|
|
|
9 | (2) |
|
Chapter 2 CloudKit Overview |
|
|
11 | (16) |
|
|
|
11 | (2) |
|
|
|
13 | (5) |
|
Exploring CloudKit Dashboard |
|
|
18 | (7) |
|
Accessing the iCIoud Dashboard |
|
|
19 | (1) |
|
Understanding the Dashboard |
|
|
19 | (2) |
|
Creating Book Tracker Table (Table, type, Indexes) |
|
|
21 | (4) |
|
|
|
25 | (2) |
|
Chapter 3 Core Swift Concepts |
|
|
27 | (44) |
|
|
|
27 | (1) |
|
|
|
27 | (1) |
|
|
|
28 | (1) |
|
Classes, Structures, and Objects |
|
|
28 | (17) |
|
|
|
30 | (2) |
|
|
|
32 | (2) |
|
|
|
34 | (2) |
|
Beautifying Strings Using NSAttributedString |
|
|
36 | (1) |
|
|
|
37 | (2) |
|
|
|
39 | (3) |
|
|
|
42 | (3) |
|
|
|
45 | (24) |
|
|
|
45 | (1) |
|
|
|
46 | (1) |
|
|
|
47 | (1) |
|
|
|
48 | (1) |
|
|
|
49 | (1) |
|
|
|
49 | (4) |
|
|
|
53 | (3) |
|
|
|
56 | (4) |
|
|
|
60 | (2) |
|
|
|
62 | (7) |
|
|
|
69 | (2) |
|
Chapter 4 Book Tracker Basic App Building |
|
|
71 | (16) |
|
Setting Up the Tab View Controller |
|
|
71 | (5) |
|
Creating a Tab Application |
|
|
76 | (9) |
|
|
|
85 | (2) |
|
Chapter 5 Adding Book Screen |
|
|
87 | (50) |
|
|
|
88 | (4) |
|
Assigning the Add View Controller File in Main.storyboard |
|
|
92 | (1) |
|
|
|
93 | (4) |
|
Defining the Ul Objects for the Add Screen |
|
|
97 | (17) |
|
|
|
114 | (1) |
|
Saving the Book Record in iCIoud |
|
|
115 | (21) |
|
Data Validation Is an Important Step |
|
|
115 | (8) |
|
Create a Database Function File |
|
|
123 | (1) |
|
Preparation Before Saving the Book |
|
|
123 | (1) |
|
Function to Save Book Record |
|
|
124 | (4) |
|
Setting Value Before Calling saveBook |
|
|
128 | (3) |
|
|
|
131 | (3) |
|
|
|
134 | (2) |
|
|
|
136 | (1) |
|
Chapter 6 Displaying the Book Records |
|
|
137 | (28) |
|
Setting Up Display View Controller |
|
|
137 | (4) |
|
Assigning the Display View Controller File in Main.storyboard |
|
|
141 | (1) |
|
|
|
142 | (5) |
|
|
|
147 | (2) |
|
|
|
149 | (9) |
|
Step 1 Define the Table Object |
|
|
151 | (1) |
|
Step 2 Extending the Table Delegate and Table Data Source |
|
|
152 | (1) |
|
Step 3 Setting the Table Delegate and Table Cell |
|
|
152 | (2) |
|
|
|
154 | (1) |
|
Step 5 Implementing number Of Rows In Section |
|
|
155 | (1) |
|
Step 6 Implementing the cell For RowAt |
|
|
156 | (1) |
|
|
|
157 | (1) |
|
|
|
158 | (4) |
|
|
|
162 | (2) |
|
|
|
164 | (1) |
|
Chapter 7 Deleting a Table Record |
|
|
165 | (10) |
|
|
|
165 | (4) |
|
Deleting book from CloudKit Database |
|
|
169 | (5) |
|
|
|
174 | (1) |
|
Chapter 8 Searching Data Screen |
|
|
175 | (1) |
|
Create the Search View Controller |
|
|
175 | (1) |
|
|
|
175 | (6) |
|
Query for All Records to Enable Search |
|
|
181 | (5) |
|
Text Field Events, Operations, and Display |
|
|
186 | (5) |
|
|
|
191 | (1) |
|
|
|
192 | (4) |
|
|
|
196 | (3) |
|
Chapter 9 App Development Part 2 |
|
|
|
|
|
199 | (1) |
|
|
|
199 | (1) |
|
|
|
200 | (2) |
|
|
|
202 | (1) |
|
|
|
203 | (292) |
|
Chapter 10 Redesigning the Display Screen |
|
|
205 | (52) |
|
Redesigning the Ul of the Display Book Screen |
|
|
207 | (42) |
|
|
|
207 | (1) |
|
Defining Ul Objects for the Top Views |
|
|
207 | (7) |
|
Lifecycle Method and Initial Setup |
|
|
214 | (9) |
|
|
|
223 | (8) |
|
|
|
231 | (12) |
|
|
|
243 | (6) |
|
|
|
249 | (7) |
|
Define the Delegate Protocol |
|
|
250 | (1) |
|
Implementing the Delegate |
|
|
251 | (3) |
|
|
|
254 | (2) |
|
|
|
256 | (1) |
|
|
|
257 | (44) |
|
Creation of View Controller and Linking It to the Tab Bar |
|
|
259 | (41) |
|
|
|
260 | (1) |
|
|
|
260 | (1) |
|
|
|
261 | (5) |
|
Screen Load Event and Initial Functions |
|
|
266 | (12) |
|
Displaying the Genre and Status Table |
|
|
278 | (7) |
|
|
|
285 | (2) |
|
|
|
287 | (7) |
|
Saving Book Record to iCIoud |
|
|
294 | (6) |
|
|
|
300 | (1) |
|
|
|
300 | (1) |
|
Chapter 12 Book Details View Controller |
|
|
301 | (44) |
|
|
|
301 | (10) |
|
Create the View Controller |
|
|
301 | (1) |
|
|
|
302 | (1) |
|
|
|
302 | (2) |
|
|
|
304 | (1) |
|
|
|
304 | (3) |
|
|
|
307 | (4) |
|
|
|
311 | (22) |
|
|
|
312 | (1) |
|
|
|
313 | (3) |
|
|
|
316 | (9) |
|
|
|
325 | (1) |
|
|
|
326 | (2) |
|
|
|
328 | (5) |
|
Displaying the Book Details |
|
|
333 | (10) |
|
|
|
333 | (1) |
|
|
|
333 | (1) |
|
|
|
334 | (2) |
|
|
|
336 | (1) |
|
|
|
337 | (1) |
|
|
|
338 | (1) |
|
|
|
338 | (4) |
|
|
|
342 | (1) |
|
|
|
343 | (2) |
|
Chapter 13 Sharing Book with Other Users |
|
|
345 | (14) |
|
|
|
347 | (1) |
|
|
|
348 | (1) |
|
|
|
349 | (7) |
|
Cloud Sharing Call Back Function |
|
|
356 | (1) |
|
|
|
357 | (2) |
|
|
|
359 | (10) |
|
Calling the Edit View Controller |
|
|
359 | (1) |
|
|
|
360 | (7) |
|
|
|
361 | (1) |
|
|
|
361 | (2) |
|
|
|
363 | (1) |
|
|
|
364 | (1) |
|
Update Book Database Functions |
|
|
365 | (2) |
|
|
|
367 | (2) |
|
|
|
369 | (6) |
|
Delete Block Button Action |
|
|
370 | (1) |
|
Custom Delete Book Function |
|
|
371 | (1) |
|
Delete Book Database Function |
|
|
372 | (2) |
|
|
|
374 | (1) |
|
|
|
375 | (38) |
|
Marking Book as FavoriteBook Notes Touch Up Inside Event |
|
|
376 | (1) |
|
Book Notes View Controller |
|
|
377 | (1) |
|
|
|
378 | (1) |
|
|
|
378 | (2) |
|
|
|
380 | (3) |
|
|
|
383 | (3) |
|
Custom Table View Cell for Book Notes |
|
|
386 | (2) |
|
|
|
388 | (1) |
|
|
|
389 | (5) |
|
Table View Trailing Swipe Control |
|
|
394 | (5) |
|
|
|
399 | (1) |
|
|
|
400 | (6) |
|
|
|
402 | (2) |
|
Add Notes Navigation Bar Function |
|
|
404 | (1) |
|
|
|
405 | (1) |
|
|
|
406 | (4) |
|
Database Save Book Method |
|
|
408 | (2) |
|
|
|
410 | (1) |
|
|
|
411 | (2) |
|
|
|
413 | (18) |
|
|
|
415 | (1) |
|
|
|
415 | (3) |
|
|
|
418 | (1) |
|
|
|
419 | (5) |
|
|
|
424 | (1) |
|
|
|
425 | (3) |
|
Update Database with Reminder Date |
|
|
426 | (2) |
|
|
|
428 | (1) |
|
|
|
429 | (2) |
|
|
|
431 | (10) |
|
|
|
432 | (3) |
|
Database Functions Update Favorite Status |
|
|
435 | (3) |
|
|
|
438 | (2) |
|
|
|
440 | (1) |
|
Chapter 19 Shared Books Tab |
|
|
441 | (14) |
|
Accept the Share Record: Scene Delegate |
|
|
441 | (3) |
|
|
|
444 | (5) |
|
Shared Book Database Function |
|
|
449 | (1) |
|
|
|
449 | (2) |
|
|
|
451 | (3) |
|
|
|
454 | (1) |
|
|
|
455 | (22) |
|
Create the View Controller |
|
|
456 | (1) |
|
|
|
457 | (1) |
|
|
|
458 | (2) |
|
|
|
460 | (7) |
|
|
|
460 | (1) |
|
|
|
461 | (1) |
|
Database Function for Book Query |
|
|
461 | (2) |
|
|
|
463 | (3) |
|
|
|
466 | (1) |
|
|
|
467 | (5) |
|
|
|
467 | (1) |
|
|
|
467 | (3) |
|
|
|
470 | (1) |
|
Pressing the Return Key on Keyboard |
|
|
471 | (1) |
|
|
|
472 | (1) |
|
|
|
472 | (1) |
|
|
|
473 | (3) |
|
|
|
476 | (1) |
|
Chapter 21 Packaging and Releasing |
|
|
477 | (18) |
|
Setting Up the Application Logo |
|
|
477 | (1) |
|
Build the Archive and Publish |
|
|
478 | (8) |
|
Set Up Test Flight Account |
|
|
479 | (3) |
|
|
|
482 | (1) |
|
|
|
482 | (4) |
|
Setting Up the App in App Store |
|
|
486 | (1) |
|
Promote Development Database to Production Database |
|
|
487 | (3) |
|
Invite Test Users in Test Flight |
|
|
490 | (3) |
|
|
|
492 | (1) |
|
|
|
493 | (2) |
| Index |
|
495 | |