1. Trang chủ
  2. » Công Nghệ Thông Tin

Sams Teach Yourself iOS 5 Application Development in 24 Hours potx

801 1,2K 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sams Teach Yourself iOS 5 Application Development in 24 Hours
Tác giả John Ray
Trường học Pearson Education
Chuyên ngành Application Development
Thể loại sách hướng dẫn
Năm xuất bản 2012
Thành phố Indianapolis
Định dạng
Số trang 801
Dung lượng 37,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

My hope is that this book will bring iOS development to a new generation of developers.Teach Yourself iOS 5 Development in 24 Hours provides a clear natural progression of skills develop

Trang 2

800 East 96th Street, Indianapolis, Indiana, 46240 USA

Sams Teach Yourself

Trang 3

transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without

written permission from the publisher No patent liability is assumed with respect to the use of

the information contained herein Although every precaution has been taken in the preparation of

this book, the publisher and author assume no responsibility for errors or omissions Nor is any

liability assumed for damages resulting from the use of the information contained herein

ISBN-13: 978-0-672-33576-1

ISBN-10: 0-672-33576-X

Library of Congress Cataloging-in-Publication Data is on file

Printed in the United States of America

First Printing December 2011

Trademarks

All terms mentioned in this book that are known to be trademarks or service marks have been

appropriately capitalized Sams Publishing cannot attest to the accuracy of this information Use

of a term in this book should not be regarded as affecting the validity of any trademark or service

mark

Warning and Disclaimer

Every effort has been made to make this book as complete and as accurate as possible, but no

warranty or fitness is implied The information provided is on an “as is” basis The author and the

publisher shall have neither liability nor responsibility to any person or entity with respect to any

loss or damages arising from the information contained in this book

Bulk Sales

Sams Publishing offers excellent discounts on this book when ordered in quantity for bulk

pur-chases or special sales For more information, please contact

U.S Corporate and Government Sales

Trang 4

Introduction . 1

HOUR 1 Preparing Your System and iDevice for Development . 5

2 Introduction to Xcode and iOS Simulator . 25

3 Discovering Objective-C: The Language of Apple Platforms . 59

4 Inside Cocoa Touch . 89

5 Exploring X-code’s Interface Builder . 117

6 Model-View-Controller Application Design . 147

7 Working with Text, Keyboards, and Buttons . 175

8 Handling Images, Animation, Sliders, and Steppers . 205

9 Using Advanced Interface Objects and Views . 231

10 Getting the User’s Attention . 261

11 Introducing Multiple Scenes and Popovers . 291

12 Making Choices with Toolbars and Pickers . 337

13 Advanced Storyboards Using Navigation and Tab Bar Controllers . 385

14 Navigating Information Using Table Views and Split View Controllers . 421

15 Reading and Writing Application Data . 463

16 Building Rotatable & Resizable User Interfaces . 503

17 Using Advanced Touches and Gestures . 531

18 Sensing Orientation and Motion . 557

19 Working with Rich Media . 583

20 Interacting with Other Applications . 629

21 Implementing Location Services . 661

22 Building Background-Aware Applications . 691

23 Building Universal Applications . 717

24 Application Tracing and Debugging . 735

Index . 755

Trang 5

Introduction 1

Who Can Become an iOS Developer? . 2

Who Should Use This Book? . 2

What Is (and Isn’t) in This Book? . 3

HOUR 1: Preparing Your System and iDevice for Development 5 Welcome to the iOS Platform . 5

Becoming an iOS Developer . 9

Creating and Installing a Development Provisioning Profile . 14

Running Your First iOS App . 19

Developer Technology Overview . 20

Further Exploration . 22

Summary . 23

Q&A . 23

Workshop . 24

HOUR 2: Introduction to Xcode and the iOS Simulator 25 Using Xcode . 25

Using the iOS Simulator . 51

Further Exploration . 56

Summary . 57

Q&A . 57

Workshop . 58

HOUR 3: Discovering Objective-C: The Language of Apple Platforms 59 Object-Oriented Programming and Objective-C . 59

Exploring the Objective-C File Structure . 64

Objective-C Programming Basics . 73

Memory Management and ARC . 83

Further Exploration . 86

Trang 6

Summary . 86

Q&A . 87

Workshop . 88

HOUR 4: Inside Cocoa Touch 89 What Is Cocoa Touch? . 89

Exploring the iOS Technology Layers . 91

Tracing the iOS Application Life Cycle . 97

Cocoa Fundamentals . 99

Exploring the iOS Frameworks with Xcode . 108

Further Exploration . 113

Summary . 113

Q&A . 114

Workshop . 114

HOUR 5: Exploring Xcode’s Interface Builder 117 Understanding Interface Builder . 117

Creating User Interfaces . 123

Customizing the Interface Appearance . 129

Connecting to Code . 133

Further Exploration . 142

Summary . 143

Q&A . 144

Workshop . 144

HOUR 6: Model-View-Controller Application Design 147 Understanding the Model-View-Controller Paradigm . 147

How Xcode Implements MVC . 149

Using the Single View Application Template . 154

Further Exploration . 171

Summary . 172

Q&A . 172

Workshop . 172

Trang 7

HOUR 7: Working with Text, Keyboards, and Buttons 175

Basic User Input and Output . 175

Using Text Fields, Text Views, and Buttons . 177

Further Exploration . 200

Summary . 201

Q&A . 202

Workshop . 202

