Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Save to My Library
Look up keyword or section
Like this

Table Of Contents

About iOS App Programming
At a Glance
Translate Your Initial Idea into an Implementation Plan
UIKit Provides the Core of Your App
Apps Must Behave Differently in the Foreground and Background
iCloud Affects the Design of Your Data Model and UI Layers
Apps Require Some Specific Resources
Many App Behaviors Can Be Customized
Apps Must Be Tuned for Performance
The iOS Environment Affects Many App Behaviors
How to Use This Document
See Also
Doing Your Initial Design
App Design Basics
Learning the Fundamental iOS Design Patterns and Techniques
Translating Your Initial Design into an Action Plan
Starting the App Creation Process
The Core Objects of Your App
Core App Objects
Table 2-1 The role of objects in an iOS app
The Data Model
Defining a Custom Data Model
Table 2-2 Data classes in the Foundation framework
Listing 2-1 Definition of a custom data object
Defining a Structured Data Model Using Core Data
Defining a Document-Based Data Model
Figure 2-2 Using documents to manage the content of files
The User Interface
Building an Interface Using UIKit Views
Figure 2-3 Building your interface using view objects
Building an Interface Using Views and OpenGL ES
Figure 2-4 Building your interface using OpenGL ES
The App Bundle
App States and Multitasking
Managing App State Changes
The App Launch Cycle
Figure 3-2 Launching an app into the foreground
Figure 3-3 Launching an app into the background
Figure 3-4 Handling alert-based interruptions
What to Do When an Interruption Occurs
Moving to the Background
Figure 3-5 Moving from the foreground to the background
Memory Usage for Background Apps
Returning to the Foreground
Figure 3-6 Transitioning from the background to the foreground
Processing Queued Notifications at Wakeup Time
Table 3-2 Notifications delivered to waking apps
App Termination
The Main Run Loop
Figure 3-7 Processing events in the main run loop
Table 3-3 Common types of events for iOS apps
Background Execution and Multitasking
Determining Whether Multitasking Is Available
Listing 3-2 Checking for background support in earlier versions of iOS
Executing a Finite-Length Task in the Background
Listing 3-3 Starting a background task at quit time
Scheduling the Delivery of Local Notifications
Listing 3-4 Scheduling an alarm notification
Implementing Long-Running Background Tasks
Being a Responsible Background App
Opting out of Background Execution
Concurrency and Secondary Threads
Design Considerations for iCloud Apps
iCloud Storage
Table 4-1 Differences between document and key-value storage
Configuring Your App’s iCloud Entitlements
Using iCloud Document Storage
Figure 4-1 Pushing document changes to iCloud
Determining if iCloud Document Storage is Available
Incorporating File Presenters into Your Workflow
Manipulating Files and Directories in iCloud
Choosing a Strategy to Respond to Version Conflicts
Incorporating Search into Your Infrastructure
Using iCloud in Conjunction with Databases
Using iCloud Key-Value Data Storage
Being a Responsible iCloud App
App Store Required Resources
The Information Property List File
App-Related Resources
Declaring the Required Device Capabilities
Table 5-1 Dictionary keys for theUIRequiredDeviceCapabilitieskey
Declaring Your App’s Supported Document Types
App Icons
App Launch (Default) Images
Table 5-3 Typical launch image dimensions
Providing Launch Images for Different Orientations
Table 5-4 Launch image orientation modifiers
Providing Device-Specific Launch Images
Providing Launch Images for Custom URL Schemes
The Settings Bundle
Localized Resource Files
Creating a Universal App
Updating Your Info.plist Settings
Advanced App Tricks
Implementing Your View Controllers and Views
Adding Runtime Checks for Newer Symbols
Using Runtime Checks to Create Conditional Code Paths
Updating Your Resource Files
Preserving the State of Your App’s User Interface
Launching in Landscape Mode
Installing App-Specific Data Files at First Launch
Protecting Data Using On-Disk Encryption
Tips for Developing a VoIP App
Configuring Sockets for VoIP Usage
Table 6-1 Configuring stream interfaces for VoIP usage
Installing a Keep-Alive Handler
Configuring Your App’s Audio Session
Using the Reachability Interfaces to Improve the User Experience
Communicating with Other Apps
Implementing Custom URL Schemes
Registering Custom URL Schemes
Handling URL Requests
Figure 6-3 Waking a background app to open a URL
Listing 6-1 Handling a URL request based on a custom scheme
Showing and Hiding the Keyboard
Turning Off Screen Locking
Make App Backups More Efficient
What Is Backed Up?
Performance Tuning
Files Saved During App Updates
Use Memory Efficiently
Observe Low-Memory Warnings
Reduce Your App’s Memory Footprint
Table 7-1 Tips for reducing your app’s memory footprint
Allocate Memory Wisely
Move Work off the Main Thread
Floating-Point Math Considerations
Reduce Power Consumption
Tune Your Code
Improve File Access Times
Tune Your Networking Code
Tips for Efficient Networking
Using Wi-Fi
The Airplane Mode Alert
Specialized System Behaviors
The Virtual Memory System
The Automatic Sleep Timer
The iOS Environment
Multitasking Support
The App Sandbox
Keychain Data
Document Revision History
0 of .
Results for:
No results containing your search query
P. 1
iOS App Programming Guide

iOS App Programming Guide

Ratings: (0)|Views: 1,560 |Likes:
Published by Vinayak Habbu

More info:

Published by: Vinayak Habbu on Apr 15, 2012
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





You're Reading a Free Preview
Pages 4 to 41 are not shown in this preview.
You're Reading a Free Preview
Pages 45 to 78 are not shown in this preview.
You're Reading a Free Preview
Pages 84 to 137 are not shown in this preview.

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->