inside-out perspective
GOAL:
· spend as much time as possible in XP code
BUT:
· need to get there first
· application launches in platform code
· GUI constantly sends platform events
· all output triggers platform calls, too
· we're surrounded!
<<
<
^
>
>>
cover page
people ask: what is AbiWord?
Open Source? are you insane?
cross-platform? are you insane?
at one level, he's right...
but people do it anyway...
we take another approach...
quick jargon review
3 approaches for XP GUI software
approach #1: platform ignorance
approach #1: platform ignorance (pros)
approach #1: platform ignorance (cons)
approach #2: platform experts
approach #2: platform experts (pros)
approach #2: platform experts (cons)
approach #3: practical hybrid
approach #3: practical hybrid (pros)
approach #3: practical hybrid (cons)
OK, so how does it work?
head start: use existing libraries
tree structure
common build environment
products that build, ship
the donut rule
designing a practical hybrid
inside-out perspective
so, design it that way!
the framework mirrors the design
just a little C++
example #1:
GR_Graphics
example #2: events
practicality test: dialogs
comparing the approaches
comparing the approaches, cont.
adding up the scorecard
scorecard: quality of the product
scorecard: platforms supported
scorecard: executable size
scorecard: % XP (framework)
scorecard: % XP (application)
scorecard: developer support
questions?