HOUR 8: Handling Images, Animation, Sliders, and Steppers 205 User Input and Output . 205

Creating and Managing Image Animations, Sliders, and Steppers . 207

Further Exploration . 227

Summary . 228

Q&A . 228

Workshop . 229

HOUR 9: Using Advanced Interface Objects and Views 231 User Input and Output (Continued) . 231

Using Switches, Segmented Controls, and Web Views . 236

Using Scrolling Views . 252

Further Exploration . 258

Summary . 259

Q&A . 259

Workshop . 260

HOUR 10: Getting the User’s Attention 261 Alerting the User . 261

Exploring User Alert Methods . 271

Further Exploration . 288

Summary . 289

Q&A . 289

Workshop . 290

Trang 8

HOUR 11:Implementing Multiple Scenes and Popovers 291

Introducing Multiscene Storyboards . 292

Understanding the iPad Popover . 309

Using a Modal Segue . 319

Using a Popover . 328

Further Exploration . 334

Summary . 335

Q&A . 335

Workshop . 336

HOUR 12:Making Choices with Toolbars and Pickers 337 Understanding the Role of Toolbars . 337

Exploring Pickers . 341

Using the Date Picker . 349

Using a Custom Picker . 364

Further Exploration . 380

Summary . 381

Q&A . 381

Workshop . 382

HOUR 13: Advanced Storyboards Using Navigation and Tab Bar Controllers 385 Advanced View Controllers . 386

Exploring Navigation Controllers . 388

Understanding Tab Bar Controllers . 393

Using a Navigation Controller . 398

Using a Tab Bar Controller . 407

Further Exploration . 417

Summary . 417

Q&A . 418

Workshop . 419

Trang 9

HOUR 14:Navigating Information Using Table Views and

Understanding Tables . 422

Exploring the Split View Controller (iPad Only) . 430

A Simple Table View Application . 433

Creating a Master-Detail Application . 443

Further Exploration . 460

Summary . 460

Q&A . 461

Workshop . 461

HOUR 15:Reading and Writing Application Data 463 iOS Applications and Data Storage . 463

Data Storage Approaches . 465

Creating Implicit Preferences . 473

Implementing System Settings . 479

Implementing File System Storage . 492

Further Exploration . 500

Summary . 501

Q&A . 501

Workshop . 502

HOUR 16: Building Rotatable and Resizable User Interfaces 503 Rotatable and Resizable Interfaces . 503

Creating Rotatable and Resizable Interfaces with Interface Builder . 508

Reframing Controls on Rotation . 513

Swapping Views on Rotation . 521

Further Exploration . 527

Summary . 527

Q&A . 528

Workshop . 529

Trang 10

HOUR 17:Using Advanced Touches and Gestures 531

Multitouch Gesture Recognition . 532

Using Gesture Recognizers . 534

Further Exploration . 553

Summary . 554

Q&A . 554

Workshop . 554

HOUR 18: Sensing Orientation and Motion 557 Understanding Motion Hardware . 558

Accessing Orientation and Motion Data . 560

Sensing Orientation . 564

Detecting Tilt and Rotation . 568

Further Exploration . 579

Summary . 580

Workshop . 581

HOUR 19: Working with Rich Media 583 Exploring Rich Media . 583

The Media Playground Application . 598

Further Exploration . 625

Summary . 626

Q&A . 627

Workshop . 627

HOUR 20: Interacting with Other Applications 629 Extending Application Integration . 629

Using Address Book, Email, Twitter, and Maps Oh My . 641

Further Exploration . 658

Summary . 659

Q&A . 659

Workshop . 660

Trang 11

HOUR 21: Implementing Location Services 661

Understanding Core Location . 661

Creating a Location-Aware Application . 668

Using the Magnetic Compass . 678

Further Exploration . 686

Summary . 687

Q&A . 687

Workshop . 688

HOUR 22: Building Background-Aware Applications 691 Understanding iOS Backgrounding . 692

Disabling Backgrounding . 696

Handling Background Suspension . 697

Implementing Local Notifications . 698

Using Task-Specific Background Processing . 701

Completing a Long-Running Background Task . 708

Further Exploration . 714

Summary . 715

Q&A . 715

Workshop . 716

HOUR 23: Building Universal Applications 717 Universal Application Development . 717

Creating a Universal Application (Take 1) . 722

Creating a Universal Application (Take 2) . 726

Using Multiple Targets . 730

Further Exploration . 732

Summary . 733

Q&A . 733

Workshop . 734

Trang 12

HOUR 24: Application Tracing and Debugging 735

Instant Feedback with NSLog . 736

Using the Xcode Debugger . 738

Further Exploration . 752

Summary . 753

Q&A . 753

Workshop . 753

Trang 13

John Ray is currently serving as a Senior Business Analyst and Development Team

Manager for the Ohio State University Research Foundation He has written numerous

books for Macmillan/Sams/Que, including Using TCP/IP: Special Edition, Teach Yourself

Dreamweaver MX in 21 Days, Mac OS X Unleashed, and Teach Yourself iPad Development in 24 Hours As a Macintosh user since 1984, he strives to ensure that each project presents the

Macintosh with the equality and depth it deserves Even technical titles such as Using TCP/IP

contain extensive information about the Macintosh and its applications and have garnerednumerous positive reviews for their straightforward approach and accessibility to beginnerand intermediate users

You can visit his website at http://teachyourselfios.com or follow him on Twitter at

#iOSIn24

Trang 14

