Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010305811 | QA76.774.I67 C69 2012 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
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 communicationsProfessional iOS Network Programming focuses on the networking aspects of iOS and its relationship to remote data sources, offering a truly unique approach.
Author Notes
Jack Cox is a Director at CapTech Ventures with broad experience designing complex systems, managing project teams, and collaborating with business executives to develop innovative applications.
Nathan Jones has experience in enterprise-wide system integration and mobility including strategy definition, application development, and post-development release management.
John Szumski is an enterprise software developer with experience ranging from middleware web services to mobile development on all major platforms.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
Table of Contents
Introduction | p. xix |
Part I Understanding IOS and Enterprise Networking | |
Chapter 1 Introducing IOS Networking Capabilities | p. 3 |
Understanding the Networking Frameworks | p. 3 |
iOS Networking APIs | p. 4 |
NSURL Connection | p. 5 |
Game Kit | p. 5 |
Bonjour | p. 5 |
NSStream | p. 6 |
CFNetwork | p. 6 |
BSD Sockets | p. 6 |
Run Loops | p. 7 |
Run Loop Modes | p. 8 |
Summary | p. 8 |
Chapter 2 Designing Your Service Architecture | p. 9 |
Remote Façade Pattern | p. 10 |
Example Façade Services | p. 12 |
Example Façade Clients | p. 15 |
Service Versioning | p. 17 |
Example Versioned Services | p. 18 |
Example Client Using Versioned Services | p. 19 |
Service Locators | p. 20 |
Summary | p. 24 |
Part II HTTP Requests: The Workhorse of IOS Networking | |
Chapter 3 Making Requests | p. 27 |
Introducing HTTP | p. 28 |
Understanding HTTP Requests and Responses | p. 29 |
URL Structure | p. 30 |
Request Contents | p. 31 |
Response Contents | p. 33 |
High-Level iOS HTTP APIs | p. 35 |
Objects Common to All Request Types | p. 35 |
Synchronous Requests | p. 39 |
Queued Asynchronous Requests | p. 42 |
Asynchronous Requests | p. 45 |
Advanced HTTP Manipulation | p. 53 |
Using Request Methods | p. 53 |
Cookie Manipulation | p. 54 |
Advanced Headers | p. 60 |
Summary | p. 63 |
Chapter 4 Generating and Digesting Payloads | p. 65 |
Web Service Protocols and Styles | p. 66 |
Simple Object Access Protocol (SOAP) | p. 66 |
Representational State Transfer (REST) | p. 68 |
Choosing an Approach | p. 69 |
Payloads | p. 70 |
Introducing Payload Data Formats | p. 70 |
Digesting Response Payloads | p. 73 |
Generating Request Payloads | p. 86 |
Summary | p. 92 |
Chapter 5 Handling Errors | p. 93 |
Understanding Error Sources | p. 93 |
Operating System Errors | p. 95 |
HTTP Errors | p. 101 |
Application Errors | p. 102 |
Rules of Thumb for Handling Errors | p. 103 |
Include Error Handling in the Interface Contract | p. 103 |
Error Statuses Lie | p. 104 |
Validate the Payload | p. 104 |
Separate Errors from Normal Business Conditions | p. 104 |
Always Check HTTP Status | p. 105 |
Always Check NSError | p. 105 |
Develop a Consistent Method for Handling Errors | p. 105 |
Always Set a Timeout | p. 105 |
Gracefully Handling Network Errors | p. 105 |
Design Pattern Description | p. 106 |
Command Dispatch Pattern Example | p. 111 |
Summary | p. 116 |
Part III Advanced Networking Techniques | |
Chapter 6 Securing Network Traffic | p. 119 |
Verifying Server Communication | p. 120 |
Authenticating with HTTP | p. 124 |
HTTP Basic, HTTP Digest, and NTLM Authentication | p. 125 |
Client-Certificate Authentication | p. 127 |
Message Integrity with Hashing and Encryption | p. 131 |
Hashing | p. 132 |
Message Authentication Codes | p. 136 |
Encryption | p. 139 |
Storing Credentials Securely on the Device | p. 151 |
Summary | p. 155 |
Chapter 7 Optimizing Request Performance | p. 157 |
Measuring Network Performance | p. 158 |
Network Bandwidth | p. 158 |
Network Latency | p. 159 |
Device Power | p. 160 |
Optimizing Network Operations | p. 161 |
Reducing Request Bandwidth | p. 161 |
Reducing Request Latency | p. 168 |
Avoid Network Requests | p. 170 |
Summary | p. 173 |
Chapter 8 Low-Level Networking | p. 175 |
BSD Sokets | p. 176 |
Configuring a Socket Server | p. 177 |
Connecting as a Socket Client | p. 178 |
CFNetwork | p. 182 |
NSStream | p. 186 |
Summary | p. 190 |
Chapter 9 Testing and Manipulating Network Traffic | p. 191 |
Observing Network Traffic | p. 192 |
Sniffing Hardware | p. 192 |
Sniffing Software | p. 193 |
Manipulating Network Traffic | p. 200 |
Setting Up Charles | p. 202 |
HTTP Breakpoints | p. 205 |
Rewrite Rules | p. 207 |
Simulating Real-World Network Conditions | p. 209 |
Summary | p. 211 |
Chapter 10 Using Push Notifications | p. 213 |
Scheduling Local Notifications | p. 214 |
Creating Local Notifications | p. 214 |
Canceling Local Notifications | p. 218 |
Handling the Arrival of Local Notifications | p. 219 |
Registering and Responding to Remote Notifications | p. 223 |
Configuring Remote Notifications | p. 224 |
Registering for Remote Notifications | p. 229 |
Remote Notification Playloads | p. 234 |
Sending Remote Notifications | p. 236 |
Responding to Remote Notifications | p. 240 |
Understanding Notification Best Practices | p. 243 |
Summary | p. 244 |
Part IV Networking App to App | |
Chapter 11 Inter-App Communication | p. 247 |
URL Schemes | p. 248 |
Implementing a Custom URL Scheme | p. 248 |
Sensing the presence of Other Apps | p. 251 |
Advanced Communication | p. 252 |
Shared Keychains | p. 257 |
Enterprise SSO | p. 257 |
Detecting Previous Installations | p. 264 |
Summary | p. 266 |
Chapter 12 Device-to-Device Communication with Game Kit | p. 267 |
Game Kit Basics | p. 268 |
Peer-to-Peer Networking | p. 271 |
Connecting to a Session | p. 272 |
Sending Data to Peers | p. 274 |
Client-Server Communication | p. 279 |
Summary | p. 280 |
Chapter 13 Ad-Hoc Networking with Bonjour | p. 281 |
Zeroconf Overview | p. 282 |
Addresses | p. 282 |
Resolution | p. 283 |
Discovery | p. 283 |
Bonjour Overview | p. 284 |
Publishing a Service | p. 284 |
Browsing for Services | p. 290 |
Resolving a Services | p. 293 |
Communicating with a Service | p. 295 |
Implementing Bonjour-Based Applications | p. 299 |
Employee Application | p. 301 |
Customer Application | p. 309 |
Summary | p. 317 |
Index | p. 319 |