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