Success story and future challenges of applying Qt for embedded Linux Software Research Associates, Inc.
May 12, 2015
Success story and future challenges of applying Qt for embedded Linux
Software Research Associates, Inc.
Agenda
• Introduction
• Experience of GUI Development for Embedded Devices
• Future Challenges for Embedded Development with Qt
1
2
Introduction
Where come from
Who are we
• Software Research Associates, Inc. (SRA)
• Started over 40 years ago as a strictly neutral,
independent information technology services company
• Based in Tokyo Japan
– 6 subsidiaries in Japan
– 7 subsidiaries in Asia, USA and Europe
• Employees: 1800 people
• http://www.sra.co.jp
4
Who are we
• Business units
– System development and related services
– Business application services and products
– Network administration; System operation/administration
– Linux; Open Source Software; EDI/EC
– Solutions for educational institutions
5
Who am I
• Osamu Kobayashi
– 30 years experience of software development; joined SRA 1998
– Used Qt since 2006
– Senior Software Manager and Developer in SRA
– Some development projects
Embedded software written in assembly language, package
software for PCs in C/C++, server applications written in Java,
GUI software development for high-end and low-end multi
functional printers
6
What we do for Qt
• Qt Services
– Qt training since 2002
– Qt professional service� s for desktop since 2003
– Qt professional services for embedded since 2004
– Squish/Qt professional services since 2004
• Seminars
– Wingnut seminar - Qt and KDE seminar in 2000
– Qt hands-on seminar every month since 2006
– Squish/Qt hands-on seminars since 2006
7
What we do for Qt
• Books
– Published the first Qt book in Japanese from Gijutsu-Hyohron in 2000
– Published the first KDE book in Japanese from Gijutsu-Hyohron in
2001
– Translated C++ GUI Programming with Qt 3 from Softbank in 2005
– Translated C++ GUI Programming with Qt 4 from O'Reilly in 2007
• Articles
– Over 40 Qt related articles for magazines and web since 1999
8
What we do for Qt
• Software Development with Qt for our customers
– The first use. Applied Qt for VLSI CAD in 1999
– Karaoke machine
– Qt 4 porting from Qt 3 - Car designe CAD, MainConcept and high-
resolution scanner
– Very high-resolution scanner
– Large LCI production system
– Custom widgets development
– Prototyping for mobile phone application with QML of Declarative UI.
9
What we do for Qt
• Software Development with Qt for our customers (cont.)
– PDA software - Main launcher, instant messenger, movie player,
music player and so on
– High-end multi-functional printer (my project)
10
What we do for Qt
• Products for Qt for Embedded
– Qinput - Input method front-end
– Qtouch - Flexible software keyboard
– T-Kenel/ITRON port (under development)
11
What we do for Qt
12
Qinput and Qtouch Qinput - Input method front-endQtouch - Flexible software keyboard
What we do for Qt
13
• General architecture
T-Kernel/ITRON port (under development)
What we do for Qt
14
• Task and process architecture
T-Kernel/ITRON port (under development)
What we do for Qt
15
Received a request “Partnership Agreement”from former Trolltech
Received a request “Partnership Agreement”from former Trolltech
Started Qt training in Japanese(A Customer requested Japanese training to Trolltech)
Started Qt training in Japanese(A Customer requested Japanese training to Trolltech)
2000
2002
2003
2004
SRA is a leading company in Qt business, started “Qt full support” in JapaneseOur “One-Stop Support Service” satisfies you in Qt use.We all provide “License, Training, Consultation, Software development.”
Authorized Qt trainersWe are the only authorized Qt trainers by Qt in Japan.We a pioneer of Qt in Japan, and have a lot of Qt writings.We are the only company that provides “Support” and “Training” in Japanese by authorized trainers.
Started Qt EmbeddedStarted Qt Embedded
July, 2003execution of Partnership agreement
July, 2003execution of Partnership agreement
■ Partnership with Nokia, Qt Development Frameworks(Trolltech)
What we do for Qt
16
■ We provide everything you need! !“license, consultation, software development, training, one-stop full
support”
- Free experience seminar/Training
SeminarSeminar
- Introduction support- Customization、Tuning
ConsultationConsultation
- Support in Japanese- LGPL Support
SupportSupport
- Qt license- SRA Original Qt Solution
・SW keyboard「Qtouch」・Japanese input module「Qinput」
- automatic test tool Squish for Qt
DistributionDistribution
-Development team with Qt experiences-Cooperate with Qt support team -Automatic test by Squish for Qt
Software developmentSoftware development
SRA helps you to practical use of Qt with our Software development experiences.We are the only company knows about Qt and provide everything what you need!
SRA helps you to practical use of Qt with our Software development experiences.We are the only company knows about Qt and provide everything what you need!
17
Experience of GUI Development for Embedded Systems
GUI Framework Development for Embedded
• Elements of GUI Framework Development with Qt
– Integration of Qt with proprietary frameworks
– Custom GUI Components
– Tools for designing screen layouts
– Engine for screen transitions
– Management of ‘resources’ (strings and images)
18
GUI Framework Development for Embedded
• Issues in GUI framework development for embedded
– Technical
• Integration of Qt and proprietary system architecture
• GUI Style different from desktop applications
• Performance
• Integration of Web Browser
• Multilingual support
– Non-Technical
• Mismatch between customer’s expectation and Qt’s offering
• Software development culture
GUI Framework Development for Embedded
• Technical issue:
– Integration of Qt and proprietary system architecture
• Overlapping and competing functionalities between customer's
architecture and Qt frameworks
– Management of threads
– Management of communications
– Management of event dispatching
– etc.
• Good understanding of both of Qt and customer’s architecture are
required.
• Event event dispatching may be the key point
GUI Framework Development for Embedded• Technical issue:
– Integration of Qt and proprietary system architecture
Qt
app. framework
thread network event
othersubsystem
Qt
thread event
GUI framework
thread network event
app. framework
GUI Framework Development for Embedded
• Technical issue:
– GUI Style different from desktop applications
• Low resolution of LCD and touch panels result in
– Simple GUI components (manipulated by user’s fingertips)
– Simple layout design with fixed geometry
– Many, many screens (sometimes more than 1,000 screens)
– Complex screen transitions
• No universal standard look & feels
• Same GUI style covering many products, from small (without Qt) to
large (with Qt).
• These may restrict usage of rich Widget set of Qt
GUI Framework Development for Embedded
• Technical issue:
– GUI Style different from desktop applications
• Custom made GUI Components
– Simple components with fixed features
over flexible feature-rich components
• Layout design tools
– Simple, fixed-purpose format converters and code generators
can help developers greatly
– Flexible, full-fledged design tools ( like QtDesigner ) may be
overkill
GUI Framework Development for Embedded
• Technical issue:
– Performance
• ‘Heaviness’ of QObject and QWidget
• Treatment of Images
• Widget’s opacity
GUI Framework Development for Embedded
• Technical issue:
– ‘Heaviness’ of QObjects and QWidgets
• Are QObjects and QWidgets heavy ?!
– Cost of signal-slot connection
– Cost of ‘thread awareness’
– Cost of ‘moc’ objects
• Solutions:
– POCO (Plain Old C++ Objects)
– POOP (Plain Old Observer Pattern)
– Resulted in a little bit of (yet critical) efficiency,
but complicated code …
GUI Framework Development for Embedded
• Technical issue:
– Treatment of Images
• Image files over images as resources
– ‘On memory’ file systems can be faster than resources as a
container of many images.
• QImage over QPixmap
– QImage permit finer control of pixel depth and formats
– On Qt/Embedded, QPixmaps have few performance
advantages over QImages
• Removal of redundant alpha channels
GUI Framework Development for Embedded
• Technical issue:
– Opacity of Widget
• Opacity of Widgets can result in redundant drawing operations.
GUI Framework Development for Embedded
• Technical issue:
– Integration with web browsers
• Web browsers are becoming essential for embedded devices
• How to integrate browsers
– Make everything on browsers (html + css + javascript)
– Browsers as separate processes
– Browsers as in-process components
GUI Framework Development for Embedded
• Technical issue:
– Integration with web browsers
• Choice of browsers
– Small memory footprint
– Proven commercial browser with technical support
– Proprietary customization and extension
• Benefits of Qt as a proven GUI platform
– Browser Venders are ready to port their products on Qt
– QProcess and QCopChannel make interactions with Browser
process much easy
GUI Framework Development for Embedded
• Technical issue:
– Multilingual support
• Manufacturers sell their products world-wide.
– Qt’s fully supported internationalization gives advantage
manufacturers of products for foreign market
• Advantage of high-quality and low-cost Multi-lingualization
– English, Japanese, Chinese, Korea, French and German
– As well as adapting to Arabic, Hebrew.
GUI Framework Development for Embedded
• Non-technical-issue:
– Mismatching between customer’s expectation and Qt’s offering
• Expected by customers;
– Sophisticated, high performance graphics engine
– Visual design tools for non-programmers
(QtDesigner may be too programmer-oriented…)
• (Sometimes) not expected by customers;
– Qt as total application framework
GUI Framework Development for Embedded
• Non-technical issue:
– Software development culture
• Some gaps yet to be fulfilled…
– Developers grown in ‘Procedural’ C Language
– Tendency toward static, predictable software structure
– Division of research teams and production teams
• Making customers understand benefits of Qt
– Qt is good tool to educate good object oriented programming.
33
Future Challenges for Embedded Development with Qt
Future Challenges for Qt
• Customers Expectations
– GUI Design without programming
– Animated User Interfaces
• Our Expectations
– State-machine framework
– Declarative-UI
– Tighter integration of WEB
Future Challenges for Qt
• GUI Design without programming
– Simplified, customizable, visual designer
• QtDesigner may be too programmer-oriented
– Direct correspondence to Qt API
– Component palette full of Standard Widgets (which are not
suitable for Embedded systems)
– Visual ‘screen flow’ designer
• Screen flows on embedded systems tends to be complex due to
small screen size and growing functionalities
• Screen flows are strictly designed in upper process
Future Challenges for Qt
• Animated User Interfaces– Animated User Interfaces are becoming common
– Uniform animation style across different domains will be essential for
usability
– So we need ‘standardized’ animation framework
Future Challenges for Qt
• State-machine framework
– Nature of embedded systems
• Embedded systems are ‘reactive systems’ driven by events.
• Design and analysis with state-machine models are essential for
high quality embedded systems.
– UI Design point of views
• Complex user interfaces can be modeled with state-machines.
• State-machine models can be end-user friendly and improve visual
design tools
Future Challenges for Qt
• Declarative-UI
– Sophisticated UI Design needs rapid prototyping by UI designers
– End user’s concerns are ‘What’, not ‘How’
– Declarative-UI framework ties between UI designers and End-
users more directly.
– Constructing or evaluating Declarative-UI framework is
challenging and enjoyable for developers, too
Future Challenges for Qt
• Tighter integration of WEB
– WebKit integration tuned for embedded systems
• As a foundation for customizable, extensible user interface
– Tight collaborations between Web and device’s internal
functionalities.
40
Thank you