Introduction |
|
1 | (4) |
|
|
1 | (2) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
Part 1: Getting Started with iOS Programming |
|
5 | (84) |
|
Chapter 1 Entering Mobile Application Development |
|
|
7 | (18) |
|
Apps for a Mobile Platform |
|
|
7 | (3) |
|
|
10 | (2) |
|
iOS App Development Essentials |
|
|
12 | (7) |
|
|
12 | (1) |
|
Application development technologies |
|
|
13 | (5) |
|
|
18 | (1) |
|
|
19 | (4) |
|
Understanding the lifecycle of an iOS app |
|
|
20 | (2) |
|
Understanding the structure of an iOS app |
|
|
22 | (1) |
|
Object-Orientation Concepts |
|
|
23 | (2) |
|
Chapter 2 Object-Oriented Design Principles |
|
|
25 | (30) |
|
Basic Object-Oriented Concepts |
|
|
25 | (13) |
|
|
26 | (10) |
|
Structural and behavioral concepts in 00 |
|
|
36 | (2) |
|
Principles of Object-Orientation |
|
|
38 | (2) |
|
|
39 | (1) |
|
|
40 | (1) |
|
Designing an Object-Oriented Application |
|
|
40 | (2) |
|
|
42 | (3) |
|
|
42 | (1) |
|
|
43 | (1) |
|
|
43 | (1) |
|
Inversion of control and software frameworks |
|
|
44 | (1) |
|
The Application Development Lifecycle |
|
|
45 | (10) |
|
Software development lifecycle processes |
|
|
46 | (1) |
|
The phases and stages of a software development lifecycle (SDLC) |
|
|
47 | (3) |
|
The guiding principles of SDLC methodologies |
|
|
50 | (1) |
|
Customizing an SDLC methodology |
|
|
51 | (4) |
|
Chapter 3 Effectively Using Objective-C |
|
|
55 | (34) |
|
Examining an Objective-C Program |
|
|
55 | (3) |
|
|
58 | (8) |
|
Declaring instance variables |
|
|
61 | (1) |
|
|
62 | (2) |
|
|
64 | (1) |
|
|
65 | (1) |
|
Using Classes, Objects, Methods, and Variables |
|
|
66 | (16) |
|
|
66 | (1) |
|
|
67 | (2) |
|
Using all the language features |
|
|
69 | (11) |
|
Using introspection and dynamic invocation |
|
|
80 | (2) |
|
|
82 | (2) |
|
|
84 | (1) |
|
|
85 | (1) |
|
Analyzing Objective-C's Object-Orientation Capabilities |
|
|
86 | (3) |
Part II: Meeting the Methods and Platforms |
|
89 | (118) |
|
Chapter 4 Patterns and Frameworks |
|
|
91 | (22) |
|
Common Patterns of 00 Design |
|
|
91 | (15) |
|
Seeing basic design patterns |
|
|
92 | (6) |
|
Understanding the Model-View-Controller |
|
|
98 | (1) |
|
Making model objects persistent |
|
|
99 | (6) |
|
|
105 | (1) |
|
Applying patterns to application design |
|
|
106 | (1) |
|
|
106 | (7) |
|
|
106 | (1) |
|
|
107 | (2) |
|
|
109 | (4) |
|
Chapter 5 Setting Up to Develop iOS Apps |
|
|
113 | (22) |
|
Becoming an iOS Developer |
|
|
113 | (15) |
|
Installing, Verifying, and Understanding the Xcode Development Environment |
|
|
119 | (1) |
|
|
119 | (2) |
|
Verifying the development environment |
|
|
121 | (6) |
|
Understanding the elements of an Xcode workspace |
|
|
127 | (1) |
|
Importing and Running the Tic-Tac-Toe Sample Program |
|
|
128 | (7) |
|
Importing Tic-Tac-Toe and running it on the simulator |
|
|
128 | (2) |
|
Deploying an App on an iOS device |
|
|
130 | (5) |
|
Chapter 6 Developing an App on iOS |
|
|
135 | (38) |
|
|
135 | (3) |
|
Understanding an App's Lifecycle |
|
|
138 | (3) |
|
Interacting with the App Through Its User Interface |
|
|
141 | (1) |
|
|
141 | (24) |
|
|
142 | (3) |
|
|
145 | (4) |
|
|
149 | (9) |
|
Accessing the Address Book |
|
|
158 | (2) |
|
Setting options for your app |
|
|
160 | (4) |
|
|
164 | (1) |
|
Using Other iOS Capabilities on a Device |
|
|
165 | (1) |
|
Visiting the App Templates in Xcode |
|
|
166 | (3) |
|
Deconstructing the iOS Framework Using OO Principles and Design Patterns |
|
|
169 | (4) |
|
Seeing object-oriented concepts and techniques in iOS |
|
|
169 | (1) |
|
|
170 | (1) |
|
Critiquing the iOS framework from the perspective of OO principles |
|
|
171 | (2) |
|
Chapter 7 Illustrating Object-Oriented iOS App Design |
|
|
173 | (34) |
|
Customizing an SDLC for iOS App Development |
|
|
173 | (2) |
|
|
175 | (2) |
|
Creating the User Interface |
|
|
177 | (3) |
|
Illustrating Object-Oriented Design |
|
|
180 | (8) |
|
Classes and responsibilities |
|
|
181 | (2) |
|
Collaborators and missing classes and responsibilities |
|
|
183 | (3) |
|
|
186 | (2) |
|
Implementing an Object-Oriented Design on iOS |
|
|
188 | (11) |
|
|
188 | (5) |
|
Creating storyboards and views |
|
|
193 | (2) |
|
|
195 | (4) |
|
Analyzing the 00 and Design Principles Used in Tic-Tac-Toe |
|
|
199 | (10) |
|
Use of design patterns in Tic-Tac-Toe |
|
|
201 | (3) |
|
|
204 | (3) |
Part III: Making Your iOS Apps Fit for Consumption |
|
207 | (120) |
|
Chapter 8 Effectively Using Xcode |
|
|
209 | (40) |
|
Xcode and IOS - A Beautiful Friendship |
|
|
210 | (27) |
|
Setting up your app's project |
|
|
211 | (3) |
|
Creating your app's screen flow |
|
|
214 | (8) |
|
|
222 | (5) |
|
Managing and maintaining your app's components |
|
|
227 | (10) |
|
Fine-Tuning Your App in Xcode |
|
|
237 | (10) |
|
|
237 | (2) |
|
Digging into the Simulator |
|
|
239 | (1) |
|
Exploring your iOS device from Xcode |
|
|
240 | (3) |
|
|
243 | (1) |
|
Using instruments to collect data |
|
|
244 | (3) |
|
|
247 | (2) |
|
Chapter 9 Developing Your App's User Interface |
|
|
249 | (28) |
|
Understanding How User Interfaces Work in iOS |
|
|
249 | (4) |
|
Comprehending event-driven programming in iOS |
|
|
250 | (1) |
|
Understanding the Application and the Application Delegate objects in UI processing |
|
|
250 | (3) |
|
Revisiting the Model-View-Controller Design Pattern |
|
|
253 | (3) |
|
Understanding the UI Components Available in iOS |
|
|
256 | (21) |
|
Interacting with buttons, text fields, and labels |
|
|
258 | (4) |
|
|
262 | (2) |
|
Selecting items using pickers |
|
|
264 | (2) |
|
Showingcolumnar data using a Table view |
|
|
266 | (2) |
|
Going through the other views in the iOS framework |
|
|
268 | (1) |
|
Navigating through a stack of screens using a Navigation controller |
|
|
269 | (3) |
|
Drawing using 2-D Graphics |
|
|
272 | (5) |
|
Chapter 10 Making Applications Fast and Responsive |
|
|
277 | (16) |
|
Becoming Familiar with Nonfunctional Requirements |
|
|
278 | (1) |
|
Designing Your App at Multiple Levels |
|
|
279 | (1) |
|
Optimizing an Application's Performance |
|
|
280 | (2) |
|
Using Instrumentation for Code Optimization |
|
|
282 | (5) |
|
Ensuring Responsiveness in Your Apps |
|
|
287 | (4) |
|
Ensuring responsiveness by using threading |
|
|
288 | (3) |
|
Other Performance Considerations for iOS Apps |
|
|
291 | (2) |
|
Chapter 11 Making Your App Reliable and Secure |
|
|
293 | (34) |
|
Making Your App Reliable Through Testing |
|
|
293 | (11) |
|
Understanding the fundamentals and levels of testing |
|
|
294 | (1) |
|
Understanding the levels of testing |
|
|
294 | (3) |
|
|
297 | (7) |
|
Adapting to Changes in the App's Environment |
|
|
304 | (6) |
|
Implementing reliability while navigating your app's lifecycle |
|
|
304 | (5) |
|
Dealing with missing or transient capabilities |
|
|
309 | (1) |
|
Considering Security in an iOS App |
|
|
310 | (19) |
|
Recognizing the importance of security |
|
|
310 | (2) |
|
Looking at security holistically |
|
|
312 | (2) |
|
Understanding the attack surface and developing a threat model for an app |
|
|
314 | (2) |
|
Implementing authentication and access control |
|
|
316 | (3) |
|
Protecting core data files with encryption |
|
|
319 | (4) |
|
Adding auditing to your application |
|
|
323 | (4) |
Part Ilk Connecting Your Apps |
|
327 | (72) |
|
Chapter 12 Channeling the World Into Your Device |
|
|
329 | (16) |
|
|
329 | (5) |
|
Launching a browser from your app |
|
|
330 | (2) |
|
Embedding a browser in your iOS application using WebView |
|
|
332 | (2) |
|
Using Maps and Providing Location-Based Services |
|
|
334 | (9) |
|
Installing the additional development components needed for maps |
|
|
336 | (1) |
|
Displaying a map using a MapView |
|
|
337 | (1) |
|
Using geocoding to navigate the map |
|
|
338 | (1) |
|
Wherever you go, there you are |
|
|
339 | (4) |
|
Design Principles for Web- and Location-Based Apps |
|
|
343 | (2) |
|
Being nice about using remote services |
|
|
343 | (1) |
|
Using threading to deal with slow network connections |
|
|
343 | (2) |
|
Chapter 13 Harnessing iOS Device Capabilities |
|
|
345 | (30) |
|
Integrating E-Mail, SMS, and the Phone into Your App |
|
|
346 | (6) |
|
Sending e-mail from your app |
|
|
346 | (3) |
|
Sending an SMS from your app |
|
|
349 | (2) |
|
Placing telephone calls from your app |
|
|
351 | (1) |
|
Playing and Capturing Audio, Video, and Images |
|
|
352 | (9) |
|
Playing and recording video |
|
|
353 | (3) |
|
Playing and recording audio |
|
|
356 | (2) |
|
|
358 | (3) |
|
Seeing the Capabilities Available on Your Device |
|
|
361 | (3) |
|
Testing for network availability |
|
|
361 | (1) |
|
Testing for sound and camera capabilities |
|
|
362 | (2) |
|
Declaring an app's needs in the .plist file |
|
|
364 | (1) |
|
Bringing in the Outside World with Sensors |
|
|
364 | (6) |
|
|
365 | (2) |
|
Sensing the accelerometer, gyroscope, and magnetometer |
|
|
367 | (3) |
|
Examining OO and Other Design Principles in this Chapter |
|
|
370 | (5) |
|
Seeing uses of loose coupling |
|
|
371 | (1) |
|
Using delegation for customized processing |
|
|
371 | (1) |
|
|
372 | (1) |
|
Design tradeoffs in Tic-Tac-Toe |
|
|
373 | (2) |
|
Chapter 14 Publishing to the App Store |
|
|
375 | (24) |
|
Creating Your Developer Account |
|
|
375 | (3) |
|
Distributing Applications |
|
|
378 | (5) |
|
Providing basic application details |
|
|
378 | (3) |
|
|
381 | (1) |
|
Internationalization and localization |
|
|
382 | (1) |
|
|
383 | (7) |
|
|
383 | (5) |
|
|
388 | (2) |
|
|
390 | (6) |
|
|
390 | (4) |
|
Uploading to the App Store |
|
|
394 | (2) |
|
|
396 | (5) |
|
|
396 | (1) |
|
Sales data and customer feedback |
|
|
397 | (1) |
|
|
398 | (1) |
Part V: The Part of Tens |
|
399 | (24) |
|
Chapter 15 Ten Resources for Object-Oriented-Development |
|
|
401 | (12) |
|
Design Patterns: Elements of Reusable Object-Oriented Software |
|
|
401 | (1) |
|
|
402 | (1) |
|
Object-Oriented Programming with Objective-C |
|
|
403 | (1) |
|
The Journal of Object Technology |
|
|
404 | (1) |
|
Massively Open Online Courses (MOOCs) |
|
|
405 | (1) |
|
|
406 | (1) |
|
Craig Larman's Use Case Primer |
|
|
407 | (1) |
|
|
408 | (1) |
|
|
409 | (1) |
|
Rajiv's YouTube Video Series |
|
|
410 | (3) |
|
Chapter 16 Ten Developer Resources for iOS |
|
|
413 | (10) |
|
|
413 | (1) |
|
Apple Worldwide Developers Conference |
|
|
414 | (1) |
|
|
415 | (1) |
|
|
416 | (1) |
|
|
417 | (1) |
|
|
418 | (1) |
|
|
419 | (1) |
|
|
420 | (1) |
|
|
420 | (1) |
|
|
421 | (2) |
Index |
|
423 | |