Dispelling Cross-Platform Software Development Myths

Slides:



Advertisements
Similar presentations
2009◆Spring Top Level Java Game Flagship Browser Online Game 2009 A world of demons and fairies A story about loyalty and betrayal Brotherhood and.
Advertisements

Introduction to Linux Recap Installing programs Introduction to Video Editing with Linux.
Günter Weitersberger SNiFF+Cross Advanced. © 2000 Wind River Systems, Inc. What is SNiFF+Cross ? Use your PC to develop UNIX applications Unified software.
1 Central Administration Advanced Management of Multiple Systems.
Using MapuSoft Instead of OS Vendor’s Simulators.
Media Player for the i.MX31 Advanced Embedded Systems Architecture Class Project May 14, 2011 Rafael Castro Ryan Ugland Carlos Cabral.
Presentation by Amal Babu New OS of Google, initially designed for netbooks Released in second half of 2010 Google chrome browser on Linux kernel Inbuilt.
JAVA Programming Environment © Juhani Välimäki 2003.
Chapter 5 Operating Systems. 5 The Operating System When working with multimedia, the operating system is perhaps the most important, the most complex,
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
Status – Week 291 Victor Moya. Tracing 3D applications Three layers or levels for tracing: Three layers or levels for tracing: 3D Appl API Driver GPU.
Introduction to Android Platform Overview
Programming mobile devices Part II Programming Symbian devices with Symbian C++
LINUX System : Lecture 3 Vmware, Cygwin, LINUX installation Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
G3D Design Goals C++ library of code common to every 3D project Write once, compile everywhere Safe and fast Prototype a game in one week Maximize flexibility.
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
Embedded Systems Mohammad A. Gowayyed (c) 2012 Mohammad A. Gowayyed1.
Overview Embedded Linux Graphics Typical desktop Linux graphics stack SystemRAMDisk X Window System5MB16MB GNOME14MB95MB KDE11MB96MB Mozilla12MB95MB.
Developing Enterprise Mobile Apps with Xamarin Loren Horsager CEO, Mobile Composer.
Software Framework for Teleoperated Vehicles Team Eye-Create ECE 4007 L01 Karishma Jiva Ali Benquassmi Safayet Ahmed Armaghan Mahmud Khin Lay Nwe.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
PhoneGap- Cross platform for mobile Lê Nguyên Khánh Trần Đại Nhân
Mono Update. Miguel de Icaza
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
INVITATION TO COMPUTER SCIENCE, JAVA VERSION, THIRD EDITION Chapter 6: An Introduction to System Software and Virtual Machines.
Control System Studio (CSS) Overview Kay Kasemir, July 2009.
11/7/2007HDF and HDF-EOS Workshop XI, Landover, MD1 HDF5 Software Process MuQun Yang, Quincey Koziol, Elena Pourmal The HDF Group.
Crossworking using Wine and Cygwin Arjun Jain, R.V. College of Engineering, Bangalore.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
Introduction of gogolib4java Xiong Hongyu July 20, 2011.
Kill and Uninstall Multiple Running Anti-Virus Programs using Kaseya Developed By: Jasmine English Advisor : Dr. S. Masoud Sadjadi School of Computing.
 Installation of Android Development Environment  Creating the App with OpenGL ES API  Running the App on Emulator Android App Development.
PIKA Technologies Inc. CAS Logger Application Sample August 2014.
GCSE ICT By the end of this session, you will be able to:  Understand concept of a Windows operating system and have a basic understanding of GUI.
Resource management 1. CCDB big tables problem MySQL packet size is limited by 1 mb by default gzipping doesn’t help. No partial blob transfers until.
Program Libraries 1. What is a program library? A library is a collection of implementations of behavior, written in terms of a language, that has a well-defined.
ITP 109 Week 2 Trina Gregory Introduction to Java.
DEPARTEMENT DE PHYSIQUE NUCLEAIRE ET CORPUSCULAIRE FACULTÉ DES SCIENCES UNIVERSITÉ DE GENÈVE EUDET JRA1 Meeting Munich October 2006 DAQ Status Emlyn Corrin.
QA Online Training In QA Click Academy. Selenium is a test automation framework used to test web applications such as browsers. It consists of different.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
TECH RELATED TOPIC PRESENTATION MICROPROCESSOR: CSE341 COURSE INSTRUCTOR DR. JIA UDDIN Assistant Professor Department of Computer Science and Engineering.
Software development tools
CS-140 Dick Steflik Lecture 3. Java C++ Interpreted optimized for the internet Runs on virtual ized machine Derived from C++ Good object model Widely.
Qt What is Qt ● Not Apple Quick Time :) ● GUI Toolkit ● General Toolkit ● Multi Platform ●
Android.
Computer System Structures
Chapter 5 Operating Systems.
Chapter 4: Multithreaded Programming
Current Generation Hypervisor Type 1 Type 2.
Chapter 1. Basic Static Techniques
The D Programming Language
Cross Platform Development using Software Matrix
ClamXav Antivirus Scanner: A Free Tool for Your Mac OS X
Event Driven Programming Dick Steflik
Designing Cross Platform Applications on .NET Core
Introduction to Xamarin
2.1. Compilers and Interpreters
Developing applications using Chromium
Oracle Database Management
Getting Started ARCS Lab..
Lecture 1 Making a C# GUI Program
Mark Claypool and Jonathan Tanner Computer Science Department
Data Acquisition Software Integration and ADC Characterisation
Assembly Language for Intel-Based Computers
Working with Linux Libraries in Delphi
PalmOS.
Topics on the presentation
Cross-OS Development Platform Contents Application Common Operating Environment (AppCOE): An eclipse based IDE for development of C/C++ applications.
CMPE 135: Object-Oriented Analysis and Design March 14 Class Meeting
Presentation transcript:

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 Hand in hand with slow, is… Mahogany Mail (Linux)

Myth #2: Large 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 <1 <1/2 Bulky libraries also mean…

Myth #3: Poor mobile support Windows CE GPE using GTK+ wxX11 uses only X Palm OS 6 Adjust window layouts (small) So many devices, it must have… Life! on GPE

Myth #4: Non-native appearance Uses OS widgets, not a skin If it’s native on all platforms, then don’t you have…

Myth #5: Awkward window layout Sizers adapt to Fonts Languages Widget sizes Window sizes Sounds great, what about…

Myth #6: Non-standard dialogs wxWidgets uses standard OS dialogs Non-native, used by another library Native, used by wxWidgets What if it doesn’t exist? Doesn’t that lead to…

Myth #7: Lowest common denominator Generic widgets bridge gaps Platform-specific classes (wxWebkit) Custom-drawn application widgets Platform-specific code But wouldn’t this factoring still lead to… Audacity Sound Editor (Linux)

Myth #8: Have to learn OS details wxWidgets abstracts – common API wxMenuBar, About / Preferences wxSound wxConfig wxSingleInstanceChecker wxLaunchDefaultBrowser Wow, all this must be really complicated…

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 What about support when I have a problem?

Myth #10: Locked into one vendor Open source Worldwide community Cannot be discontinued Not a company, no profit motive Community support wxCode: community extensions But aren’t I still…

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 GTK+ GTK+ 2 Win16 Win32 Carbon Cocoa Vista? But I’m still…

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

Who 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 OSAF’s Chandler (Linux)

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?