success story and future challenges of applying qt for embedded linux

Post on 12-May-2015

1.259 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

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

top related