200 likes | 382 Views
Java on Mac OS X. Insanely Great or Just Insane?. A presentation to the Los Angeles Java Users Group. Introduction. “I’m a back-end guy…” Adventures in GOO-EE programming Looking for what’s cool with Java on Mac OS X. Agenda. Architecture of Mac OS X Integration of Java 2
E N D
Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group Craig E. Ward, cew@acm.org
Introduction • “I’m a back-end guy…” • Adventures in GOO-EE programming • Looking for what’s cool with Java on Mac OS X Craig E. Ward, cew@acm.org
Agenda • Architecture of Mac OS X • Integration of Java 2 • Development Tools • Cocoa Framework • Anatomy of a Cocoa Application • Tool Demonstrations • Sources for the talk and other Resources • Conclusions by the presenter • Discussion Craig E. Ward, cew@acm.org
Architecture of Mac OS X Core operating system is based on Mach 3.0 and FreeBSD 3.2 Unix Craig E. Ward, cew@acm.org
Architecture of Mac OS X Unix command line programs Craig E. Ward, cew@acm.org
Architecture of Mac OS X Quartz OpenGL Quicktime Audio Craig E. Ward, cew@acm.org
Architecture of Mac OS X Legacy Migration Legacy Craig E. Ward, cew@acm.org
Architecture of Mac OS X J2SE 1.3.1 Native frameworks, Objective C Craig E. Ward, cew@acm.org
Architecture of Mac OS X User Interface Look & Feel Craig E. Ward, cew@acm.org
Architecture of Mac OS X Craig E. Ward, cew@acm.org
Integration of Java 2 • Pre-installed on all new Macintosh computers • Peer core environment to Cocoa and Carbon • Mix Java code with Cocoa native code • Automatic Aqua PLAF • Optimized HotSpot VM • Almost latest releases (1.3.1) Craig E. Ward, cew@acm.org
Development Tools • Standard J2SE command line tools • Many third-party tools • JBuilder • CodeWarrior • JDEE • Apple • MRJAppBuilder • Project Builder and Interface Builder • JavaBrowser, AppletLauncher, Java Web Start Craig E. Ward, cew@acm.org
Cocoa Frameworks • Foundation • Low-level classes representing data types, files, threads, collections, etc. • AppKit • User interface components • Java Bridge • The wrapper classes Craig E. Ward, cew@acm.org
Anatomy of a Cocoa Application • Hidden file structure • Property Lists in XML • Other Resources • Graphics • NIB files <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/ PropertyList.dtd"> <plist version="0.9"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> Craig E. Ward, cew@acm.org
NIB Files • Serialized instances of interface objects • Important Concepts • Action • Outlet Craig E. Ward, cew@acm.org
Tool Demonstrations • MRJAppBuilder • Project Builder and Interface Builder • JavaBrowser Craig E. Ward, cew@acm.org
Sources & Resources • Apple Developer Connection • Free web membership • Inside Mac OS X: Java Development on Mac OS X • Inside Cocoa: Developing Cocoa Java Applications: A Tutorial • List java-dev@lists.apple.com • Early Adopter Mac OS X Java • Mac OS X: The Complete Reference Craig E. Ward, cew@acm.org
Conclusions • First class Java development platform • User-friendly runtime • Cocoa applications have access to Java 2 features and vise-versa • More than just an educational toy Craig E. Ward, cew@acm.org
Discussion and More Questions? • What wasn’t covered • Questions and Comments • More? Craig E. Ward, cew@acm.org