success story and future challenges of applying qt for embedded linux

41
Success story and future challenges of applying Qt for embedded Linux Software Research Associates, Inc.

Upload: qt-project

Post on 12-May-2015

1.258 views

Category:

Technology


0 download

DESCRIPTION

SRA supports many Qt projects and also develops many applications for their customers with Qt. In this session, you will her about some of the projects Through that experience, SRA has learned knowledge of performance tuning, integration with the third party web browser, project education, internationalization, testing and the best ways of how to apply Qt in future development. Presentation by Osamu Kobayashi and Kenji Sugita held during Qt Developer Days 2009. http://qt.nokia.com/developer/learning/elearning

TRANSCRIPT

Page 1: Success Story and Future Challenges of Applying Qt for Embedded Linux

Success story and future challenges of applying Qt for embedded Linux

Software Research Associates, Inc.

Page 2: Success Story and Future Challenges of Applying Qt for Embedded Linux

Agenda

• Introduction

• Experience of GUI Development for Embedded Devices

• Future Challenges for Embedded Development with Qt

1

Page 3: Success Story and Future Challenges of Applying Qt for Embedded Linux

2

Introduction

Page 4: Success Story and Future Challenges of Applying Qt for Embedded Linux

Where come from

Page 5: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 6: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 7: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 8: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 9: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 10: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 11: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 12: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 13: Success Story and Future Challenges of Applying Qt for Embedded Linux

What we do for Qt

12

Qinput and Qtouch Qinput - Input method front-endQtouch - Flexible software keyboard

Page 14: Success Story and Future Challenges of Applying Qt for Embedded Linux

What we do for Qt

13

• General architecture

T-Kernel/ITRON port (under development)

Page 15: Success Story and Future Challenges of Applying Qt for Embedded Linux

What we do for Qt

14

• Task and process architecture

T-Kernel/ITRON port (under development)

Page 16: Success Story and Future Challenges of Applying Qt for Embedded Linux

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)

Page 17: Success Story and Future Challenges of Applying Qt for Embedded Linux

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!

Page 18: Success Story and Future Challenges of Applying Qt for Embedded Linux

17

Experience of GUI Development for Embedded Systems

Page 19: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 20: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 21: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 22: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 23: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 24: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 25: Success Story and Future Challenges of Applying Qt for Embedded Linux

GUI Framework Development for Embedded

• Technical issue:

– Performance

• ‘Heaviness’ of QObject and QWidget

• Treatment of Images

• Widget’s opacity

Page 26: Success Story and Future Challenges of Applying Qt for Embedded Linux

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 …

Page 27: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 28: Success Story and Future Challenges of Applying Qt for Embedded Linux

GUI Framework Development for Embedded

• Technical issue:

– Opacity of Widget

• Opacity of Widgets can result in redundant drawing operations.

Page 29: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 30: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 31: Success Story and Future Challenges of Applying Qt for Embedded Linux

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.

Page 32: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 33: Success Story and Future Challenges of Applying Qt for Embedded Linux

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.

Page 34: Success Story and Future Challenges of Applying Qt for Embedded Linux

33

Future Challenges for Embedded Development with Qt

Page 35: Success Story and Future Challenges of Applying Qt for Embedded Linux

Future Challenges for Qt

• Customers Expectations

– GUI Design without programming

– Animated User Interfaces

• Our Expectations

– State-machine framework

– Declarative-UI

– Tighter integration of WEB

Page 36: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 37: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 38: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 39: Success Story and Future Challenges of Applying Qt for Embedded Linux

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

Page 40: Success Story and Future Challenges of Applying Qt for Embedded Linux

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.

Page 41: Success Story and Future Challenges of Applying Qt for Embedded Linux

40

Thank you