Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dispelling Cross-Platform Software Development Myths Cross-Platform GUI Programming with wxWidgets Kevin Hock August 2005.

Similar presentations


Presentation on theme: "Dispelling Cross-Platform Software Development Myths Cross-Platform GUI Programming with wxWidgets Kevin Hock August 2005."— Presentation transcript:

1 Dispelling Cross-Platform Software Development Myths Cross-Platform GUI Programming with wxWidgets Kevin Hock August 2005

2 Overview Who am I? Who am I? What is cross-platform development? What is cross-platform development? Why cross-platform? Why cross-platform? Cross-platform myths Cross-platform myths Recap wxWidgets Recap wxWidgets wxWidgets book wxWidgets book

3 Who am I? Miami University (OH) Miami University (OH) Visiting Instructor Visiting Instructor Founded BitWise Communications Founded BitWise Communications Created BitWise IM Created BitWise IM wxWidgets developer wxWidgets developer wxWidgets book co-author wxWidgets book co-author

4 What is cross-platform? Applications for multiple platforms Applications for multiple platforms Platform-agnostic API Platform-agnostic API Write once, compile/run everywhere Write once, compile/run everywhere GUI layout GUI layout Advanced classes Advanced classes

5 Why cross-platform? Heterogeneous world Heterogeneous world Growing Linux / OS X markets Growing Linux / OS X markets Increased market share Increased market share Increased customer satisfaction Increased customer satisfaction Not locked to a platform Not locked to a platform

6 Myth #1: Slow applications wxWidgets is a thin wrapper wxWidgets is a thin wrapper CPU speeds increasing CPU speeds increasing Few real-time applications Few real-time applications Mahogany Mail (Linux)

7

8 Myth #2: Large libraries required Thin wrapper Thin wrapper Statically link wxWidgets Statically link wxWidgets Avoid rpm / so / dll issues Avoid rpm / so / dll issues Compare sizes on Windows: Compare sizes on Windows: Library Raw MB Zip MB Java30+15 GTK+9+4 QT4+2 wxWidgets<1<1/2

9 Myth #3: Poor mobile support Windows CE Windows CE GPE using GTK+ GPE using GTK+ wxX11 uses only X wxX11 uses only X Palm OS 6 Palm OS 6 Adjust window layouts (small) Adjust window layouts (small) Life! on GPE

10 Myth #4: Non-native appearance Uses OS widgets, not a skin Uses OS widgets, not a skin

11

12

13

14 Myth #5: Awkward window layout Sizers adapt to Sizers adapt to –Fonts –Languages –Widget sizes –Window sizes

15 Myth #6: Non-standard dialogs wxWidgets uses standard OS dialogs wxWidgets uses standard OS dialogs Native, used by wxWidgets Non-native, used by another library

16 Myth #7: Lowest common denominator Generic widgets bridge gaps Generic widgets bridge gaps Platform-specific classes (wxWebkit) Platform-specific classes (wxWebkit) Custom-drawn application widgets Custom-drawn application widgets Platform-specific code Platform-specific code Audacity Sound Editor (Linux)

17

18 Myth #8: Have to learn OS details wxWidgets abstracts – common API wxWidgets abstracts – common API wxMenuBar, About / Preferences wxMenuBar, About / Preferences wxSound wxSound wxConfig wxConfig wxSingleInstanceChecker wxSingleInstanceChecker wxLaunchDefaultBrowser wxLaunchDefaultBrowser

19 Myth #9: Complicated, unstable More often than not wxWidgets gets out of the way of the programmer.More often than not wxWidgets gets out of the way of the programmer. Well structured, easy to use API Well structured, easy to use API Excellent documentation Excellent documentation 12 years of evolution 12 years of evolution Worldwide community Worldwide community Lists, newsgroups, forums, wiki Lists, newsgroups, forums, wiki

20 Myth #10: Locked into one vendor Open source Open source Worldwide community Worldwide community Cannot be discontinued Cannot be discontinued Not a company, no profit motive Not a company, no profit motive Community support Community support wxCode: community extensions wxCode: community extensions

21 Myth #11: Locked into a technology Standard C++, no extensions Standard C++, no extensions Use standard C++ libraries Use standard C++ libraries Library-agnostic Library-agnostic New technologies embraced New technologies embraced Free upgrades to new technologies! Free upgrades to new technologies! OldNew MotifGTK GTK+ GTK+ 2 Win16Win32 CarbonCocoa Win32Vista?

22 Why choose wxWidgets? Avoids common cross-platform issues Avoids common cross-platform issues Open-source Open-source 12 years of evolution 12 years of evolution Worldwide community Worldwide community Many supported platforms Many supported platforms Advanced features Advanced features

23 Who uses wxWidgets? Open source projects Open source projects Small businesses Small businesses Large organizations: Large organizations: –AMD –AOL (Communicator) –Carnegie-Mellon University –Grisoft (AVG Anti-Virus) –Lockheed Martin –NASA –OSAF - Chandler –Xerox OSAFs Chandler (Linux)

24

25 Whats in the book? Concepts & overviews Concepts & overviews Class descriptions Class descriptions Code examples Code examples Discussions Discussions Project setup guides Project setup guides CD-ROM: code & utilities CD-ROM: code & utilities

26 Conclusion Powerful cross-platform framework Powerful cross-platform framework Heterogeneous world Heterogeneous world Target additional platforms Target additional platforms Agile movement among platforms Agile movement among platforms wxWidgets book wxWidgets book Questions? Questions?


Download ppt "Dispelling Cross-Platform Software Development Myths Cross-Platform GUI Programming with wxWidgets Kevin Hock August 2005."

Similar presentations


Ads by Google