To the crazy ones.

Thank you, Steve Jobs.

Acknowledgments

Thank you to the group at Sams Publishing—Laura Norman, Keith Cline, Anne Groves—fornot giving up on this book, despite the changes, delays, and other challenges that weencountered along the way I’m not sure how you manage to keep all of the files, figures,and information straight, but on this end it looks like magic

As always, thanks to my family and friends for feeding me and poking me with a stick tokeep me going

Trang 15

As the reader of this book, you are our most important critic and commentator We value

your opinion and want to know what we’re doing right, what we could do better, whatareas you’d like to see us publish in, and any other words of wisdom you’re willing to passour way

You can email or write me directly to let me know what you did or didn’t like about thisbook—as well as what we can do to make our books stronger

Please note that I cannot help you with technical problems related to the topic of this book,and that due to the high volume of mail I receive, I might not be able to reply to everymessage

When you write, please be sure to include this book’s title and author as well as your nameand phone or email address I will carefully review your comments and share them with theauthor and editors who worked on the book

Trang 16

In less than half a decade, the iOS platform has changed the way that we, the public, thinkabout our mobile computing devices Only a few years ago, we were thrilled by phones withpostage-stamp-sized screens, tinny audio, built-in tip calculators, and text-based web brows-ing Times have indeed changed With full-featured applications, an interface architecturethat demonstrates that small screens can be effective workspaces, and touch controls unri-valed on any platform, the iPhone brings us the convenience of desktop computing withinour pockets.

When Steve Jobs introduced the iPad, people laughed at the name and the idea that “a bigiPod Touch” could be magical In the 2 years that have passed since its introduction, theiPad has become the de facto standard for tablet computing and shows no signs of slowingdown Rarely a week goes by when I don’t read a review of a new app that is described as

“magical” and that could only have been created on the iPad The excitement and tion surrounding iOS and the sheer enjoyment of using the iOS devices has led it to becomethe mobile platform of choice for users and developers alike

innova-With Apple, the user experience is key The iOS is designed to be controlled with your gers rather than by using a stylus or keypad The applications are “natural” and fun to use,instead of looking and behaving like a clumsy port of a desktop app Everything from inter-face to application performance and battery life has been considered The same cannot besaid for the competition

fin-Through the App Store, Apple has created the ultimate digital distribution system for opers Programmers of any age or affiliation can submit their applications to the App Storefor just the cost of a modest yearly Developer Membership fee Games, utilities, and full-feature applications have been built for everything from pre-K education to retirement liv-ing No matter what the content, with a user base as large as the iPhone, iPod Touch, andiPad, an audience exists

devel-Each year, Apple introduces new devices—bringing larger, faster, and higher-resolutioncapabilities to the iOS family With each new hardware refresh come new developmentopportunities and new ways to explore the boundaries between software and art

Trang 17

My hope is that this book will bring iOS development to a new generation of developers.

Teach Yourself iOS 5 Development in 24 Hours provides a clear natural progression of skills

development, from installing developer tools and registering your device with Apple, to mitting an application to the App Store It’s everything you need to get started in 24 one-hour lessons

sub-Who Can Become an iOS Developer?

If you have an interest in learning, time to invest in exploring and practicing with Apple’sdeveloper tools, and an Intel Macintosh computer running Lion, you have everything youneed to begin creating software for iOS

Developing an app won’t happen overnight, but with dedication and practice, you can bewriting your first applications in a matter of days The more time you spend working withthe Apple developer tools, the more opportunities you’ll discover for creating new and excit-ing projects

You should approach iOS application development as creating software that you want to

use, not what you think others want If you’re solely interested in getting rich quick, you’relikely to be disappointed (The App Store is a crowded marketplace—albeit one with a lot ofroom—and competition for top sales is fierce.) However, if you focus on building apps thatare useful and unique, you’re much more likely to find an appreciative audience

Who Should Use This Book?

This book targets individuals who are new to development for the iPhone and iPad and

have experience using the Macintosh platform No previous experience with Objective-C,

Cocoa, or the Apple developer tools is required Of course, if you do have developmentexperience, some of the tools and techniques may be easier to master, but the authors donot assume that you’ve coded before

That said, some things are expected of you, the reader Specifically, you must be willing toinvest in the learning process If you just read each hour’s lesson without working throughthe tutorials, you will likely miss some fundamental concepts In addition, you need tospend time reading the Apple developer documentation and researching the topics pre-sented in this book There is a vast amount of information on iOS development available,and only limited space in this book This book covers what you need to forge your own path forward

Trang 18

What Is (and Isn’t) in This Book?

The material in this book specifically targets iOS release 5 and later on Xcode 4.2 and later.Much of what you’ll be learning is common to all the iOS releases, but this book also coversseveral important areas that have only come about in iOS 4 and 5, such as gesture recog-nizers, embedded video playback with AirPlay, Core Image, multitasking, universal

(iPhone/iPad) applications, and more!

Unfortunately, this is not a complete reference for the iOS APIs; some topics just requiremuch more space than this book allows Thankfully, the Apple developer documentation isavailable directly within the free tools you’ll be installing in Hour 1, “Preparing Your Systemand iDevice for Development.” In many hours, you’ll find a section titled “Further

Exploration.” This identifies additional related topics of interest Again, a willingness toexplore is an important quality in becoming a successful developer

