Skip to main content
main-content

Über dieses Buch

This book will give you a thorough grounding in the principal and supporting tools and technologies that make up the Xcode developer tools suite. Apple has provided a comprehensive collection of developer tools, and this is the first book to examine the complete Apple programming environment for both Mac OS X and iPhone.

Comprehensive coverage of all the Xcode developer tools Additional coverage of useful third-party development tools Not just a survey of features, but a serious examination of the complete development process for Mac OS X and iPhone applications

Inhaltsverzeichnis

Frontmatter

Introducing Xcode Tools for Mac OS X and the iPhone

Chapter 1. Introducing Xcode Tools for Mac OS X and the iPhone

Abstract
Since you are reading this, I hope that you are doing so on the way to the checkout at your bookstore! Or perhaps you have just opened a packaging from the mail. Either way, you have a great journey ahead of you, and I hope that this book fulfills the hopes you have for it.
Ian Piper

The Core Xcode Toolset

Frontmatter

Chapter 2. Introducing the Xcode Workspace

Abstract
OK, you’re persuaded. Apple’s world-class development tools are within your grasp, and Xcode is worth a serious look. It’s time to set it up on your computer.
Ian Piper

Chapter 3. Interface Builder

Abstract
If you have used other software development systems like REALbasic, or written code on other platforms, chances are you have used a system that integrates the coding and interface design in one holistic, coordinated user interface (usually called an integrated development environment, or IDE). REALbasic and Visual Studio on the Windows .NET platform are good examples of this kind of system. One of the most engaging features of such systems is the way they link events on the objects in your user interface to the underlying code. For example, you may create a user interface in REALbasic that shows a window with a button, a textbox, and a label. Then you double-click on the button and type in the code for the Action method for that button. Lo and behold, you have a simple Hello World application. It all happens in one application—in one window, in fact. This approach can be a great way to get started on code development, helping you to connect the events occurring in your application with the visual objects that take part in those events.
Ian Piper

Chapter 4. Core iPhone Tools

Abstract
The most exciting platform in computing today-wow, that’s quite a claim. Chances are that if you are writing software on the Mac today, you are thinking about writing for the iPhone. The iPhone and its sibling, the iPod Touch, have created a huge amount of interest amongst both end users and developers. Currently (as of late 2009) there are over 100,000 applications available for this platform on the App Store. It’s not just the existing devices that cause a stir, either. Apple, as always, plays its cards close to its chest, but you can be sure it has big plans for its mobile computing platform. Yes, definitely the most exciting place to be writing software right now.
Ian Piper

Chapter 5. Frameworks in Xcode

Abstract
If you followed the examples in Chapter 4, you have already used Apple’s frameworks. In fact, you use Apple’s frameworks every time you use your Mac, since most of the software you use—including most of the software driving the user experience in Mac OS X—is built on them.
Ian Piper

Chapter 6. Model-View-Controller in Xcode

Abstract
The Model-View-Controller pattern (or MVC as it is more commonly known) is at the heart of modern object-oriented software development.
Ian Piper

Chapter 7. Debugging Your Xcode Projects

Abstract
No developer writes perfect code the first time-we’re all human. Even when the editor provides Code Sense to help you to get your syntax right, you are going to make the occasional slip. You will also make mistakes in your code design and structure. So when you get bugs in your code, you need good support tools to help you to expunge them. In this short chapter, you will cover Xcode’s tools for tracking and debugging your code.
Ian Piper

Chapter 8. Xcode Documentation

Abstract
Documentation—ugh. For many developers, it’s all about writing great applications; wading through reams of documentation is the last thing on your mind. Xcode’s documentation is a strange mixture of comprehensiveness and complexity. The answer you are looking for is almost certainly in there somewhere, but locating it can be a challenge.
Ian Piper

Chapter 9. Developing an Application

Abstract
So far you have covered the core tools, technologies, and techniques you need to get moving in Cocoa development in Xcode. It’s time to put these together and apply them to a real problem. In this chapter you are going to run through the process of developing a complete working application-from the initial planning, through data modeling and interface design, through to the building and enhancement of the program. Even if you are an experienced developer, I recommend that you work through this example-you will be returning to it later in the book as you explore the Xcode tools further.
Ian Piper

Enhancing Development with Companion Tools

Frontmatter

Chapter 10. Source-Code Management with Subversion

Abstract
If you have ever developed software as part of a team, you probably have encountered version control (or revision control, or source-code management) systems. Systems like this keep track of the code and ensure that changes are recorded and synchronized to all of the team members who need to know about them. They enable teams to try out alternative branches of code development and to roll back to earlier versions if things are going wrong.
Ian Piper

Chapter 11. Unit testing in Xcode

Abstract
If you have spent any significant time in the UK, you may well have encountered Marmite. Marmite is—well, I’d hesitate to call it a food, but it is a substance consumed, usually spread on toast at breakfast time, and almost unknown beyond Britain. If you haven’t come across it, there are two things you need to know about Marmite: first, it is generally accepted that consuming it at all is an illustration of British eccentricity; and second, it is one of those things that you either love or hate. There is little ambivalence in people’s attitude to its consumption.
Ian Piper

Chapter 12. Monitoring, Analysis, and Performance Tools

Abstract
This chapter takes a look under the covers at some tools that allow you to understand how your application is performing and where you might be able to improve things.
Ian Piper

Supporting Tools

Frontmatter

Chapter 13. Support Tools for the Busy Developer

Abstract
Take a look in the Xcode Developer Tools folder and you will see quite a collection of programs, most of which we haven’t covered. And indeed from talking with other Mac developers it seems that many of these hardly get used at all. Some, such as the OpenGL graphics audio tools, are specialist utilities that are of interest mainly to developers working in these areas. Others, like USB Prober, IORegistryExplorer, Syncrospector, and iSync Plug-in Maker are advanced utilities aimed at developers who are writing software to communicate or synchronize with external hardware. Those utilities are unlikely to be of interest to you as a learning developer and I won’t be covering them here. Still others are what I call Cinderella utilities: high-quality, useful programs that somehow don’t get the exposure that they deserve.
Ian Piper

Chapter 14. Usability and Accessibility

Abstract
Once upon a time I worked in a large corporation in the (at that time) novel capacity of a usability specialist. I had a hard time of it. For one thing, the very idea of building systems whose behaviors conformed to common standards was novel. PC software was gradually emerging from the prehistory of the DOS command line and characterbased user interfaces into the comparatively modern world of Windows. In those days the use of a graphic user interface per se was deemed to make a program user-friendly. Often repurposing an application for Windows involved literally presenting the characterbased interface, together with its bespoke key controls, into a window. I frequently had conversations with developers whose aim was to focus on the features of the software, with the only nod toward usability being an offer to “make it look pretty at the end.” Convincing such developers that in fact usability is a systemic issue—that you should design your software from top to bottom to be usable, rather than putting lipstick on a pig-was a long and tough task.
Ian Piper

Chapter 15. Packaging and Distribution

Abstract
There comes a point where you have done all of the testing you can do. All of the bugs you know about are squashed, the icon has been polished to perfection, the help files written. It’s time to share your product with an eager and soon-to-be grateful public.
Ian Piper

Backmatter

Weitere Informationen

Premium Partner

    Bildnachweise