April 2, 2002 Craig E. Ward, [email protected] 1 Java on Mac OS X Insanely Great or Just Insane? A...

19
April 2, 2002 Craig E. Ward, [email protected] 1 Java on Mac OS X Java on Mac OS X Insanely Great or Just Insanely Great or Just Insane? Insane? A presentation to the Los Angeles Java Users Group

Transcript of April 2, 2002 Craig E. Ward, [email protected] 1 Java on Mac OS X Insanely Great or Just Insane? A...

Page 1: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 1

Java on Mac OS XJava on Mac OS X

Insanely Great or Just Insanely Great or Just Insane?Insane?

A presentation to the Los Angeles Java Users Group

Page 2: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 2

IntroductionIntroduction

““I’m a back-end guy…”I’m a back-end guy…”

Adventures in GOO-EE programmingAdventures in GOO-EE programming

Looking for what’s cool with Java on Mac Looking for what’s cool with Java on Mac OS XOS X

Page 3: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 3

AgendaAgenda

Architecture of Mac OS XArchitecture of Mac OS X

Integration of Java 2Integration of Java 2

Development ToolsDevelopment Tools

Cocoa FrameworkCocoa Framework

Anatomy of a Cocoa ApplicationAnatomy of a Cocoa Application

Tool DemonstrationsTool Demonstrations

Sources for the talk and other ResourcesSources for the talk and other Resources

Conclusions by the presenterConclusions by the presenter

DiscussionDiscussion

Page 4: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 4

Architecture of Mac OS XArchitecture of Mac OS X

Core operating system is based on Mach 3.0 and FreeBSD 3.2 Unix

Darwin

Page 5: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 5

Architecture of Mac OS XArchitecture of Mac OS XUnixcommandline programs

Darwin

BSD

Page 6: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 6

Architecture of Mac OS XArchitecture of Mac OS X

QuartzOpenGLQuicktimeAudio

Darwin

Application Services

BSD

Page 7: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 7

Darwin

Application Services

Classic Carbon BSD

Architecture of Mac OS XArchitecture of Mac OS X

Legacy

LegacyMigration

Page 8: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 8

Darwin

Application Services

Classic Carbon Cocoa Java BSD

Architecture of Mac OS XArchitecture of Mac OS X

Native frameworks,Objective C

J2SE1.3.1

Page 9: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 9

Darwin

Application Services

Classic Carbon Cocoa Java

Aqua

BSD

Architecture of Mac OS XArchitecture of Mac OS X

User Interface Look & Feel

Page 10: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 10

Architecture of Mac OS XArchitecture of Mac OS X

Page 11: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 12

Integration of Java 2Integration of Java 2

Pre-installed on all new Macintosh Pre-installed on all new Macintosh computerscomputers

Peer core environment to Cocoa and CarbonPeer core environment to Cocoa and Carbon Mix Java code with Cocoa native codeMix Java code with Cocoa native code

Automatic Aqua PLAFAutomatic Aqua PLAF

Optimized HotSpot VMOptimized HotSpot VM

Almost latest releases (1.3.1)Almost latest releases (1.3.1)

Page 12: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 13

Development ToolsDevelopment Tools Standard J2SE command line toolsStandard J2SE command line tools

Many third-party toolsMany third-party tools JBuilderJBuilder

CodeWarriorCodeWarrior

JDEEJDEE

AppleApple MRJAppBuilderMRJAppBuilder

Project Builder and Interface BuilderProject Builder and Interface Builder

JavaBrowser, AppletLauncher, Java Web StartJavaBrowser, AppletLauncher, Java Web Start

Page 13: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 14

Cocoa FrameworksCocoa Frameworks

FoundationFoundation Low-level classes representing data types, Low-level classes representing data types,

files, threads, collections, etc.files, threads, collections, etc.

AppKitAppKit User interface componentsUser interface components

Java BridgeJava Bridge The wrapper classesThe wrapper classes

Page 14: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 15

Anatomy of a Cocoa ApplicationAnatomy of a Cocoa Application

Hidden file structureHidden file structure

Property Lists in XMLProperty Lists in XML

Other ResourcesOther Resources GraphicsGraphics

NIB filesNIB 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>

Page 15: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 16

NIB FilesNIB Files

Serialized instances of interface Serialized instances of interface objectsobjects

Important ConceptsImportant Concepts ActionAction OutletOutlet

Page 16: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 17

Tool DemonstrationsTool Demonstrations

MRJAppBuilderMRJAppBuilder

Project Builder and Interface BuilderProject Builder and Interface Builder

JavaBrowserJavaBrowser

Page 17: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 18

Sources & ResourcesSources & Resources

Apple Developer ConnectionApple Developer Connection Free web membershipFree web membership Inside Mac OS X: Java Development on Inside Mac OS X: Java Development on

Mac OS XMac OS X Inside Cocoa: Developing Cocoa Java Inside Cocoa: Developing Cocoa Java

Applications: A TutorialApplications: A Tutorial List [email protected] [email protected]

Early Adopter Mac OS X JavaEarly Adopter Mac OS X Java Mac OS X: The Complete ReferenceMac OS X: The Complete Reference

Page 18: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 19

ConclusionsConclusions

First class Java development First class Java development platformplatform

User-friendly runtimeUser-friendly runtime Cocoa applications have access to Cocoa applications have access to

Java 2 features and vise-versaJava 2 features and vise-versa More than just an educational toyMore than just an educational toy

Page 19: April 2, 2002 Craig E. Ward, cew@acm.org 1 Java on Mac OS X Insanely Great or Just Insane? A presentation to the Los Angeles Java Users Group.

April 2, 2002 Craig E. Ward, [email protected] 20

Discussion and More Discussion and More Questions?Questions?

What wasn’t coveredWhat wasn’t covered Questions and CommentsQuestions and Comments More?More?