Dispelling Cross-Platform
Software Development Myths
Cross-Platform GUI Programming
with wxWidgets
Kevin Hock
August 2005
Overview






Who am I?
What is cross-platform development?
Why cross-platform?
Cross-platform myths
Recap wxWidgets
wxWidgets book
Who am I?






Miami University (OH)
Visiting Instructor
Founded BitWise Communications
Created BitWise IM
wxWidgets developer
wxWidgets book co-author
What is cross-platform?





Applications for multiple platforms
Platform-agnostic API
Write once, compile/run everywhere
GUI layout
Advanced classes
Why cross-platform?





Heterogeneous world
Growing Linux / OS X markets
Increased market share
Increased customer satisfaction
Not locked to a platform
Myth #1:
Slow applications



wxWidgets is a thin wrapper
CPU speeds increasing
Few real-time applications
Mahogany Mail (Linux)
Myth #2:
Large libraries required




Thin wrapper
Statically link wxWidgets
Avoid rpm / so / dll issues
Compare sizes on Windows:
Library
Java
Raw MB
30+
Zip MB
15
GTK+
QT
wxWidgets
9+
4+
<1
4
2
<1/2
Myth #3:
Poor mobile support





Life! on GPE
Windows CE
GPE using GTK+
wxX11 uses only X
Palm OS 6
Adjust window
layouts (small)
Myth #4:
Non-native appearance

Uses OS widgets, not a skin
Myth #5:
Awkward window layout

Sizers adapt to
– Fonts
– Languages
– Widget sizes
– Window sizes
Myth #6:
Non-standard dialogs

wxWidgets uses standard OS dialogs
Non-native, used by another library
Native, used by wxWidgets
Myth #7:
Lowest common denominator




Generic widgets
bridge gaps
Platform-specific
classes (wxWebkit)
Custom-drawn
application widgets
Platform-specific
code
Audacity Sound Editor (Linux)
Myth #8:
Have to learn OS details






wxWidgets abstracts – common API
wxMenuBar, About / Preferences
wxSound
wxConfig
wxSingleInstanceChecker
wxLaunchDefaultBrowser
Myth #9:
Complicated, unstable






“More often than not wxWidgets gets
out of the way of the programmer.”
Well structured, easy to use API
Excellent documentation
12 years of evolution
Worldwide community
Lists, newsgroups, forums, wiki
Myth #10:
Locked into one vendor






Open source
Worldwide community
Cannot be discontinued
Not a company, no profit motive
Community support
wxCode: community extensions
Myth #11:
Locked into a technology





Standard C++, no
extensions
Use standard C++
libraries
Library-agnostic
New technologies
embraced
Free upgrades to
new technologies!
Old
New
Motif
GTK+
Win16
Carbon
Win32
GTK
GTK+ 2
Win32
Cocoa
Vista?
Why choose wxWidgets?






Avoids common cross-platform issues
Open-source
12 years of evolution
Worldwide community
Many supported platforms
Advanced features
Who uses wxWidgets?
OSAF’s Chandler (Linux)



Open source projects
Small businesses
Large organizations:
– AMD
– AOL (Communicator)
– Carnegie-Mellon
University
– Grisoft (AVG Anti-Virus)
– Lockheed Martin
– NASA
– OSAF - Chandler
– Xerox
What’s in the book?






Concepts & overviews
Class descriptions
Code examples
Discussions
Project setup guides
CD-ROM: code & utilities
Conclusion

Powerful cross-platform framework
Heterogeneous world
Target additional platforms
Agile movement among platforms
wxWidgets book

Questions?




Descargar

Dispelling Cross-Platform Development Myths