Wiley
Wiley.com
Print this page Share

Professional iOS Network Programming: Connecting the Enterprise to the iPhone and iPad

ISBN: 978-1-118-36240-2
360 pages
October 2012
Professional iOS Network Programming: Connecting the Enterprise to the iPhone and iPad (1118362403) cover image
Learn to develop iPhone and iPad applications for networked enterprise environments

The iPhone and iPad have made a powerful impact on the business world. Developers creating iOS apps for the enterprise face unique challenges involving networking, system integration, security, and device management. This Wrox guide provides everything you need to know to write iOS apps that integrate with enterprise network resources, providing options for networking iOS devices to enterprise systems and to each other.

  • Offers a complete compendium of methods and techniques for networked communication between iOS applications and other platforms and devices
  • Includes instruction on incorporating synchronous and asynchronous HTTP requests, security, communication issues, and more
  • Covers payload handling, network security, GameKit and Bonjour communications, and low-level network communications

Professional iOS Network Programming focuses on the networking aspects of iOS and its relationship to remote data sources, offering a truly unique approach.

See More
INTRODUCTION xix

PART I: UNDERSTANDING IOS AND ENTERPRISE NETWORKING

CHAPTER 1: INTRODUCING IOS NETWORKING CAPABILITIES 3

Understanding the Networking Frameworks 3

iOS Networking APIs 4

NSURLConnection 5

Game Kit 5

Bonjour 5

NSStream 6

CFNetwork 6

BSD Sockets 6

Run Loops 7

Run Loop Modes 8

Summary 8

CHAPTER 2: DESIGNING YOUR SERVICE ARCHITECTURE 9

Remote Façade Pattern 10

Example Façade Services 12

Example Façade Clients 15

Service Versioning 17

Example Versioned Services 18

Example Client Using Versioned Services 19

Service Locators 20

Summary 24

PART II: HTTP REQUESTS: THE WORKHORSE OF IOS NETWORKING

CHAPTER 3: MAKING REQUESTS 27

Introducing HTTP 28

Understanding HTTP Requests and Responses 29

URL Structure 30

Request Contents 31

Response Contents 33

High-Level iOS HTTP APIs 35

Objects Common to All Request Types 35

Synchronous Requests 39

Queued Asynchronous Requests 42

Asynchronous Requests 45

Advanced HTTP Manipulation 53

Using Request Methods 53

Cookie Manipulation 54

Advanced Headers 60

Summary 63

CHAPTER 4: GENERATING AND DIGESTING PAYLOADS 65

Web Service Protocols and Styles 66

Simple Object Access Protocol (SOAP) 66

Representational State Transfer (REST) 68

Choosing an Approach 69

Payloads 70

Introducing Payload Data Formats 70

Digesting Response Payloads 73

Generating Request Payloads 86

Summary 92

CHAPTER 5: HANDLING ERRORS 93

Understanding Error Sources 93

Operating System Errors 95

HTTP Errors 101

Application Errors 102

Rules of Thumb for Handling Errors 103

Include Error Handling In the Interface Contract 103

Error Statuses Lie 104

Validate the Payload 104

Separate Errors from Normal Business Conditions 104

Always Check HTTP Status 105

Always Check NSError 105

Develop a Consistent Method for Handling Errors 105

Always Set a Timeout 105

Gracefully Handling Network Errors 105

Design Pattern Description 106

Command Dispatch Pattern Example 111

Summary 116

PART III: ADVANCED NETWORKING TECHNIQUES

CHAPTER 6: SECURING NETWORK TRAFFIC 119

Verifying Server Communication 120

Authenticating with HTTP 124

HTTP Basic, HTTP Digest, and NTLM Authentication 125

Client-Certifi cate Authentication 127

Message Integrity with Hashing and Encryption 131

Hashing 132

Message Authentication Codes 136

Encryption 139

Storing Credentials Securely on the Device 151

Summary 155

CHAPTER 7: OPTIMIZING REQUEST PERFORMANCE 157

Measuring Network Performance 158

Network Bandwidth 158

Network Latency 159

Device Power 160

Optimizing Network Operations 161

Reducing Request Bandwidth 161

Reducing Request Latency 168

Avoid Network Requests 170

Summary 173

CHAPTER 8: LOW-LEVEL NETWORKING 175

BSD Sockets 176

Configuring a Socket Server 177

Connecting as a Socket Client 178

CFNetwork 182

NSStream 186

Summary 190

CHAPTER 9: TESTING AND MANIPULATING NETWORK TRAFFIC 191

Observing Network Traffic 192

Sniffing Hardware 192

Sniffing Software 193

Manipulating Network Traffic 200

Setting Up Charles 202

HTTP Breakpoints 205

Rewrite Rules 207

Simulating Real-World Network Conditions 209

Summary 211

CHAPTER 10: USING PUSH NOTIFICATIONS 213

Scheduling Local Notifications 214

Creating Local Notifications 214

Canceling Local Notifications 218

Handling the Arrival of Local Notifications 219

Registering and Responding to Remote

Notifications 223

Configuring Remote Notifications 224

Registering for Remote Notifications 229

Remote Notification Payloads 234

Sending Remote Notifications 236

Responding to Remote Notifications 240

Understanding Notification Best Practices 243

Summary 244

PART IV: NETWORKING APP TO APP

CHAPTER 11: INTER-APP COMMUNICATION 247

URL Schemes 248

Implementing a Custom URL Scheme 248

Sensing the Presence of Other Apps 251

Advanced Communication 252

Shared Keychains 257

Enterprise SSO 257

Detecting Previous Installations 264

Summary 266

CHAPTER 12: DEVICE-TO-DEVICE COMMUNICATION WITH GAME KIT 267

Game Kit Basics 268

Peer-to-Peer Networking 271

Connecting to a Session 272

Sending Data to Peers 274

Client-Server Communication 279

Summary 280

CHAPTER 13: AD-HOC NETWORKING WITH BONJOUR 281

Zeroconf Overview 282

Addresses 282

Resolution 283

Discovery 283

Bonjour Overview 284

Publishing a Service 284

Browsing for Services 290

Resolving a Service 293

Communicating with a Service 295

Implementing Bonjour-Based Applications 299

Employee Application 301

Customer Application 309

Summary 317

INDEX 319

See More
Download TitleSizeDownload
Full Code Download 2.08 MB Click to Download
ReadMe File 544 bytes Click to Download
Chapter 2 98.69 KB Click to Download
Chapter 3 68.96 KB Click to Download
Chapter 4 311.98 KB Click to Download
Chapter 5 359.33 KB Click to Download
Chapter 6 125.49 KB Click to Download
Chapter 7 62.77 KB Click to Download
Chapter 8 98.40 KB Click to Download
Chapter 9 67.89 KB Click to Download
Chapter 10 127.20 KB Click to Download
Chapter 11 403.97 KB Click to Download
Chapter 12 102.32 KB Click to Download
Chapter 13 302.47 KB Click to Download
See More
Back to Top