Each coding lesson is accompanied by project files that include everything you need to pile and test an example or, preferably, follow along and build the application yourself Besure to download the project files from the book’s website at http://teachyourselfios.com Ifyou have issues with any projects, view the posts on this site to see whether a solution hasbeen posted

com-In addition to the support website, you can follow along on Twitter! Search for #iOScom-In24 onTwitter to receive official updates and tweets from other readers Use the hashtag #iOSIn24

in your tweets to join the conversation To send me messages via Twitter, begin each tweetwith @johnemeryray

Trang 20

Preparing Your System and

iDevice for Development

What You’ll Learn in This Hour:

The iOS hardware limitations you face

Where to get the tools you need to develop for iOS devices

How to join the iOS Developer Program

The need for (and use of) provisioning profiles

What to expect during the first few hours of this book

The iOS device family opens up a whole realm of possibilities for developers: Multitouchinterfaces, always-on Internet access, video, and a whole range of built-in sensors can beused to create everything from games to serious productivity applications Believe it ornot, as a new developer, you have an advantage You are starting fresh, free from any pre-conceived notions of what is possible in a mobile application Your next big idea may wellbecome the next big thing on Apple’s App Store

This hour prepares you for your first development project You’re about to embark on theroad to becoming an iOS developer, but you need to do a bit of prep work before you startcoding

Welcome to the iOS Platform

If you’re reading this book, you probably already have an iOS device, and that means youalready understand how to interact with its interface Crisp graphics, amazing responsive-ness, multitouch, and hundreds of thousands of apps—this just begins to scratch the sur-face As a developer, however, you need to get accustomed to dealing with a platformthat, to borrow a phrase from Apple, forces you to “think different.”

Trang 21

iOS Devices

The iOS platform family currently consists of the iPhone, iPad, iPod Touch, andApple TV; but at present, the Apple TV is not open for development As you work onthe tutorials in this book, you’ll notice that in many screenshots that I focus oniPhone-centric projects This isn’t because I’m lacking iPad love; it’s because iPadinterfaces are so large it’s difficult to capture them in a screenshot The good news isthat if you want to develop a project on the iPad, you develop it on the iPad! If youwant to develop it for the iPhone, you develop it for the iPhone! In almost all cases,the coding process is identical In the few cases where it isn’t, I make sure youunderstand what is different between the devices (and why) You’ll also find thateach tutorial is available in an iPad and iPhone version on this book’s website(http://teachyourselfios.com), so you can follow along with a working application

on whatever device you choose

Like Apple’s developer tools and documentation, I do not differentiate between theiPhone and iPod Touch in the lessons For all intents and purposes, developing forthese devices is identical, although some capabilities aren’t available in earlierversions of the iPod Touch (but the same can be said for earlier versions of theiPhone and iPad, as well)

Display and Graphics

The iOS devices offer a variety of different resolutions, but iOS provides a simple way

of thinking about them The iPhone screen, for example, is 320×480 points (see

Figure 1.1) Notice that I said points, not pixels Prior to the release of the iPhone 4’s Retina display, the iPhone was 320×480 pixels Now, the actual resolution of an iOS

device is abstracted behind a scaling factor This means that although you may beworking with the numbers 320×480 for positioning elements, you may have morepixels than that The iPhone 4 and 5, for example, have a scaling factor of 2, whichmeans that they are really (320×2) x (480×2) or 640×960 resolution devices

Although that might seem like quite a bit of screen real estate, remember that allthese pixels are displayed on a screen that is roughly 3.5-inch diagonal

The iPad 2, on the other hand, ships with a 1024×768 point screen However, theiPad 2 has a scaling factor of 1, so it is also a 1024×768 pixel screen It is widely

expected that Apple will update the iPad with a Retina display in the next year, at

which time it will still have a 1024×768-point screen but a resolution of 2048×1536pixels and a scaling factor of 2

By the

Way

Trang 22

We take a closer look at how scaling factors work when we position objects on the

screen throughout this book The important thing to know is that when you’re

building your applications, iOS automatically takes the scaling factor into play to

display your apps and their interfaces at the highest possible resolution (with

rarely any additional work on your part).

If you have a 27-inch cinema display on your desk, these handheld resolutions may

seem limiting Keep in mind, however, that desktop computers only recently

exceeded this size, and many websites are still designed for 800×600 In addition, an

iOS device’s display is dedicated to the currently running application You have one

window to work in You can change the content within that window, but the desktop

and multiwindow application metaphors are gone

The screen limits aren’t a bad thing As you’ll learn, the iOS development tools give

you plenty of opportunities to create applications with just as much depth as your

desktop software—albeit with a more structured and efficient interface design

The graphics that you display on your screen can include complex animated 2D and

3D displays thanks to the OpenGL ES implementation available on all iOS devices

OpenGL is an industry standard for defining and manipulating graphic images that

320 Points

480 Points

FIGURE 1.1

The iPhonescreen is meas-ured in points—

320×480(portrait),

480×320 scape)—buteach point may

