Search and Find
Service
More of the content
More iPhone Cool Projects - Cool Developers Reveal the Details of their Cooler Apps
Title Page
1
Copyright Page
2
Contents at a Glance
4
Table of Contents
5
Preface
10
Acknowlegments
11
Introduction
12
Who This Book Is For
12
What’s in the Book
13
Danton Chin
14
Chapter 1 Using Concurrency to Improve the Responsiveness of iPhoneand iPad Applications
16
Prepare for Concurrency
16
Non-Responsive User Interfaces
19
Building the Interestingness User Interface
20
Adding A JSON Parsing Framework to the InterestingnessApp
23
Composing a RESTful Request for a List of Interestingness Images
23
Using the RESTful Request and the JSON Parser to Parse the Response
25
Implementing the UITableViewDataSource Protocol Methods to Display the Results
27
Concurrency Landscape
29
Considerations When Using Concurrent Solutions
30
Concurrency with NSThread and NSObject
32
Concurrency with Operation Objects
37
NSOperationQueue
38
NSOperation and NSInvocationOperation
39
NSInvocationOperation—Quick and Easy
40
Subclassing NSOperation
40
Building HelloOperationQueues—a Toy Application
41
Building the User Interface for HelloOperationQueues
43
Creating Work Units by Subclassing NSOperation
45
Implementing HelloOperationQueues
46
Changing the Interestingness App to Use NSOperationQueues
50
Implementing the NSInvocationOperation to Fetch the List of interestingness images
52
Implementing FetchImageOperation a Subclass of NSOperation
53
Implementing the getImageForURL: and storeImageForURL:Methods
55
Concurrency with Operation Objects and Blocks
58
Blocks
59
Adding the PLBlocks Framework
61
Changing the Interestingness Application to Use NSOperationQueues and Blocks
63
Converting the Interestingness App to Use an Official Version of Blocks and NSBlockOperation from Apple
66
Summary
66
Resources
67
Apple and Apple-related News
67
Apple Documentation
67
Blocks and Grand Central Dispatch
68
General
69
JSON
69
POSIX Threads
69
Claus Höfele
70
Chapter 2 Your Own Content Pipeline: Importing 3D Art Assets into Your iPhoneGame
72
Starting an iPhone Game
72
Why Write Your Own Tools?
73
Creating a Flexible Content Pipeline
74
The Tools Problem
74
Data Exchange vs. In-Game File Formats
76
Outline of the Example Code
77
Exporting 3D Models
78
Reading FBX files
79
Traversing the Scene Contents
82
Distinguishing between Different Types of Scene Nodes
83
OpenGL Triangle Data
84
Converting FBX Models into Triangle Data
86
Converting Triangle Data into an In-Game Format
89
Handling Textures
92
Image Compression vs. Texture Compression
92
Imagination’s PVRTC Format
93
Reading PNG Images
95
Converting Images into the PVRTC Format
97
Rendering the Converted Data on the iPhone
99
Running the Converter Tool
99
Creating the iPhone Project
99
Summary
100
Ben Kazez
102
Chapter 3 How Flight Track Uses External Data Providers to Power This Best-SellingTravel App
104
Choosing a Data Source
105
API Design
106
Data Coverage and Accuracy
107
Economics
108
Attribution
108
Subscription
108
Transactional
108
Revenue Share
109
Trials
109
Source-Driven User Interface Design
109
Challenges
110
Techniques from FlightTrack
111
Design Patterns for Data Source Consumption
112
Direct-Client Consumption
112
Server-Intermediary Consumption
113
Data-Driven Cocoa App Architecture
114
Data Model Design
114
Connecting Data to UI
115
Delegates
115
Notifications
116
Setter Propagation
117
Choosing an Approach
117
Release!
118
FlightTrack Today
118
Saul Mora
120
Chapter 4 Write Better Code and Save Time with Unit Testing
122
Mock Objects
133
Testing Your Core Data Models
140
Summary
147
Leon Palm
148
Chapter 5 Fun with Computer Vision:Face Recognition with OpenCV on the iPhone
150
What Is Computer Vision?
153
Why Do Computer Vision on an iPhone?
154
Your Project: Creating a Face Detector
155
Setting Up OpenCV
155
Setting Up XCode
158
Adding Image Conversion Functions
160
Creating a Simple GUI
162
Loading Images from the Photo Library
164
Loading the Haar Cascades
165
Performing Face Detection
167
Bonus
169
Performance Tweaking
170
Going Further
172
Summary
173
Scott Penberthy
174
Chapter 6 How to Use OpenGL Fonts without Losing Your Mind
176
History
177
Terminology
178
Pragmatic Fontery
180
fCookie
180
Creating a Font’s Texture Atlas
181
Texture Mapping
184
Opening Your App
186
The Fontery Classes
186
APGlyph
187
APChar
188
APText
190
Putting It All Together
192
Setting Up the Display
194
Creating Your Fortune
195
Displaying the Fortune
197
Summary
200
Ben Britten Smith
201
Chapter 7 Game Development with Unity
203
What Is Unity?
204
Why Use Unity?
205
Exploring the Unity Interface
207
The Scene View
208
The Game View
209
The Project View
210
The Hierarchy View
210
The Inspector View
210
How the Pipeline Flows
210
The Transform: Everybody Has One
211
Meshes, Renderers, and Materials
212
Importing Assets
216
Custom Scripting
217
Playing Your Game
220
Coroutines Not Updates
221
The Game View
222
Adding Lights
225
Using the iPhone as a Game Pad
226
Your Game
227
Adding a Base to Work From
228
The Main Character
230
Inputs and Colliders
236
Your First Design Iteration
240
Adding More Touchable Objects
242
Prefabs
243
Animations
244
Animation Import Settings
245
Interacting with Something Besides the Floor
249
User Interface
252
Multiple Cameras
253
3D Objects As GUI Items
255
Building for Your Device
259
Summary
260
Chuck Smith
261
Chapter 8 Cocos2d for iPhone and iPad
It Is Easier than YouThink263
Origins of Cocos2d
263
Why Use Cocos2d?
264
Getting Started with Cocos2d
264
Installing Cocos2d
266
Configuring Sample Code
266
Installing the XCode Project Templates
267
Starting a New Project
268
Introduction to Video Poker
269
Making a Scene
270
Creating a Game Menu
272
Game Logic
273
Card
274
Deck
276
SimpleHand
278
I Like the Sprites in You
282
Load and Display a Sprite
282
Manipulating Sprites
283
Spawns
283
Sequences
284
Putting It All together
284
Events: Making It Interactive
287
Detecting Sprite Taps
288
Combining Many Actions Together
290
Switching a Sprite Image
291
Adding Sound
292
Supporting the iPad
293
Further Exploring cocos2d
298
David Smith
299
Chapter 9 Creating an Audio-Centric App for the iPhone with AVAudioPlayer
301
Design
302
Designing for Your Target User
302
Our Design Process
303
Home Screen
303
Book Selection Screens
304
Book Information Screen
304
Player Screen
305
Implementation
307
Example Project
308
Getting Started
308
Setting Up the UI
310
Coding the Audio Player
314
Connecting the Play/Pause Button
316
Connecting the Skip Controls
317
Providing Player State in the UI
317
Understanding Audio Sessions
318
Summary
319
Joost van de Wijgerd and Arne de Vries
320
Chapter 10 Implementing PushNotifications at eBuddy
322
Introduction to eBuddy
322
The eBuddy Messenger
323
The eBuddy iPhone Application
323
Apple Push Notification Service
324
The Communication Flow
325
The Client Implementation
325
The eBuddy Push Implementation
328
Client / Server Protocol
328
Server to APNS
329
Fitting the Parts Together
333
Changes along the Way
334
Introducing eBuddy Pro
334
Extending the Beta Program
335
Summary
336
Index
337
All prices incl. VAT