Welcome to CS193E

Welcome to CS193E

Welcome to CS193E Mac OS X Cocoa Programming James Dempsey [email protected] Paul Marcos [email protected] Intros • James Dempsey <[email protected]> • Paul Marcos <[email protected]> • TA - David Black <[email protected]> Logistics • Lectures: Skilling 193 Tues & Thurs 12:50 - 2:05 PM • Prerequisite: CS 106B/X • Recommended Book: Cocoa Programming for Mac OS X by Aaron Hillegass, 2nd edition. ■ 7 concurrent licenses available online • Software: Mac OS X 10.4 (Tiger) Quick Survey • Have worked with Java or C++? • Have a Macintosh? • Have OS X 10.5 Leopard installed? • Have done development on a Mac? Why Are We Here? To build Mac OS X applications with Cocoa Why Are We Here? • 193E is not just about Cocoa and ObjC • It’s about Software Engineering as well as object oriented architecture and design • Exposure to problems and solutions that you might not see in other classes Things to Learn Tools Xcode Interface Builder Frameworks Foundation AppKit Language [textView setStringValue: @“Hello”]; (& Runtime) Objective-C Why Cocoa? • Cocoa is a mature, well thought out with highly consistent APIs • Provides a very rich starting point for exploring application design • Shows “real-world” implementations of OO design patterns Why ObjC? • Exposure to other languages is always good • A language focused on simplicity and the elegance of OO design ■ Based on ANSI C ■ Brings many object oriented principles, but with a minimal amount of syntax • A data point to compare with designs of C, C++ and Java Cocoa Applications Mail Safari iChat Photo Booth Automator iPhoto Keynote Aperture Interface Builder Applications You Will Build Temp Converter & Obj-C Tool Favorite Things Timeline - 4 weekly assignments Final Project - You Decide! Assignments, Grading & Late Policy • 7 weekly assignments • Final project of your choice ■ End of quarter demos at Apple... • Grading: Nice & simple: ✓, ✓+ and ✓- • Late Policy: 3 late days, use them wisely! First Assignment • First part of first assignment handed out today • Intended to get you familiar with tools and dip a toe in the language • Includes a comprehensive walkthrough • We suggest trying to do 1A before Thursday to help work out any tools or installation issues Office Hours & Web Site • Office hours ■ Mon & Weds 10:30 - 12:30 in Gates B24A • Email: [email protected] • Web site: http://cs193e.stanford.edu Questions? Mac OS X Overview Mac OS X Architecture Frameworks Mach CoreBSD CoFocu on4.ada4tion Application Services Quartz (2D) CarboCaIOKirbon Cotn re OpenGL (3D) FilCFNeCl Syseatwssitocemsrk QuickTime Core Services Web JSeavravices Open Source Kernel - Darwin Tools Xcode Interface Builder Frameworks Foundation AppKit Language [textView setStringValue: @“Hello”]; (& Runtime) Objective-C Notes about Tools • We’ll be using Xcode 2.5 tools • If you have 10.4 Tiger, you may need to update or install • If you have 10.5 Leopard, you need to install Xcode 2.5 • If you need Xcode 2.5, download for free from Apple Developer Connection ■ http://developer.apple.com/tools/download ■ Sign up for free Online ADC account • Xcode 2.5 and Xcode 3.0 can happily coexist on a Leopard machine ■ Read the XCode 2.5 release notes for details Cocoa Architecture Frameworks Application Kit Aqua Elements Application Runtime UI Widgets Foundation Kit Utility Classes Collection Classes Object Wrappers for OS Services Using Cocoa • GUI (Graphical User Interface) applications • Command-line tools • Plug-ins • Even device drivers! Objects Object Thing Behavior Thing behavior doSomething Message Thing "doSomething" doSomething State Thing flag state count behavior doSomething Other Objects As State Other Thing Thing flag performDifficultTask state count helper behavior doSomething doSomethingElse setHelper: Message Identifiers As State Other Thing Thing flag performDifficultTask state count helper message "lastName" behavior doSomething doSomethingElse setHelper: Outlets Converter slider textField makeDouble: makeHalf: Target / Action Converter target slider action ʻmakeDouble:ʼ textField makeDouble: target makeHalf: action ʻmakeHalf:ʼ Demo Outlets Converter slider textField makeDouble: makeHalf: Target / Action Converter target slider action ʻmakeDouble:ʼ textField makeDouble: target makeHalf: action ʻmakeHalf:ʼ Questions?.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    35 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us