(land-be made up ofmore than 1pixel

Did You Know?

Trang 23

is widely used when creating games Each year’s device revisions improve these bilities with more advanced 3D chipsets and rendering abilities, but even the originaliPhone has very respectable imaging abilities.

capa-Application Resource Constraints

As with the HD displays on our desktops and laptops, we’ve grown accustomed toprocessors that can work faster than we can click The iOS devices use a range ofprocessors, from a ~400MHz ARM in the early iPhones to a dual-core 1GHz A5 in theiPad 2 The “A” chips are a “system on a chip” that provide CPU, GPU, and othercapabilities to the device, and this series is the first Apple-designed CPU series to beused in quite awhile

Apple has gone to great lengths to keep the iOS devices responsive regardless of whatyou’re doing Unfortunately, that means that unlike the Mac OS, your device’s capa-bility to multitask is limited Starting in iOS 4, Apple created a limited set of multi-tasking APIs for very specific situations These enable you to perform some tasks inthe background, but your application can never assume that it will remain running.The iOS preserves the user experience above all else

Another constraint that you need to be mindful of is the available memory In the

original iPhone, 128MB of RAM is available for the entire system, including your

appli-cation There is no virtual memory (slower storage space used as RAM), so you must

carefully manage the objects that your application creates In the latest models ofthe iPhone and iPad, Apple has graciously provided 512MB This is great for us, butkeep in mind that there are no RAM upgrades for earlier models

Connectivity

The iPhone and iPad 3G can always be connected to the Internet via a cellularprovider (such as AT&T or Verizon in the United States) This wide-area access is sup-plemented with built-in WiFi and Bluetooth WiFi can provide desktop-like browsingspeeds within the range of a wireless hot spot Bluetooth, on the other hand, can beused to connect a variety of peripheral devices to your device, including a keyboard

As a developer, you can make use of the Internet connectivity to update the content

in your application, display web pages, and create multiplayer games The onlydrawback is that applications that rely heavily on 3G data usage stand a greaterchance of being rejected from the App Store These restrictions have been lessened astime goes by, but what is and isn’t permissible on a 3G network is still a point offrustration among developers

Trang 24

Input and Feedback

iOS devices shine when it comes to input and feedback mechanisms and your ability

to work with them You can read the input values from the capacitive multitouch

(up to 11 fingers on the iPad) screen, sense motion and tilt via the accelerometer

and gyroscope (iPhone 4, iPad 2, and later), determine where you are using the GPS

(3G required), see which way you’re facing with the digital compass (iPhone 4, iPad

2, and later), and understand how a device is being used with the proximity and

light sensors iOS can provide so much data to your application about how and

where it is being used that the device itself truly becomes a controller of sorts—much

like (but surpassing) devices such as the Nintendo Wii and PlayStation Move

iOS devices also support capturing pictures and video (iPhone, iPad 2, and later)

directly into your applications, opening a realm of possibilities for interacting with

the real world Already applications are available that identify objects you’ve taken

pictures of and that find references to them online (such as the Amazon Mobile app)

or perform real-time translation of printed text (Word Lens)

Finally, for each action your user takes when interacting with your application, you

can provide feedback This, obviously, can be visible feedback on the screen, or it

can be high-quality audio and force feedback via vibration (iPhone only) As a

developer, you can leverage all these capabilities (as you’ll learn in this book)

That wraps up our quick tour of the iOS platform Never before has a single device

defined and provided so many capabilities for a developer As long as you think

through the resource limitations and plan accordingly, a wealth of development

opportunities await you

Becoming an iOS Developer

Being an iOS developer requires more than just sitting down and writing a program

You need a modern Intel Macintosh desktop or laptop running Snow Leopard or

Lion and at least 6GB of free space on your hard drive The more screen space you

have on your development system, the easier it is to create an effective workspace

Lion users can even take Xcode into fullscreen mode, removing all distractions That

said, I’ve worked perfectly happily on a 13-inch MacBook Air, so an ultra-HD

multi-monitor setup certainly isn’t necessary

So assuming you already have a Mac, what else do you need? The good news is that

there isn’t much more, and it won’t cost you a cent to write your first application.

Trang 25

The standard program ($99) is available for both companies and individuals If youwant to publish to the App Store with a business name, you are given the option

of choosing a standard “individual” or “company” program during the registration

Registering as a DeveloperBig or small, free or paid, your venture into iOS development begins on Apple’s web-site To start, visit the Apple iOS Dev Center (http://developer.apple.com/ios), shown

in Figure 1.2 If you have an existing Apple ID from using iTunes, iCloud, or otherApple services, you can use that ID for your developer account If not, or if you want

a new ID to use solely for development, you can create a new Apple ID during theregistration process

Joining the Apple Developer Program

Despite somewhat confusing messages on the Apple website, there really is no feeassociated with joining the Apple Developer Program, downloading the iOS SDK(Software Development Kit), writing iOS applications, and running them on Apple’siOS Simulator

Limitations do apply, however, to what you can do for free If you want to haveearly access to beta versions of the iOS and SDK, you must be a paid member If youwant to load the applications you write on a physical device or distribute them viathe App Store, you also need to pay the membership fee Most applications in thisbook work just fine on the simulator provided with the free tools, so the decision onhow to proceed is up to you

Perhaps you aren’t yet sure whether the paid program is right for you Don’t worry;you can upgrade at any time I recommend that you start with the free programand upgrade after you’ve written a few sample applications and run them in thesimulator

Obviously, things such as motion sensor input and GPS readings can’t be rately presented in the simulator, but these are special cases and aren’t neededuntil later in this book

accu-If you choose to pay, the paid Developer Program offers two levels: a standard gram ($99) for those who will be creating applications that they want to distributefrom the App Store, and an enterprise program ($299) for large (500+ employee)

pro-companies that want to develop and distribute applications in-house but not

through the App Store Most likely, the standard program is what you want

Did You

Know?

By the

Way

Trang 26

Click the Register link in the upper right, and then click Get Started on the

subse-quent page When the registration starts, decide whether to create an Apple ID or

jump-start registration by choosing to use an existing Apple ID, as shown in Figure

1.3 After making your choice, click Continue

The registration process walks you through the process of creating a new Apple ID (if

needed) and collects information about your development interests and experience,

as shown in Figure 1.4

If you’ve chosen to create a new ID, Apple verifies your email address by sending

you a clickable link to activate your account

Joining a Paid Developer Program

After you have a registered and activated Apple ID, you can decide to join a paid

program or to continue using the free resources If you choose to join a paid

pro-gram, point your browser to the iOS Developer Program page (http://developer

apple.com/programs/ios/) and click the Enroll Now link After reading the

introduc-tory text, click Continue to begin the enrollment process

When prompted, choose I’m Registered as a Developer with Apple and Would Like to

Enroll in a Paid Apple Developer Program, and then click Continue

FIGURE 1.2

Visit the iOS DevCenter to log in

or start theenrollmentprocess

Trang 28

FIGURE 1.5

Choose whichpaid programyou want

The registration tool now guides you through applying for the paid programs,

including choosing between the individual and company options, as shown in

Figure 1.5

Unlike the free developer membership, the paid Developer Program does not take

effect immediately When the App Store first launched, it took months for new

devel-opers to join and be approved into the program Today, however, it might take hours

or a few days Just be patient

Installing the iOS Developer Tools

For Lion (or later) users, downloading the iOS developer tools is as easy as point and

click Open the App Store from your Dock, search for Xcode, and download it for

free, as shown in Figure 1.6 Sit back while your Mac downloads the large (~3GB)

installer If you don’t have Lion, you can download the current-release version of the

iOS developer tools directly from the iOS Dev Center (http://developer.apple.com/ios)

If you have the free developer membership and log in to the iOS Dev Center, you’ll

likely see just a single installer for Xcode and the iOS SDK (the current-release

version of the development tools) If you’ve become a paid program member, you

may see additional links for different versions of the SDK (5.1, 6.0, and so on)

The examples in this book are based on the 5.0+ series of iOS SDKs, so be sure

to choose that option if presented

Did You Know?

Trang 29

FIGURE 1.6

Download the

release version

of Xcode from

the App Store

When the download completes, you have either a disk image (if you downloadedfrom the iOS Developer site) or an installer (if you downloaded from the App Store).Open the disk image, if necessary, and run the installer You don’t have to changeany of the defaults during the installation process, so just read and agree to the soft-ware license and click Continue to proceed through the steps

Unlike most applications, the Apple developer tools are installed in a folder calledDeveloper located at the root of your hard drive Inside the Developer folder aredozens of files and folders containing developer frameworks, source code files, exam-ples, and of course, the developer applications themselves Nearly all your work inthis book will be in the application Xcode, located in the Developer/Applicationsfolder and in the Developer group in Launchpad (see Figure 1.7)

Although we won’t get into real development for a few more hours, we will be

config-uring a few options in Xcode in the next section, so don’t forget where it is

Creating and Installing a Development Provisioning Profile

Even after you’ve obtained an Apple developer membership, joined a paid DeveloperProgram, and downloaded and installed the iOS development tools, you still cannotrun any applications that you write on your actual device Why? Because youhaven’t created a development provisioning profile yet

Trang 30

Watch Out!

FIGURE 1.7

Most of yourwork will startwith Xcode(which you canfind in theDeveloperfolder)

For Paid Members Only

Only paid developer accounts can complete the following steps If you have a free

developer account, don’t fret; you can use the iOS Simulator to test your apps

until you’re ready for a paid membership Skip ahead to “Running Your First iOS

App,” later in this hour

In many development guides, this step isn’t covered until after development begins

In my mind, once you’ve written an application, you’re going to want to run it on a

real device immediately Why? Because it’s just cool to see your own code running on

your own iPhone or iPad!

What’s a Development Provisioning Profile?

Like it or not, Apple’s current approach to iOS development is to make absolutely

certain that the development process is controlled—and that groups can’t just

distrib-ute software to anyone they want The result is a rather confusing process that ties

together information about you, any development team members, and your

applica-tion into a “provisioning profile.”

A development provisioning profile identifies the developer who may install an

application, an ID for the application being developed, and the “unique device

iden-tifiers” for each device that will run the application This is only for the development

process When you are ready to distribute an application via the App Store or to a

group of testers (or friends) via ad hoc means, you must create a separate

“distribu-tion” profile Because we’re just starting out, this isn’t something you need right

away

Trang 31

Configuring a Device for Development

In the past, creating a provisioning profile for the sole purpose of development was afrustrating and time-consuming activity that took place in an area of the iOS devel-oper site called the Provisioning Portal Apple has dramatically streamlined theprocess in recent versions of Xcode, making provisioning as simple as connectingyour device and clicking a button

To install the development profile, first make sure that your device is connected toyour computer, and then launch Xcode When Xcode first launches, dismiss any

“Welcome” windows that appear, and then immediately choose Window, Organizerfrom the menu The Organizer utility slightly resembles iTunes in its layout Youshould see your iOS device listed in the leftmost column of the Organizer under theDevices section, as shown in Figure 1.8

Click the device icon to select it, and then click the Use for Development button Yourscreen should now resemble Figure 1.8

Next, click the Use for Development button located near the center of the screen.When prompted, provide the Apple ID login associated with your paid developermembership Be sure to click the Remember Password in Keychain check box so thatyou can access online developer resources through Xcode without encountering addi-tional prompts

In the background, Xcode is adding a unique identity to the iOS developer portalthat identifies you and will be used to digitally sign any applications you generate It

Trang 32

FIGURE 1.9

Submit arequest for anew develop-ment certificate

also registers your device with Apple so that it can run the software you create (and

beta releases of iOS) If this is the first time you’ve been through the process, you are

asked whether a development certificate should be generated, as shown in Figure

1.9 Click Submit Request to continue

Xcode continues to communicate with Apple to create a development profile that

will be named Team Provisioning Profile as well as a unique App ID This ID

identi-fies a shared portion of the iOS device keychain to which your application will have

access

The keychain is a secure information store on iOS devices that can be used to

save passwords and other critical information Most apps don’t share a keychain

space (and therefore cannot share protected information) If you use the same

App ID for multiple applications, however, those applications can share keychain

data

For the purposes of this book, there’s no reason the tutorial apps can’t share a

single App ID, so letting Xcode generate an ID for us is just fine Xcode will, in

fact, create a “wildcard” App ID that will be applied to any application you create

using the Team Provisioning Profile

Finally, Apple’s servers use all of this information, along with the unique identifier of

your connected iOS device, to provide Xcode with a completed provisioning profile

Xcode then transparently uploads the profile to your device

Did You Know?

Trang 33

But Wait I Have More Than One iOS Device

We’ve discussed provisioning a single device for development But what if youhave multiple devices that you want to install onto? No problem Just connect theadditional devices and use the Use for Development button to add them to youraccount and provision them

Apple allows a total of 100 unique devices to be used on your account within the

span of 1 year, so be judicious in registering devices if you plan to do extensivein-house development testing

After you have a development machine configured, you can easily configure othercomputers using the Developer Profile item in the Xcode Organizer’s Library TheExport Developer Profile and Import Developer Profile buttons export (and subse-quently import) all your developer profiles/certificates in a single package

Did You

Know?

Trang 34

FIGURE 1.11

The opened ect should look

proj-a bit like this

Running Your First iOS App

It seems wrong to go through a whole hour about getting ready for iOS development

without any payoff, right? For a real-world test of your efforts, let’s actually try to

run an application on your iOS device If you haven’t downloaded the project files to

your computer, now is a good time to visit http://teachyourselfiOS.com and

down-load the archives

Within the Hour 1 Projects folder, open the Welcome folder Double-click

Welcome.xcodeproj to open a simple application in Xcode After the project opens,

your display should be similar to Figure 1.11

Next, make sure that your iOS Device is plugged into your computer Using the

Scheme pop-up menu in the upper-left corner of the Xcode window, choose the name

of your device, as shown in Figure 1.12 This tells Xcode that when the project is built

it should be installed on your device, not run in the simulator If you don’t have a

paid developer membership, choose either the iPhone Simulator or iPad Simulator

option, depending on which version of the project you’re using

Typically, you see just one option for running an application on either the iPhone

Simulator or the iPad Simulator In Figure 1.12, you see both This occurs when

you are using an iPhone-targeted app (because they run on iPhones and iPads) or

when an app is a universal application (more on that later in the book) In this

case, the screenshot was captured using the iPhone version of the project so that

both options could be seen

By the Way

Trang 35

Finally, click the Run button in the upper-left corner of the window After a few onds, the application should be installed and launched on your device Because Ican’t actually show you my device running the app, Figure 1.13 demonstrates what

sec-it looks like in the iPad Simulator

Click Stop in the Xcode toolbar to exit the application You can now quit Xcode—we’re done with it for the day

When you clicked Run, the Welcome application was installed and started on youriOS device It remains there until you remove it manually Just touch and hold theWelcome icon until it starts wiggling, and then delete the application as you wouldany other Applications installed with your development certificate stop workingwhen the certificate expires (120 days after issuance)

Developer Technology OverviewOver the course of the next few hours, you are introduced to the technologies thatyou’ll be using to create iOS applications The goal is to get you up to speed on thetools and technology, and then you can start actively developing This means you’restill a few hours away from writing your first app, but when you start coding, you’llhave the necessary background skills and knowledge to successfully create a widevariety of applications

FIGURE 1.12

Choose where

you want the

app to run (on a

device or in the

simulator)

By the

Way

Trang 36

FIGURE 1.13

Congratulations!You’ve justinstalled yourfirst homegrowniOS application

The Apple Developer Suite

In this hour, you downloaded and worked with the Xcode application This, coupled

with the iOS Simulator, will be your home for the duration of the book These two

applications are so critical, in fact, that we spend 2 hours (Hour 2, “Introduction to

Xcode and the iOS Simulator,” and Hour 5, “Exploring Xcode’s Interface Builder”)

covering their capabilities and use

It’s worth mentioning that almost every iPhone, iPad, iPod, and Macintosh

applica-tion you run, whether created by a single developer at home or by a huge company,

is built using the Apple developer tools This means that you have everything you

need to create software as powerful as any you’ve ever run

Objective-C

Objective-C is the language that you’ll be using to write your applications It

pro-vides the structure for our applications and controls the logic and decision making

that goes on when an application is running

Trang 37

If you’ve never worked with a programming language before, don’t worry Hour 3,

“Discovering Objective-C: The Language of Apple Platforms,” covers everything youneed to get started Developing for iOS in Objective-C is a unique programmingexperience, even if you’ve used other programming languages in the past The lan-guage is unobtrusive and structured in a way that makes it easy to follow After yourfirst few projects, Objective-C will fade into the background, letting you concentrate

on the specifics of your application

Cocoa Touch

While Objective-C defines the structure for iOS applications, Cocoa Touch defines

the functional building blocks, called classes, that can make iOS devices perform

cer-tain actions Cocoa Touch isn’t a “thing,” per se, but a collection of interface ments, data storage elements, and other handy tools that you can access from yourapplications

ele-As you’ll learn in Hour 4, “Inside Cocoa Touch,” you can access literally hundreds

of different Cocoa Touch classes and do thousands of things with them This bookcovers quite a few of the most useful classes and gives you the pointers necessary toexplore even more on your own

Model-View-Controller

The iOS platform and Macintosh use a development approach called Controller (MVC) to structure applications Understanding why MVC is used and thebenefits it provides will help you make good decisions in structuring your most com-plex applications Despite the complicated-sounding name, MVC is really just a way

Model-View-to keep your application projects arranged so that you can easily update and extendthem in the future You learn more about MVC in Hour 6, “Model-View-ControllerApplication Design.”

Further ExplorationXcode is the cornerstone of your iOS development experience You will design, code,and test your apps in Xcode You’ll provision your devices and even submit apps tothe App Store, all through Xcode Noticing my emphasis? Xcode Xcode Xcode.Although we’ll be spending time going through the Xcode features now, take amoment to watch Apple’s introductory videos to get a sense for what you’ll be see-ing To do this, open Xcode, and then choose Xcode Help from the Help menu.The more you familiarize yourself with the tools, the quicker you’ll be able to usethem to build production-ready applications

Trang 38

This hour introduced you to the iOS platform, its capabilities, and its limitations

You learned about the different iOS devices’ graphic features, RAM sizes, and the

various sensors that you can use in your applications to create uniquely “aware”

experiences We also discussed the Apple iOS developer tools, how to download and

install them, and the differences between the various paid Developer Programs To

prepare you for actual on-phone development, you explored the process of creating

and installing a development provisioning profile in Xcode and even installed an

application on your device

The hour wrapped up with a quick discussion about the development technologies

that make up the first part of this book and form the basis for all the iOS

develop-ment you’ll be doing

Q&A

Q I thought that iOS devices ranged from a minimum of 16GB of RAM in the

low-end iPad and iPhone to 64GB on the high-end models Don’t they?

A The “memory” capabilities of devices that are advertised to the public are the

storage sizes available for applications, songs, and so forth It is separate from

the RAM that can be used for executing programs If Apple implements

vir-tual memory in a future version of iOS, it is possible that the larger storage

could be used for increasing available RAM

Q What platform should I target for development?

A That depends on your goals If you want to reach the largest audience,

con-sider a universal application that works on the iPhone, iPad, and iPod Touch

We explore this in a few projects later in this book If you want to make use of

the most-capable hardware, you can certainly target the unique capabilities of

a specific device, but by doing so you might be limiting the size of your

cus-tomer base

Q Why isn’t the iOS platform open?

A Great question Apple has long sought to control the user experience so that it

remains “positive” regardless of how users have set up their device, be it a

Mac, an iPad, or an iPhone By ensuring that applications can be tied to a

developer and by enforcing an approval process, Apple attempts to limit the

Trang 39

potential for a harmful application to cause damage to data or otherwise atively impact the user Whether this is an appropriate approach, however, isopen to debate.

neg-Workshop

Quiz

1 What is the resolution of the iPhone screen?

2 What is the cost of joining an individual iOS Developer Program?

3 What language will you use when creating iOS applications?

Answers

1 Trick question The iPhone screen has 320×480 points, but you can’t tell howmany pixels unless you multiply by the scaling factor The iPhone 4 and 5have a scaling factor of 2; all other models have a scaling factor of 1

2 The Developer Program costs $99 a year for the individual option

3 Objective-C is used for iOS development

Activities

1 Establish an Apple developer membership and download and install thedeveloper tools This is an important activity that you should completedbefore starting the next hour’s lesson (if you didn’t do so while following along

in this hour)

2 Review the resources available in the iOS Dev Center Apple has publishedseveral introductory videos and tutorials that supplement what you’ll learn inthis book

Trang 40

Introduction to Xcode and the iOS Simulator

What You’ll Learn in This Hour:

How to create new projects in Xcode

Code editing and navigation features

Where to add classes and resources to a project

How to modify project properties

Compiling for iOS devices and the iOS Simulator

How to interpret error messages

Features and limitations of the iOS Simulator

The core of your work in the Apple Developer Suite will be spent in two applications:Xcode and the iOS Simulator These apps provides all the tools that you need to design,program, and test applications for the iPhone and iPad And, unlike other platforms, theApple Developer Suite is entirely free

This hour walks you through the basics you need to work with Xcode’s code-editing toolsand the iOS Simulator, and you get some hands-on practice working with each We coverXcode’s interface-creation tools in Hour 5, “Exploring Xcode’s Interface Builder.”

Using Xcode

When you think of coding—actually typing the statements that will make your iDevicemeet Apple’s “magical” mantra—think Xcode Xcode is the IDE, or integrated develop-ment environment, that manages your application’s resources and lets you edit the codeand user interface that ties the different pieces together

Ngày đăng: 22/03/2014, 21:20

TỪ KHÓA LIÊN QUAN