How we did it:
David Mark, Jeff LaMarche, Jack Nutting
Beginning iPhone 4 Development is here! The authors of the bestselling Beginning iPhone 3 Development are back, with the same excellent material completely updated for iOS 4 and written from the ground up using the latest version of Apple's Xcode 3. All source code has been updated to use the latest Xcode templates and current APIs, and all-new screenshots show Xcode 3 in action. Beginning iPhone 4 Development is a complete course in iOS 4 apps development. You’ll master techniques that work on iPhone, iPad, and iPod touch. We start with the basics, showing you how to download and install the tools you'll need, and how to create your first simple application. Next you’ll learn to integrate all the interface elements iOS users have come to know and love, such as buttons, switches, pickers, toolbars, and sliders. You’ll master a variety of design patterns, from the simplest single view to complex hierarchical drill-downs. The confusing art of table building will be demystified, and you’ll learn techniques to save and retrieve your data using SQLite, iPhone’s built-in database management system and Core Data, the standard for persistence that Apple brought to iOS with the release of SDK 3. And there’s much more! You’ll learn to draw using Quartz 2D and OpenGL ES, add multitouch gestural support (pinches and swipes) to your applications, and work with the camera, photo library, accelerometer, and built-in GPS. You’ll discover the fine points of application preferences and learn how to localize your apps for multiple languages. You'll also learn how to use the new concurrency APIs included in iOS 4, and make robust multithreaded applications using Grand Central Dispatch. The iPhone 4 update to the best-selling and most recommended book for Cocoa touch developers Written in an accessible, easy-to-follow style Full of useful tips and techniques to help you become an iOS pro NOTE: For iPhone 4S or iOS 5 apps development, please instead check out the next edition of this book, Beginning iOS 5 Development - now available. What you’ll learn Everything you need to know to develop your own best-selling iPhone and iPad apps Best practices for optimizing your code and delivering great user experiences How to create “universal” apps for both iPhone and iPad Who this book is for Anyone who wants to start developing for iPhone, iPad, and iPod touch. You can discover more about this book, download source code, and find support forums at the book's companion site, at www.iphonedevbook.com. Table of Contents Welcome to the Jungle Appeasing the Tiki Gods Handling Basic Interaction More User Interface Fun Autorotation and Autosizing Multiview Applications Tab Bars and Pickers Introduction to Table Views Navigation Controllers and Table Views iPad Considerations Application Settings and User Defaults Basic Data Persistence Grand Central Dispatch, Background Processing, and You Drawing with Quartz and OpenGL Taps, Touches, and Gestures Where Am I? Finding Your Way with Core Location Whee! Gyro and Accelerometer! iPhone Camera and Photo Library Application Localization Where to Next?
David Mark, Jeff LaMarche
Are you a programmer looking for a new challenge? Does the thought of building your very own iPhone app make your heart race and your pulse quicken? If so, Beginning iPhone 3 Development: Exploring the iPhone SDK is just the book for you. Updated and revised for iPhone SDK 3, many of the discussions in the original book have been clarified to make some of the more complex topics easier to understand. In addition, all of the projects have been rebuilt from scratch using the SDK 3 templates. Assuming only a minimal working knowledge of Objective-C, and written in a friendly, easy-to-follow style, this book offers a complete soup-to-nuts course in iPhone and iPod touch programming. The book starts with the basics, walking you through the process of downloading and installing Apple's free iPhone SDK, and then stepping you though the creation of your first simple iPhone application. From there, you'll learn to integrate all the interface elements iPhone users have come to know and love, such as buttons, switches, pickers, toolbars, and sliders. You'll master a variety of design patterns, from the simplest single view to complex hierarchical drill-downs. The confusing art of table building will be demystified, and you'll see how to save your data using the iPhone file system. You'll also learn how to save and retrieve your data using SQLite, iPhone's built-in database management system. In addition, you'll also learn about Core Data, an important persistence mechanism that has just been added with SDK 3. And there's much more! You'll learn to draw using Quartz 2D and OpenGL ES, add multitouch gestural support (pinches and swipes) to your applications, and work with the camera, photo library, accelerometer, and built-in GPS. You'll discover the fine points of application preferences and learn how to localize your apps for multiple languages. You can discover more about this book, download source code, and find support forums at the book's companion site, at www.iphonedevbook.com. The iPhone 3 update to the best-selling and most recommended book for iPhone developers Packed full of tricks, techniques, and enthusiasm for the new SDK from a developer perspective The most complete, useful, and up-to-date guide to all things having to do with Apple's iPhone SDK What you’ll learn Everything you need to know to develop your own best-selling iPhone apps Best practices for optimizing your code and delivering great user experiences Who this book is for Anyone who wants to start developing for iPhone and iPod touch What's changed from the first edition of Beginning iPhone Development All code samples have been updated to follow current Apple coding conventions The autorotation code has been updated to use the new single-step fast autorotation instead of the original two-step method A new section has been added introducing Core Data, covering basic principles and showing how to build a simple Core Data application All the table view-related chapters have been updated to use table view cell styles. They've also been updated to use textLabel and detailTextLabel instead of the deprecated text property of the table view cell. All known errata have been corrected All projects have been rebuilt from scratch using the SDK 3.0 templates Many concepts have been clarified based on feedback and supplemented with information we've learned from another year of using the SDK Table of Contents Welcome to the Jungle Appeasing the Tiki Gods Handling Basic Interaction More User Interface Fun Autorotation and Autosizing Multiview Applications Tab Bars and Pickers Introduction to Table Views Navigation Controllers and Table Views Application Settings and User Defaults Basic Data Persistence Drawing with Quartz and OpenGL Taps, Touches, and Gestures Where Am I? Finding Your Way with Core Location Whee! Accelerometer! iPhone Camera and Photo Library Application Localization Where to Next?
Scott Knaster, Mark Dalrymple
Take your coding skills to the next level with this extensive guide to Objective–C, the native programming language for developing sophisticated software applications for Mac OS X. Objective–C is a powerful, object–oriented extension of C, making this book the perfect follow–up to Dave Mark's bestselling Learn C on the Mac, Mac OS X Edition. Whether you're an experienced C programmer or you're coming from a different language such as C++ or Java, leading Mac experts Mark Dalrymple and Scott Knaster show you how to harness the powers of Objective–C in your applications! A complete course on the basics of Objective–C using Apple's free Xcode tools An introduction to object–oriented programming Comprehensive coverage of inheritance, composition, object initialization, categories, protocols, memory management, and organizing source files A brief tour of Cocoa's foundation framework and AppKit A helpful “learning curve” guide for non–C developers
David Gelphman, Bunny Laden
An in-depth overview of the new sophisticated graphics system of Mac OS X Tiger explains how to exploit the latest state-of-the-art graphics of OS X in a variety of applications, providing an introduction to 2D graphics concepts and tips on working with PDF documents, bitmap graphics, and text. Original. (Intermediate)
As iOS apps become increasingly complex and business-critical, iOS developers must ensure consistently superior code quality. This means adopting best practices for creating and testing iOS apps. Test-Driven Development (TDD) is one of the most powerful of these best practices. Test-Driven iOS Development is the first book 100% focused on helping you successfully implement TDD and unit testing in an iOS environment. Long-time iOS/Mac developer Graham Lee helps you rapidly integrate TDD into your existing processes using Apple's Xcode 4 and the OCUnit unit testing framework. He guides you through constructing an entire Objective-C iOS app in a test-driven manner, from initial specification to functional product. Lee also introduces powerful patterns for applying TDD in iOS development, and previews powerful automated testing capabilities that will soon arrive on the iOS platform. Coverage includes Understanding the purpose, benefits, and costs of unit testing in iOS environments Mastering the principles of TDD, and applying them in areas from app design to refactoring Writing usable, readable, and repeatable iOS unit tests Using OCUnit to set up your Xcode project for TDD Using domain analysis to identify the classes and interactions your app needs, and designing it accordingly Considering third-party tools for iOS unit testing Building networking code in a test-driven manner Automating testing of view controller code that interacts with users Designing to interfaces, not implementations Testing concurrent code that typically runs in the background Applying TDD to existing apps Preparing for Behavior Driven Development (BDD) The only iOS-specific guide to TDD and unit testing, Test-Driven iOS Development covers both essential concepts and practical implementation.
Ole Henry Halvorsen, Douglas Clarke
OS X and iOS Kernel Programming combines essential operating system and kernel architecture knowledge with a highly practical approach that will help you write effective kernel-level code. You’ll learn fundamental concepts such as memory management and thread synchronization, as well as the I/O Kit framework. You’ll also learn how to write your own kernel-level extensions, such as device drivers for USB and Thunderbolt devices, including networking, storage and audio drivers. OS X and iOS Kernel Programming provides an incisive and complete introduction to the XNU kernel, which runs iPhones, iPads, iPods, and Mac OS X servers and clients. Then, you’ll expand your horizons to examine Mac OS X and iOS system architecture. Understanding Apple’s operating systems will allow you to write efficient device drivers, such as those covered in the book, using I/O Kit. With OS X and iOS Kernel Programming, you’ll: Discover classical kernel architecture topics such as memory management and thread synchronization Become well-versed in the intricacies of the kernel development process by applying kernel debugging and profiling tools Learn how to deploy your kernel-level projects and how to successfully package them Write code that interacts with hardware devices Examine easy to understand example code that can also be used in your own projects Create network filters Whether you’re a hobbyist, student, or professional engineer, turn to OS X andiOS Kernel Programming and find the knowledge you need to start developing What you’ll learn OS X and iOS common core architecture How to write extremely efficient code by exploiting kernel details Coding kernel-level extensions How to write device drivers How to program the I/O Kit framework Key mobile device topics like power management drivers and video capture modules To understand OS X memory management and threads To parse kernel debug messages and package projects ready for deployment Who this book is for This book is suited for: Intermediate and advanced iPhone and OS X programmers ready for the next step Kernel-level programmers interested in how OS X and iOS function Open source programmers with a background in Linux or BSD, OS X and iOS Programmers interested in application performance System administrators running OS X clusters Table of Contents Operating System Fundamentals Mac OS X and iOS Xcode and the Kernel Development Environment The I/O Kit Framework Interacting with Drivers from Applications Memory Management Synchronisation and Threading USB Drivers PCI and Thunderbolt Power Management Serial Port Drivers Core Audio Network Drivers Storage Drivers and Filesystems User-Space Drivers Debugging and Profiling Advanced Kernel Programming Deployment
Learn Objective-C for Java Developers will guide experienced Java developers into the world of Objective-C. It will show them how to take their existing language knowledge and design patterns and transfer that experience to Objective-C and the Cocoa runtime library. This is the express train to productivity for every Java developer who has dreamed of developing for Mac OS X or iPhone, but felt that Objective-C was too intimidating. So hop on and enjoy the ride! Provides a translation service that turns Java problem-solving skills into Objective-C solutions Allows Java developers to leverage their existing experience and quickly launch themselves into a new domain Takes the risk out of learning Objective-C What you’ll learn Apply Java experience to Objective-C and Cocoa Use elegant alternatives that increase productivity Maximize the powerfully unique constructs of Objective-C, like class clusters Think like an object-oriented C programmer to create more reusable code Use all of the things in Java and Objective-C that are actually quite similar, like MVC design patterns Learn how to do all of it within Apple's powerful Xcode programming environment using Cocoa frameworks Who this book is for Experienced Java developers interested in developing native applications for Apple's Mac OS X operating system, iPhone, and iPod touch. Table of Contents Introduction Java and C: Key Differences Welcome to Objective-C Creating an Xcode Project Exploring Protocols and Categories Sending Messages Making Friends with nil Strings and Primitive Values Garbage Collection Introspection Files Serialization Communicating Near and Far Exception Handling Threads Collection Patterns Delegation Pattern Provider/Subscriber Pattern Observer Pattern Model-View-Controller Pattern Lazy Initialization Pattern Factory Pattern Singleton Pattern Memory Management Mixing C and Objective-C Runtime
Augmented reality takes the real world and through the use of graphics, sound and other effects allows you to enhance the environment. It makes a game more real. Your social media app puts you where want to be or go. Pro iOS 5 Augmented Reality walks you through the foundations of building an augmented reality application for the iPhone or iPad. From using MapKit, to the accelerometer and magnetometer, to integrating facial recognition and Facebook data, you'll learn the building blocks of creating augmented reality applications. Case studies are included in this one-of-a-kind book and you'll learn how to create augmented reality apps that unleash the full potential of the on-board sensors and camera. This book complements other iOS game or social media apps development books available from Apress. After reading Pro iOS 5 Augmented Reality, you'll be able to build augmented reality rich media apps or integrate all the best augmented reality techniques and tools into your existing apps. What you’ll learn The differences in hardware sensors, cameras and more between the iPhone 4 and iPhone 4S, iPod touch, iPad and iPad 2 How to use MapKit and integrate it into your app How to play and record sound within an augmented reality app How to use the iPhone or iPad camera and video How to program against the accelerometer and gyroscope to detect movement and the orientation of the iPhone or iPad How to access and use the information from the magnetometer (compass) How to use cocos2D to overlay a heads-up display on the camera view How to integrate facial recognition into your app How to build augmented reality feature-rich enterprise game and Facebook apps Who this book is for This book is for iOS developers familiar with iOS programming, but new to the camera, accelerometer, magnetometer and building augmented reality applications in general. Table of Contents Introduction Hardware Comparisons Location Services iOS Sensors Sound and User Feedback Camera and Video Using cocos2D for AR Building a cocos2D AR Game Third-party AR SDKs Building a Marker-based AR App Using OpenGL Building a Social AR App OpenCV and Facial Recognition Building a Facial-recognition AR App
Move into iOS development by getting a firm grasp of its fundamentals, including the Xcode IDE, the Cocoa Touch framework, and Swift, Apple's new programming language. Learn Swift's object-oriented concepts, understand how to use Apple's development tools, and discover how Cocoa provides the underlying functionality iOS apps need to have.
Tim Isted, Tom Harrington
Today, virtually every non-trivial iPhone and iPad app must manage data—quickly, smoothly, reliably, and with minimal impact on the CPU to conserve battery life. Core Data, Apple’s ready-made data persistence layer, can help you achieve all these goals. In Core Data for iOS, two leading iOS developers teach you the entire Core Data framework from the ground up. Writing for intermediate-to-advanced iOS developers, Tim Isted and Tom Harrington thoroughly explain how Core Data is used on iOS devices, introduce each of its primary classes, and show how they interact to provide amazing functionality with minimal configuration. You’ll learn how to store, fetch, and validate data; provide it efficiently to views; and much more. Isted and Harrington first give you a firm grounding in the technology, and then present real-world examples. They present multiple sample projects, as well as a start-to-finish, chapter-length case study. Coverage includes • Understanding Core Data’s features, classes, and interactions • Using Core Data in MVC-based iOS app development • Mapping relational data to object models, and building them with Xcode 4’s Data Modeler • Working with managed objects and using UITableView to display them • Creating predicates to match numbers, data, and objects • Maintaining compatibility across versions of an app’s data model • Tracking managed object contexts across view controllers • Using Core Data’s automatic Undo functionality • Integrating abstract entities, entity inheritance, and multiple view controllers into a complete app • Optimizing for iOS devices’ tight memory limits • Diagnosing and fixing common Core Data problems Introducing Addison-Wesley’s new Core Frameworks Series, written for experienced iOS developers by world-class Mac and iOS developers, these are the first comprehensive, code-rich reference guides to Apple’s Core Frameworks.
This project-based book teaches app development using Apple Xcode 4 suite of tools • •Complete guide to using Xcode 4 to build iOS and Mac OS X applications. •Accessible project-based approach and full color layout make learning the Xcode tools a breeze. •Expert author with tons of practical experience. Xcode is Apple's suite of tools for developing Mac OS X and iOS applications. New features in Xcode 4.0 are driving developers to switch to the new version and start building applications. Xcode is the complete toolset for building Mac OS X and iOS applications and with Xcode 4, the tools have been redesigned to be faster, easier to use, and more helpful than ever before. The Xcode IDE understands a developer's project every detail, identifies mistakes in both syntax and logic, and will even fix the code. Xcode 4 has a brand new user interface, built upon proven technologies that Apple itself uses to build Mac OS X and iOS, and that have produced over a quarter million Mac OS X and iOS apps. This project-based book introduces readers to Apple's development environment. The book is aimed at new Mac OS X and iOS developers and assumes the reader is familiar with programming and object-oriented concepts. The book starts at the basics--how to download, install, and start using Xcode-- and moves to a detailed look at building and running applications. The last part of the book covers more advanced topics, such as testing, debugging, and source-code management. With the book's approach, readers will be able to take the projects they build during the book and adapt the projects to their own projects.
Presents twenty-four lessons on developing applications for the iPhone and iPad, and includes information on navigating the development environment, building advanced user interfaces, and integrating online services.
Boisy G. Pitre
LEARNING A NEW PROGRAMMING LANGUAGE can be daunting. With Swift, Apple has lowered the barrier of entry for developing iOS and OS X apps by giving developers an innovative new programming language for Cocoa and Cocoa Touch. If you are new to Swift, this book is for you. If you have never used C, C++, or Objective-C, this book is definitely for you. With this handson guide, you'll quickly be writing Swift code, using Playgrounds to instantly see the results of your work. Author Boisy G. Pitre gives you a solid grounding in key Swift language concepts--including variables, constants, types, arrays, and dictionaries--before he shows you how to use Swift's innovative Xcode integrated development environment to create apps for iOS and OS X. THIS BOOK INCLUDES: Detailed instruction, ample illustrations, and clear examples Real-world guidance and advice Best practices from an experienced Mac and iOS developer Emphasis on how to use Xcode, Playgrounds, and the REPL COMPANION WEBSITE: www.peachpit.com/swiftbeginners includes additional resources.