Synopses & Reviews
"Great for beginners -- even if you don't know object-oriented programming, you can learn from examples on the 'Net and be on your way very soon. You will be able to confidently build apps that rival the ones included by Apple itself."-- Josh Content, iPhone Developer
Developers everywhere are eager to create applications for the iPhone, and many of them prefer the open source, community-developed tool chain to Apple's own toolkit. In this new edition of iPhone Open Application Development, author Jonathan Zdziarski covers the latest version of the open toolkit -- now updated for Apple's iPhone 2.x software and iPhone 3G -- and explains in clear language how to create applications using Objective-C and the iPhone API.
Zdziarski, who cracked the iPhone code and built the first fully-functional application with the open toolkit, includes detailed recipes and complete examples for graphics and audio programming, games programming with the CoreSurfaces and CoreImage interfaces, working with iTunes, and using sensors. With the open toolkit and this book, you can build iPhone applications that:
- Display status bars, preference tables, and other standard elements of the iPhone user interface
- Play pre-recorded files or program-generated sounds
- Read and write plain text files and HTML files, including pages from the Web, and control display elements, such as scrollbars
- Read and respond to changes in orientation when the user turns the phone around
And more. The first edition of this book developed an instant following and became the center of a movement. The second edition of iPhone Open Application Development will make this open source toolkit an indispensable part of iPhone application development.
About the Author
Jonathan Zdziarski is better known as the hacker "NerveGas" in the iPhone development community. His work in cracking the iPhone helped lead the effort to port the first open source applications, and his book, iPhone Open Application Development, taught developers how to write applications for the popular device long before Apple introduced its own SDK. Prior to the release of iPhone Forensics, Jonathan wrote and supported an iPhone forensics manual distributed exclusively to law enforcement. Jonathan frequently consults law enforcement agencies and assists forensic examiners in their investigations. He teaches an iPhone forensics workshop in his spare time to train forensic examiners and corporate security personnel.
Jonathan is also a full-time research scientist specializing in machine learning technology to combat online fraud and spam, an effort that led him to develop networking products capable of learning how to protect customers. He is founder of the DSPAM project, a high-profile, next-generation spam filter that was acquired in 2006 by Sensory Networks, Inc. He lectures widely on the topic of spam and is a foremost researcher in the fields of machine-learning and algorithmic theory.
Jonathan's website is http://zdziarski.com.
Table of Contents
Preface; Audience for This Book; Organization of the Material; Conventions Used in This Book; Using Code Examples; Safari® Books Online; Legal Disclaimer; We'd Like to Hear from You; Acknowledgments; Chapter 1: Breaking Into and Setting Up the iPhone; 1.1 Jailbreak Procedures; 1.2 Installing Additional Unix Components; 1.3 Additional Resources; Chapter 2: Getting Started with Applications; 2.1 Anatomy of an Application; 2.2 Building the Free Tool Chain; 2.3 Building and Installing Applications; 2.4 Transitioning to Objective-C; Chapter 3: Introduction to UIKit; 3.1 Basic User Interface Elements; 3.2 Windows and Views; 3.3 The Most Useless Application Ever; 3.4 Deriving from UIView; 3.5 The Second Most Useless Application Ever; 3.6 Text Views; 3.7 Navigation Bars; 3.8 Transition Views; 3.9 Action Sheets; 3.10 Tables; 3.11 Status Bar Manipulation; 3.12 Application Badges; 3.13 Application Services; Chapter 4: Event Handling and Graphics Services; 4.1 Introduction to Geometric Structures; 4.2 Introduction to GSEvent; 4.3 Example: The Icon Shuffle; Chapter 5: Advanced Graphics Programming with Core Surface and Quartz Core; 5.1 Understanding Layers; 5.2 Screen Surfaces; 5.3 Layer Animation; 5.4 Layer Transformations; Chapter 6: Making Some Noise; 6.1 Core Audio: It's Great, but You Can't Use It; 6.2 Celestial; 6.3 Audio Toolbox; Chapter 7: Advanced UIKit Design; 7.1 Controls; 7.2 Preferences Tables; 7.3 Progress Indicators; 7.4 UIProgressBar: When Spinny Things Are Tacky; 7.5 Progress HUDs: When It's Important Enough to Block Stuff; 7.6 Image Handling; 7.7 Section Lists; 7.8 Pickers; 7.9 Date/Time Pickers; 7.10 Toolbars; 7.11 Creating a Toolbar; 7.12 Orientation Changes; 7.13 Web Document Views and Scrollers; Miscellaneous Hacks and Recipes; Dumping the Screen; Dumping the UI Hierarchy; Invoking Safari; Initiating Phone Calls; Vibrating; Transparent Views; Cover Flow-Style Album Flipping; Colophon;