You've got a solid knowledge of Objective-C, Cocoa Touch, and the tools that bring these technologies together to create incredible new iPhone applica- tions.. You understand the iPhone
Trang 1Where to Next?
ell, wow! You're still with us, huh? Great! It sure has been a long journey since that very first iPhone application we built together You've certainly come
a long way We'd love to tell you that you now know it all, but when it comes
to technology, and especially when it comes to programming, you never
know it all The programming language and frameworks we've been working with for the last 17 chapters are the end result of over 20 years of evolution And Apple engineers are feverishly working round the clock, thinking of that next cool new thing The iPhone platform has just begun to blossom There is
so much more to come
By making it through this book, you've built yourself a sturdy foundation
You've got a solid knowledge of Objective-C, Cocoa Touch, and the tools that bring these technologies together to create incredible new iPhone applica- tions You understand the iPhone software architecture, the design patterns that make Cocoa Touch sing In short, you are ready to chart your own course
We are so proud! So where to next?
Getting Unstuck
At its core, programming is about problem solving, about figuring things out
It's fun, and it’s rewarding like few things are But, at times, you will run up
against a puzzle that just seems insurmountable, a problem that just does not seem to have a solution
Sometimes, the answer just appears if you take a bit of time away from the
problem A good night's sleep or a few hours of doing something different can
often be all that is needed to get you through it Believe us; you can stare at the same problem for hours, overanalyzing and getting yourself so worked up that you miss an obvious solution
Trang 2CHAPTER 18: Where to Next?
And then there are times when even a change of scenery doesn’t help And in those situa-
tions, it’s good to have friends in high places The following sections outline some resources you can turn to when you're in a bind
Apple’s Documentation
Become one with Xcode’s documentation browser The documentation browser is a front end to a wealth of incredibly valuable sample source code, concept guides, API references, video tutorials, and a whole lot more There are few areas of the iPhone that you won't be able to learn more about by making your way through Apple’s documentation And if you get comfortable with Apple’s documentation, making your way through uncharted territo- ries and new technologies as Apple rolls them out will be easier
OTE
Xcode’s documentation browser takes you to the same information you can get to by going to Apple's
Developer Connection web site at http: //developer.apple.com
Mailing Lists
You might also want to sign up for these handy mailing lists:
http://lists.apple.com/mai Iman/1listinfo/cocoa-dev This moderately
high-volume list run by Apple is primarily about Cocoa for Mac OS X Because of the common heritage shared by Cocoa and Cocoa Touch, however, many of the people on
this list may be able to help you Make sure to search the list archives before asking your
question, though
http://lists.apple.com/mai lman/1listinfo/xcode-users Another list maintained
by Apple, this one is specific to questions and problems related to Xcode
http: //lists.apple.com/mai Iman/1listinfo/quartz-dev This is an Apple-maintained
mailing list for discussion of the Quartz 2D and Core Graphics technologies
Discussion Forums
These discussion forums allow you to post your questions to a wide range of forum readers: http://www iphonedevsdk com On this web forum, iPhone programmers, both new and experienced, help each other out with problems and advice
http: //discussions.apple.com/category.jspa?categoryID=164 This link con- nects you to Apple’s community forums for Mac and iPhone software developers
Trang 3http: //discussions.apple.com/category.jspa?categoryID=201 This one con-
nects to Apple’s community forums for discussing the iPhone
Web Sites
Visit these web sites for helpful coding advice:
http: //www iphonedevbook com This is the official web site for this book We will post errata as people report bugs and typos to us and maintain the most current version of
all book projects We'll also tell you what we've been working on lately and what we've
got in the works
http://www cocoadevcentral.com This portal contains links to a great many
Cocoa-related web sites and tutorials
http: //cocoaheads.org CocoaHeads is a group dedicated to peer support and promotion of Cocoa It focuses on local groups with regular meetings where Cocoa
developers can get together, help each other out, and even socialize a little bit There’s nothing better than knowing a real person who can help you out, so if there’s a Cocoa-
Heads group in your area, check it out If there’s not, why not start one?
http: //nscodernight.com NSCoder Nights are weekly, organized meetings where
Cocoa programmers get together to code and socialize Like CocoaHeads meetings, NSCoder Nights are independently organized local events
http: //cocoablogs.com This portal contains links to a great many blogs related to Cocoa programming
http://www iphonedevcentral org This web site is devoted to iPhone programming
tutorials
Blogs
If you still haven’t found a solution to your coding dilemma, you might want to read these blogs:
http: //theocacao.com This blog is maintained by Scott Stevenson, an experienced Cocoa programmer
http: //ww.wilshipley.com/blog/ Wil Shipley is one of the most experienced Objective-C programmers on the planet His Pimp My Code series of blog postings should be required reading for any Objective-C programmer
http: //rentzsch.com Wolf Rentzsch is an experienced, independent Cocoa program- mer and the founder of the C4 independent developers’ conference
Trang 4CHAPTER 18: Where to Next?
http: //chanson livejournal.com Chris Hanson works at Apple on the Xcode team,
and his blog is filled with great insight and information about Xcode and related topics
And If All Else Fails
Drop Dave and Jeff an e-mail at daveandjeff@i phonedevbook com This is the perfect place
to send e-mails about typos in the book or bugs in our code We can't promise to respond to
every e-mail, but we will read all of them Be sure to read the errata before clicking send And
please do write and tell us about the cool applications you develop
Farewell
We sure are glad you came along on this journey with us We wish you the best of luck and hope that you enjoy programming the iPhone as much as we do
Trang 5Index
#import statements, 257
#pragma directives, 157, 483-485
/* character, 475
*\ character, 475
(ellipsis), 58
abstract class, 239
accelerometer
accessing, 442-447
overview, 441
physics of, 441-442
Rolling Marble program, 452-460
ShakeAndBreak project, 447-452
accelerometer:didAccelerate: method, 443-447,
454
accessors, 35
accessory icons, 233
accessory view, 234
accessoryView property, 260
action argument, 266
action method, 39
action sheet, 81-84
actions
adding to view controllers, 34-41, 71-72,
106-108, 374-376
connecting, 73
declaring, 104-105, 151-152, 158-159
determining, 58, 71-76, 104
overview, 33-34
specifying, 50-52
actionSheet:didDismissWithButtonIndex:
method, 82-83
active controls, 55-56
Add Localization button, 485-486
Add submenu, 111
Add to Project setting, 24
additive primary colors, 366
addObserver:selector:name:object: method, 340
Adjust to Fit checkbox, 65
alerts, 79-84
Align Horizontal Center in Container option, 60
Alignment submenu, 60
allNames method, 219, 221-223, 225, 227 Alpha checkbox, 61
alpha component, 60, 367
altitude property, 432
animated parameter, 75-76
animation block, 101 Appkit framework, 21 Apple Human Interface Guidelines, 46 application constants, 371, 480-481
application localization, 473, 480-481, 490
application settings AppSettings application, 305-308 overview, 305
reading, 319-323 settings bundles adding to project, 309-310
child settings view, 317-319
multivalue field, 314-315 overview, 309
property list, setting up, 310-311 secure text field setting, 314 slider setting, 316-317 text field setting, 311-313 toggle switch setting, 315-316 user defaults, changing, 323-326 Application Support folder, 27 applicationDidFinishLaunching method, 44 applicationWillTerminate: method, 41, 336, 338,
340, 357 AppSettings application, 305-308 archiving
data objects, 343-344 model objects, 341-343 Archiving application, 345-350 atomically parameter, 334 Audio Toolbox framework, 182, 452 AudioServicesCreateSystemSoundID function,
182 AutocorrectionType key, 313 autorelease method, 191, 193-194, 198, 202-203, 212,218,223
autorotation autosize attributes, 90-96 overview, 89-91
restructuring view when rotated, 97-102
495