About WWDC 2000 -------------------------------------------------------------------------------- This DVD-ROM set contains digitized video of selected sessions from Apple's Worldwide Developers Conference held May 15 - May 19, 2000 in San Jose, CA. Sessions are presented in QuickTime video format, and can be accessed through the ÒClick to startÓ icon, or through the ÒSession MoviesÓ folder. A complete list of sessions on volumes contained in this set, and session descriptions, is provided below. Sessions are noted by number and title. For best viewing, the following system configuration is recommended: Power Macintosh, 32MB of RAM, 300MB of free space on hard disk drive, DVD-ROM drive, Mac OS 9.0 or later, QuickTime 4.0. QuickTime installers for both Macintosh and Windows are included in this set. Disk 1 ------------------------------------------------ 175 Mac OS X: Music and MIDI 176 Mac OS X Core Audio: Multichannel and Beyond 180 Java Overview 181 Introduction to Java on Mac OS X 182 Java: Getting the Best Performance 183 QuickTime for Java 184 Mac OS X: Java in Depth 186 OpenGL: A Technical Introduction 187 OpenGL on Mac OS X 188 OpenGL: Beyond Games 300 QuickTime: State of the Union 301 QuickTime Streaming Server 302 QuickTime: Server Techniques and Scripting 303 QuickTime: Streaming on the Web 304 QuickTime: Interactivity 305 QuickTime: The Road to Mac OS X Disk 2 ------------------------------------------------ 101 Open Source at Apple 102 Darwin Overview: The Open Source Foundation of Mac OS X 103 I/O Kit Overview 104 Mac OS X: File System 105 Mac OS X: Graphics Overview 106 Mac OS X: Kernel 110 Mac OS X: Quartz 111 Mac OS X: Printing 112 Mac OS X: Advanced Printing 120 Carbon Overview 121 Carbon Event Model: Basics 122 Carbon Event Model: Advanced 123 Carbon: Transitioning Your Application 124 Core Foundation: Basics 125 Core Foundation: Advanced 126 Cocoa Overview 127 Cocoa Update Disk 3 ------------------------------------------------ 128 Cocoa in Depth 130 Carbon: Low Level 140 Aqua Overview 142 High Level Toolbox: Adopting the Aqua Interface 143 High Level Toolbox: Carbon Enhancements I 144 Mac OS X: Application Packaging and Document Typing 145 Apple Help on Carbon and Cocoa 146 High Level Toolbox: DataBrowser 147 High Level Toolbox: Icon Services and Aqua 148 High Level Toolbox: Carbon Enhancements II 149 High Level Toolbox: Navigation Services 154 AppleScript and Frameworks 155 Text on Mac OS 156 Mac OS X: Font Management 157 Mac OS X: Localization 158 Apple Localization Tools 160 Mac OS Networking Overview 202 FireWire: Now and in the Future 203 FireWire in Depth 204 USB: Now and in the Future Disk 4 ------------------------------------------------ 191 Introducing the New Project Builder 192 Transitioning to the New Project Builder 193 Using Interface Builder 195 Apple's Performance Tools for Mac OS X 196 Debugging Applications on Mac OS X 400 WebObjects: State of the Union 401 WebObjects: Technical Overview 402 WebObjects Builder: Designing Dynamic HTML Components 403 WebObjects: Persistent Object Modeling with EOModeler 404 WebObjects: Deploying Applications 405 WebObjects: Rapid Development with Direct to Web 406 WebObjects: Rapid Development with Direct to Java Client 407 WebObjects: EJB 408 WebObjects: Converting Objective-C Applications to Java 409 WebObjects: Security 410 WebObjects: Optimization 411 WebObjects: Integrating Client-Side Technologies 412 WebObjects: EOF Caching and Synchronizatio Disk 5 ------------------------------------------------ 162 Mac OS X: Server Services 165 Mac OS X: Directory Services 166 Mac OS X: Network Services Location 167 URL Access 168 Keychain 413 WebObjects: XML 414 WebObjects: Performance Metrics 415 WebObjects: Advanced EOF 416 WebObjects: Designing Reusable Components 417 WebObjects: Building Large-Scale Applications WWDC Sessions ------------------------------------------------ Mac OS Building on the single OS strategy presented at WWDC 1999, Apple takes developers to the next level by providing the information necessary to create compelling Mac OS X applications. 101 Open Source at Apple An update on Apple's commitment to the Open Source community, covering the status and plans for Apple's Open Source projects including Darwin OS, Darwin Streaming Server, and OpenPlay/NetSprocket, and highlight the developer opportunities they provide. 102 Darwin Overview: The Open Source Foundation of Mac OS X This session is a high-level overview of the Core OS portion of Mac OS X, Darwin. It provides an introduction to each of the subsystems and how they are integrated to provide a strong, flexible foundation for Mac OS X applications. 103 I/O Kit Overview I/O Kit, the Mac OS X driver model, provides an object-oriented architecture to enable easier driver development than ever before. Because the I/O kit provides the basic services and functionality, you can focus on the functionality that makes your device unique. Learn the components of an I/O Kit driver, how they are dynamically loaded, and how to begin making your peripherals work with Mac OS X. 104 Mac OS X: File System Mac OS X has an extensible file system architecture that allows developers to add file systems or extend a file system's functionality more easily than was previously possible. Get an overview of the Mac OS X file system and find out how you can take advantage of it to create better solutions for your customers. 105 Mac OS X: Graphics Overview Apple continues its graphics industry leadership by integrating industry standards such as OpenGL(r) and QuickTime into the OS. With Mac OS X, Apple incorporates another critical standard, PDF, into Quartz, the new innovative graphics model of Mac OS X. View this session to get an introduction and high-level overview of this new architecture. 106 Mac OS X: Kernel The Mach kernel is the heart of Mac OS X. In this session we shed light on the kernel basics by discussing the services it provides, such as memory management and interprocess communications. 110 Mac OS X: Quartz This session presents the specific functionality of Quartz, Apple's new low-level 2D drawing model for Mac OS X. We discuss guidelines for when Quartz should and should not be used, as well as details of the Quartz APIs. 111 Mac OS X: Printing The new print architecture of Mac OS X provides greater flexibility and control over printing, while providing a simplified user interface. This session presents an overview of this new architecture, the services it provides, and details on adopting it. 112 Mac OS X: Advanced Printing This session covers the advanced features of the Mac OS X print architecture and how applications can create custom print interfaces and take control of the printing process. 120 Carbon Overview Learn how Carbon preserves your investment in Mac OS APIs while enhancing your application with Mac OS X features such as the Aqua user interface, protected memory, and preemptive multitasking. This overview will help you determine which sessions will be most valuable to your product. 121 Carbon Event Model: Basics This session gives an overview of Carbon Events, a new event-dispatching model used in many parts of the Mac OS. Adoption of this new model can significantly improve your application's performance, as well as simplify your source. 122 Carbon Event Model: Advanced This session covers the advanced features of Carbon Events. Find out how to design your application to take full advantage of this new event model. 123 Carbon: Transitioning Your Application Modifying your application to use Carbon is a simple tune-up, but there are some things you can do to make it even easier. View this session for detailed information on taking the first steps. 124 Core Foundation: Basics Core Foundation provides a rich set of C APIs for strings, collections, user preferences, property lists, plug-ins, XML handling, and more. These APIs are designed with performance, consistency, and portability in mind, and are available in the Carbon API set. This session covers Core Foundation fundamentals, conventions, and paradigms, as well as the basic set of services and APIs. 125 Core Foundation: Advanced This session delves into the rich set of services available from the Core Foundation APIs such as bundles, plug-ins, XML, and preferences management. 126 Cocoa Overview This session provides an overview of the powerful, object-oriented Cocoa APIs for creating full-featured desktop applications for Mac OS X. The Cocoa APIs range from low-level utility, system interaction, internationalization, Internet, and platform independence classes to a rich set of user interface widgets, including a powerful and extensible text system. 127 Cocoa Update Learn what's new in Cocoa software. This session includes a discussion of changes relevant to Aqua, as well as other new user- and developer-focused features. 128 Cocoa in Depth This session provides an in-depth discussion of Cocoa topics, such as text, document classes, scripting, localization, Java, and Carbon interaction. 130 Carbon: Low Level Apple engineers share a real-world understanding of how Carbon works to fine-tune your product. Issues concerning threading, memory management, performance, and file management are discussed. 140 Aqua Overview Mac OS X takes the graphical user interface to the next level of computing with Aqua. In this session, see brand new Aqua features and learn how to exploit these features in your products. 142 High Level Toolbox: Adopting the Aqua Interface This session provides an in-depth discussion about how your products should change to take advantage of Aqua. We cover control metrics, menu layout, window positioning, and interacting with the Dock. New features such as Sheets and the new print dialogs will make your applications truly Aqua-savvy. This is a must-view session if you want your application to deliver a great user experience under Aqua. 143 High Level Toolbox: Carbon Enhancements I This session describes changes and enhancements to the High Level Toolbox for Carbon. This session is an absolute must if you are Carbonizing your application. We discuss better control creation, dynamic menus, and new APIs such as Help Tags, as well as basic window layering, control embedding, and flavored scrap support. Omit final sentence. 144 Mac OS X: Application Packaging and Document Typing This session provides essential information about application packaging and document binding on Mac OS X. Learn about packages and localization; the desktop database file replacement; how to package your application; and how to specify type, creator, and mime types. Learn how the Finder binds documents to applications, new file-naming conventions, new APIs for accessing package contents, and how to handle resources in dataforks/file-mapped resources. 145 Apple Help on Carbon and Cocoa HTML-based Apple Help is the help system for Mac OS X applications. Learn how to create HTML-based help content for your applications and see how easy it is to complement with QuickTime and AppleScript. Get tips and tricks from Apple engineers, gain insights into future directions, and learn about the HTMLRenderingLib. 146 High Level Toolbox: DataBrowser Learn how DataBrowser enables your application to present data as the Finder does, simplifying your application development and delivering a more consistent user experience. Implement views and highly customizable lists with variable row heights and cells that contain text, icons, checkboxes, and progress bars. 147 High Level Toolbox: Icon Services and Aqua This session provides an overview of Icon Services and describes new features, how they work under Aqua, and how they are integrated with the Dock. High-fidelity icons figure prominently on Mac OS X, and we cover how to create and access them, as well as new UI guidelines, new and existing APIs, and icon variants. 148 High Level Toolbox: Carbon Enhancements II This session covers in-depth High Level Toolbox topics such as window buffering, advanced window positioning and layering, Window Manager Port replacement functionality, dialog item manipulation APIs, Unicode support, custom defprocs, and more. If you're a Carbon developer who uses, or wants to use, the toolbox in any of these ways, you need to view this session. 149 High Level Toolbox: Navigation Services This session provides detailed information about Navigation Services, the modern set of file selection dialogs for Mac OS, which has been greatly enhanced for Mac OS X and Aqua. Learn about new features, behavioral differences between Mac OS 9 and Mac OS X, how to provide Unicode compliance and long file name support, and how to customize Save and Open dialogs. 154 AppleScript and Frameworks Want to make your application scriptable, but can't figure out how? Learn how to use Metrowerks PowerPlant and other frameworks to make your application scriptable. 155 Text on Mac OS If your product displays text, this session is crucial to your understanding of how you can edit, process, and draw text using Apple technologies. Learn about MLTE, our Unicode editing engine of the future, Apple's Unicode drawing engine, text input, character set conversion, and international utilities. 156 Mac OS X: Font Management Learn about the new facilities for controlling and managing fonts on Mac OS X. As reliable document exchange becomes more important, these technologies become more crucial to your products. We provide an overview of the new Font Manager, the overall font architecture, and how fonts will be organized and accessed in the different Mac OS X stacks. 157 Mac OS X: Localization Mac OS X makes it dramatically easier to localize your products. Learn how to work with application packages to take advantage of the powerful, modern framework for localizing your application. 158 Apple Localization Tools Apple is creating new and revised tools for localizing your product on Mac OS, making it easier than ever to broaden your markets globally. Learn about the powerful new library for working with all types of localizable data, as well as the new revision of AppleGlot. 160 Mac OS Networking Overview This session presents the details of the networking services and utilities in future releases of Mac OS 9 and Mac OS X. Additional topics include PPC-over-IP, DHCP improvements, Remote Access, Network Setup, and improved stability and performance. Digital Media QuickTime has long been recognized as a de facto standard for digital media, and Apple is opening new worlds of opportunity for developers by providing an open-source, standards-based Internet streaming solution. Find out how the plug-in architecture allows quick and easy extension of the QuickTime Streaming Server functionality. 175 Mac OS X: Music and MIDI This session covers the new system-level MIDI services for Mac OS X. We provide an in-depth look at the new QuickTime Music Architecture, which features sequencing services, MusicDevice architecture, and the Downloadable Sounds (DLS) Toolbox. 176 Mac OS X Core Audio: Multichannel and Beyond This session presents a roadmap to the low-level application audio services available for Mac OS X. Topics range from direct manipulation of hardware features to finding devices and streaming audio to them. We discuss performance issues such as threading, memory management, and synchronization. We also present an update on the Sound Manager, including the recent API changes and Carbon support. 180 Java Overview This session covers Apple's directions for Java on the Mac OS. We discuss Mac OS Runtime for Java (MRJ) releases for classic Mac OS, such as MRJ 2.2, as well as the plans for Mac OS X Java. 181 Introduction to Java on Mac OS X This session covers the basics of developing with Java on Mac OS X. This includes an overview of the Java platform on Mac OS, development tools (command-line tools, IDEs, and debugging tools), issues related to bringing applications from MRJ 2.2 to Mac OS X, and integration issues with Carbon and Cocoa on Mac OS X. 182 Java: Getting the Best Performance This session teaches you how to get the best performance from your Macintosh-based Java application. Topics include advances in virtual machine (VM) technology, graphics and human interface (HI) performance, and coding strategies and styles for improving performance. 183 QuickTime for Java This session discusses techniques to integrate Java and QuickTime to provide your product with interesting and powerful capabilities. Learn how to use QuickTime for Java to develop on any QuickTime-supported OS platform. 184 Mac OS X: Java in Depth This session details the differences between Java development on Mac OS 9 and Mac OS X, including application embedding issues in Carbon with Java, JDirect 3, bridging technologies, and other issues. 186 OpenGL: A Technical Introduction This session focuses on the implementation of OpenGL for Mac OS. We give developers the knowledge required to develop OpenGL applications quickly on the Macintosh. Topics include the Macintosh OpenGL architecture, integration, and texture management. 187 OpenGL on Mac OS X This session covers the development of OpenGL applications for Mac OS, including the Mac OS X graphics architecture, OpenGL interfaces, texture management, and surface handling. Coverage includes insights into building OpenGL projects on Mac OS X. 188 OpenGL: Beyond Games OpenGL provides a powerful cross-platform 2D and 3D graphics API for all applications, not just games. This session covers handling multiple contexts, combining 2D and 3D graphics, and using the orthographic projection to create accelerated 2D graphics in any window. 300 QuickTime: State of the Union It has been an incredible year for QuickTime, and QuickTime TV has become an industry unto itself. Find out how to capitalize on the success of QuickTime. 301 QuickTime Streaming Server With the introduction of QuickTime Streaming Server 2, Apple has moved to a plug-in architecture that allows developers to extend, enhance, and add functionality. Learn about the QuickTime Streaming Server Module API and how you can use it to create your own plug-in modules. 302 QuickTime: Server Techniques and Scripting Learn to take advantage of web server and QuickTime interaction to customize your users' experience. We include discussions on technologies such as QuickTime embed tags, SMIL, CGI scripts, and WebObjects. 303 QuickTime: Streaming on the Web QuickTime is the fastest growing and most powerful streaming technology. Learn to take advantage of new QuickTime Internet services and how your product can better integrate online content to bring these benefits to your partners and customers. 304 QuickTime: Interactivity Not only is QuickTime a multiplatform media engine, but it also has the ability to add interactivity to your media. Learn to enhance the overall user experience of your product using SMIL, Flash, wired sprites, and QuickTime VR. 305 QuickTime: The Road to Mac OS X Apple continues to lead the way in digital media creation, media publishing, and consumer multimedia, including the latest in Internet multimedia delivery. Come learn about the migration of QuickTime onto Mac OS X Tools Learn about Apple's tools strategy and the future of development tools on Mac OS. Find out about WebObjects, performance optimization tools, and more. 191 Introducing the New Project Builder Committed to providing support for Mac OS X, Apple has created a new integrated development environment. This session gives an overview of these development tools and an introduction to the new version of Project Builder for developing Carbon, Cocoa, and Java applications and frameworks, as well as device drivers and other software. 192 Transitioning to the New Project Builder Take an in-depth look at migrating your Cocoa or Carbon project from Metrowerks CodeWarrior and Apple's original Project Builder to the new version of Project Builder for Mac OS X. This includes advanced project editing, compiler transition issues, and how to handle special build needs for your project. 193 Using Interface Builder Apple's Interface Builder allows you to create Aqua-enhanced user interfaces for Mac OS X. Learn about Interface Builder's support for various platform initiatives, such as the new Carbon event model, and integration of Interface Builder with the new Project Builder for Mac OS X. 195 Apple's Performance Tools for Mac OS X Mac OS X introduces many new performance challenges for developers. In this session, learn how to achieve high performance in the Mac OS X environment and how to use Apple's performance analysis tools and techniques, including MallocDebug and Sampler, for optimizing application and overall system performance. 196 Debugging Applications on Mac OS X Learn how to debug Carbon and Cocoa applications in the new Project Builder for Mac OS X, how to use the Metrowerks CodeWarrior source-level debugger under Mac OS X, and advanced debugging techniques using the powerful gdb debugger. 400 WebObjects: State of the Union WebObjects is Apple's industry-leading application server platform. This session is a WebObjects overview that includes product positioning, the latest features, and future directions. We discuss success stories and news from the community at large. Find out how to get involved in the WebObjects community by building and reselling WebObjects applications. 401 WebObjects: Technical Overview A technical overview of WebObjects for new developers and evaluators, this session highlights the key aspects of its architecture, its numerous technological advantages, and its relevance for web application development. Topics include what's new in version 4.5, a roadmap of features, building a high-level application, and an introduction to EOF. 402 WebObjects Builder: Designing Dynamic HTML Components This session provides a comprehensive look at building dynamic HTML components using WebObjects Builder, including essential component features and the tools used to build them. Understand where HTML meets the dynamic world of your Java application. 403 WebObjects: Persistent Object Modeling with EOModeler A comprehensive look at creating, editing, and maintaining Enterprise Object Framework (EOF) models using EOModeler, including essential model features and the tools used to construct them. This session includes design tips for implementing robust object models and clarifies how a WebObjects application dynamically interfaces with databases. 404 WebObjects: Deploying Applications This session is a tour of the WebObjects cross-platform runtime application server architecture, including the key components, tunable features for scalability and robustness, and the preparation of a WebObjects application for deployment. 405 WebObjects: Rapid Development with Direct to Web This session provides a tour of Direct to Web, a WebObjects application generation and modeling tool. Direct to Web offers a practical introduction to WebObjects and offers a rich set of components to integrate into your application. We discuss the latest features for reusing Direct to Web components and demonstrate why Direct to Web is suitable for production applications. 406 WebObjects: Rapid Development with Direct to Java Client This is an overview of Direct to Java Client, a cutting-edge feature of WebObjects application development that allows you to build rich and intelligent Java Client applications for distribution among a wide and dispersed set of client platforms. 407 WebObjects: EJB This session provides a comparison of the Enterprise JavaBean (EJB) and WebObjects object models. It includes goals, architecture, and an emphasis on persistence. 408 WebObjects: Converting Objective-C Applications to Java This session provides information on the goals of Java in WebObjects, and the migration of Objective-C applications and frameworks to Java. It includes issues, tools, process, and deployment challenges. 409 WebObjects: Security This is an overview on the integration of various web security technologies with WebObjects, including encryption, SSL, nonrepudiation, and authentication with business-to-consumer (B2C) and business-to-business (B2B) perspectives. This session discusses advanced design and implementation issues. 410 WebObjects: Optimization This session provides details on the WebObjects application server architecture with a focus on maximizing performance in a production environment. We cover common pitfalls and solutions, optimizations, sanity checks, and other issues related to scaling an application from the developer's desktop into a multiserver/multiuser environment. Discussions of memory management, resource usage analysis, and effective stress testing are also included. 411 WebObjects: Integrating Client-Side Technologies This is a survey of various client-side web technologies such as JavaScript, Flash, PDF, QuickTime, SMIL, and WAP and their integration with WebObjects applications for advanced user interfaces. 412 WebObjects: EOF Caching and Synchronization This session provides a detailed discussion of database snapshot management for conflict detection and caching, including the balance between efficiency and data freshness in refreshing and synchronization across sessions or multiple application instances. 413 WebObjects: XML Learn about XML integration with WebObjects, such as archiving, parsing, and XML content in requests and responses. This session highlights how to use XML for interapplication communication using content syndication as an example. 414 WebObjects: Performance Metrics This session discusses tools and techniques for collecting and analyzing application performance metrics such as statistics, events, record, and playback. 415 WebObjects: Advanced EOF This is an in-depth exploration of new and advanced features of EOF 4.5. It includes shared editing contexts, deferred faults, and schema synchronization, as well as batch faulting, prefetching, complex many-to-many, delete rules, and stored procedures. 416 WebObjects: Designing Reusable Components This session provides practical guidance on designing and packaging nested components for reuse, including API, synchronization, validation, palettes, and frameworks. 417 WebObjects: Building Large-Scale Applications Design, implementation, and management issues in large-scale WebObjects application development are discussed in this session. Topics include system and application architecture design, data modeling, and project organization and performance tuning. Learn from Apple's own WebObjects consulting experiences. Networking and Security Apple's comprehensive Internet strategy means new opportunities for you and your customers. Learn how Apple is leveraging Internet standards such as Ipv6 and 802.11 to create new opportunities for you in e-commerce, security and wireless communications. 162 Mac OS X: Server Services This session covers the services provided in a future release of Mac OS X Server, identifying key developer opportunities and detailing compatibility requirements. These services include AFP File, FTP File, Apache Web, SMB File, Mail, Printing, NetBoot, DNS, DHCP, and SLP. Learn how other services such as the Directory Services APIs and Network Services Location APIs are integrated. 165 Mac OS X: Directory Services This session provides details on the Directory Services APIs that allow Mac OS X-based software to access directory systems, such as LDAP and NetInfo, in a standard manner. These APIs provide full access to a range of directory systems (data access and authentication). The low-level plug-in model that allows the addition of directory access modules is also covered. 166 Mac OS X: Network Services Location Network Services Location (NSL) is a set of services that provide IP network services browsing on Mac OS. In this session, we discuss the improvements, implementation, and strategy for taking NSL development onto Mac OS X, as well as share real-world tips. 167 URL Access URL Access provides high-level APIs to allow applications to easily take advantage of various Internet protocols, including HTTP and FTP, as well as support file verify. Learn how to add URL Access to your product. 168 Keychain Keychain is the password and key manager for Mac OS. This session provides details on how developers can use Carbon to take advantage of this technology within their products on both Mac OS 9 and Mac OS X. 169 Security Directions This session provides an overview of the Mac OS X security architecture, including enhanced certificate management, SSL v3, and a variety of layered services on top of CDSA 2.0. This topic is essential for integrating security into your product. Hardware Learn how Apple's aggressive support for industry-standards such as USB and FireWire can help lower your development and support costs and increase the performance of your peripheral products. 202 FireWire: Now and in the Future FireWire, the industry-standard interface for DV cameras and high-performance peripherals, is now standard on Apple's Power Mac G4, PowerBook, and iMac DV series. Learn how to support this revolutionary technology to reduce support costs and provide your customers with unmatched peripheral performance, reliability, and simplicity. 203 FireWire in Depth This session provides details on developing drivers for FireWire peripherals. Learn about FireWire in Mac OS X and how your products work with it, and learn tips and tricks on how to get the best possible performance. This session covers SBP-2 and Isoc details, as well as Apple's Mac OS X drivers. 204 USB: Now and in the Future Universal Serial Bus (USB) is sweeping the industry, led by Apple. Every computer Apple ships includes the USB peripheral interface, with an installed base in the multiple millions. Learn about the standard drivers included in Mac OS and detailed information on how to develop drivers and installers to make the most of the USB software locator mechanism. © 2000 Apple. All rights reserved.