Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Professional iOS Network Programming: Connecting the Enterprise to the iPhone and iPad
Nội dung xem thử
Mô tả chi tiết
www.it-ebooks.info
ffirs.indd i 13/09/12 2:46 PM
www.it-ebooks.info
PROFESSIONAL
IOS NETWORK PROGRAMMING
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
PART I UNDERSTANDING IOS AND ENTERPRISE NETWORKING
CHAPTER 1 Introducing iOS Networking Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . 3
CHAPTER 2 Designing Your Service Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
PART II HTTP REQUESTS: THE WORKHORSE OF IOS NETWORKING
CHAPTER 3 Making Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
CHAPTER 4 Generating and Digesting Payloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
CHAPTER 5 Handling Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
PART III ADVANCED NETWORKING TECHNIQUES
CHAPTER 6 Securing Network Traffi c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
CHAPTER 7 Optimizing Request Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
CHAPTER 8 Low-Level Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
CHAPTER 9 Testing and Manipulating Network Traffi c . . . . . . . . . . . . . . . . . . . . . . . . .191
CHAPTER 10 Using Push Notifi cations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
PART IV NETWORKING APP TO APP
CHAPTER 11 Inter-App Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
CHAPTER 12 Device-to-Device Communication with Game Kit . . . . . . . . . . . . . . . . . 267
CHAPTER 13 Ad-Hoc Networking with Bonjour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319
ffirs.indd i 13/09/12 2:46 PM
www.it-ebooks.info
ffirs.indd ii 13/09/12 2:46 PM
www.it-ebooks.info
PROFESSIONAL
iOS Network Programming
ffirs.indd iii 13/09/12 2:46 PM
www.it-ebooks.info
ffirs.indd iv 13/09/12 2:46 PM
www.it-ebooks.info
PROFESSIONAL
iOS Network Programming
CONNECTING THE ENTERPRISE
TO THE IPHONE® AND IPAD®
Jack Cox
Nathan Jones
John Szumski
ffirs.indd v 13/09/12 2:46 PM
www.it-ebooks.info
Professional iOS Network Programming: Connecting the Enterprise to the iPhone® and iPad®
Published by
John Wiley & Sons, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2012 by John Wiley & Sons, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-1-118-36240-2
ISBN: 978-1-118-38223-3 (ebk)
ISBN: 978-1-118-41716-4 (ebk)
ISBN: 978-1-118-53385-7 (ebk)
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means,
electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108
of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization
through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers,
MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the
Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201)
748-6008, or online at http://www.wiley.com/go/permissions.
Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with
respect to the accuracy or completeness of the contents of this work and specifi cally disclaim all warranties, including
without limitation warranties of fi tness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold
with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services.
If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to
in this work as a citation and/or a potential source of further information does not mean that the author or the publisher
endorses the information the organization or Web site may provide or recommendations it may make. Further, readers
should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was
written and when it is read.
For general information on our other products and services please contact our Customer Care Department within the
United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with
standard print versions of this book may not be included in e-books or in print-on-demand. If this book refers to
media such as a CD or DVD that is not included in the version you purchased, you may download this material at
http://booksupport.wiley.com. For more information about Wiley products, visit www.wiley.com.
Library of Congress Control Number: 2012948655
Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are
trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affi liates, in the United States and other countries, and may not be used without written permission. iPhone and iPad are registered trademarks of Apple, Inc. All other
trademarks are the property of their respective owners. John Wiley & Sons, Inc., is not associated with any product or
vendor mentioned in this book.
ffirs.indd vi 13/09/12 2:46 PM
www.it-ebooks.info
ABOUT THE AUTHORS
JACK COX is a software developer, a systems architect, and the director at CapTech
Ventures, Inc., where he is responsible for the fi rm’s mobile software practice. He
has 30 years of experience in developing software for businesses of all sizes. He has
been involved in three startups, holds multiple patents, and frequently presents to
professional groups. He has a degree in computer science from Taylor University in
Upland, Indiana. Jack lives in Richmond, Virginia, with his wife and children. You
can get in touch with Jack on Twitter @jcox_mobile.
NATHAN JONES is a software engineer with expertise in iOS and experience in
mobile web technologies. He began his career in enterprise software consulting
and started exploring mobile development when Apple announced the capability
to develop third-party apps for the iPhone. He graduated with a bachelor of
science in business information technology with a concentration on decision
support systems from Virginia Polytechnic Institute and State University in
Blacksburg, Virginia. He currently resides in Richmond, Virginia with his wife,
Jennifer, and son, Bryson. When he isn’t working, writing, or playing with his
son, he enjoys golfi ng and is an avid runner. You can get in touch with Nathan on Twitter @
nathanhjones.
JOHN SZUMSKI is a software engineer and mobile consultant with expertise in
the iOS, Android, and mobile web platforms. He advises Fortune 500 companies
on user experience and technical design. He graduated with a bachelor of
science in computer science (with distinction) from the University of Virginia in
Charlottesville, Virginia. John lives with his fi ancée in Richmond, Virginia. You
can get in touch with John on Twitter @jszumski.
ffirs.indd vii 13/09/12 2:46 PM
www.it-ebooks.info
ABOUT THE TECHNICAL EDITOR
JONATHAN TANG is a senior developer specializing in mobile applications at
CapTech Consulting. He has more than 10 years of development experience,
including programming touchscreen interfaces, medical devices, and iOS mobile
applications. Prior to CapTech, John worked as the primary software engineer at a
startup company that specializes in medical robotics. John received a bachelor of
science in biomedical engineering from Johns Hopkins University and a master
of science in electrical engineering from George Washington University.
ffirs.indd viii 13/09/12 2:46 PM
www.it-ebooks.info
EXECUTIVE EDITOR
Carol Long
PROJECT EDITOR
Victoria Swider
TECHNICAL EDITOR
Jonathan Tang
PRODUCTION EDITOR
Kathleen Wisor
COPY EDITOR
San Dee Phillips
EDITORIAL MANAGER
Mary Beth Wakefi eld
FREELANCER EDITORIAL MANAGER
Rosemarie Graham
ASSOCIATE DIRECTOR OF MARKETING
David Mayhew
MARKETING MANAGER
Ashley Zurcher
BUSINESS MANAGER
Amy Knies
PRODUCTION MANAGER
Tim Tate
VICE PRESIDENT AND EXECUTIVE GROUP
PUBLISHER
Richard Swadley
VICE PRESIDENT AND EXECUTIVE
PUBLISHER
Neil Edde
ASSOCIATE PUBLISHER
Jim Minatel
PROJECT COORDINATOR, COVER
Katie Crocker
PROOFREADER
Nancy Carrasco
INDEXER
Johnna VanHoose Dinse
COVER DESIGNER
Ryan Sneed
COVER IMAGE
© pagadesign/iStockPhoto
CREDITS
ffirs.indd ix 13/09/12 2:46 PM
www.it-ebooks.info
ffirs.indd x 13/09/12 2:46 PM
www.it-ebooks.info
ACKNOWLEDGMENTS
I WANT TO THANK the principles, management, and coworkers at CapTech Ventures, especially
Vinnie Schoenfelder, for encouraging and supporting our effort to write this book. I want to extend
special thanks to Nathan Jones and John Szumski for being willing and faithful in this adventure to
complete our fi rst book. On behalf of Nathan, John, and myself, I want to thank Carol Long and
Victoria Swider at Wiley for tolerating and answering all our newbie questions.
To my wife and family, I extend thanks without number for putting up with all of the nights and
weekends of writing and the associated crankiness. Thank you for allowing me to fulfi ll this dream.
And most important, I extend thanks and praise to my savior, Jesus Christ, who, through His
grace and mercy, has blessed me with so much that I do not deserve. Without Him, I would be hopeless and useless.
—Jack Cox
I WOULD LIKE TO THANK my lovely wife, Jennifer, and son, Bryson, for their continued support
and patience while working on this book. There are times when I saw more of Xcode than I saw of
you two, and those late nights and weekends weren’t easy on you guys. That didn’t go unnoticed,
thank you. I would also like to thank my parents for encouragement throughout the process, and
my dad, specifi cally, for teaching me to write my fi rst program. That planted the seed. I still have
that fl oppy disk, but I don’t think I have a drive to read it.
—Nathan Jones
I WOULD LIKE TO THANK my beautiful fi ancée, Caroline, for her understanding and support during
many late nights spent writing or editing. I also appreciate my extended family’s encouragement
through the entire publishing process.
—John Szumski
ffirs.indd xi 13/09/12 2:46 PM
www.it-ebooks.info
ffirs.indd xii 13/09/12 2:46 PM
www.it-ebooks.info
CONTENTS
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
ftoc.indd xiii 12/09/12 5:06 PM
www.it-ebooks.info