Success Story and Future Challenges of Applying Qt for Embedded Linux
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Success Story and Future Challenges of Applying Qt for Embedded Linux

  • 1,845 views
Uploaded on

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......

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

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,845
On Slideshare
1,838
From Embeds
7
Number of Embeds
1

Actions

Shares
Downloads
37
Comments
0
Likes
0

Embeds 7

http://www.slideshare.net 7

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Success story and future challenges of applying Qt for embedded Linux Software Research Associates, Inc.
  • 2. Agenda • Introduction • Experience of GUI Development for Embedded Devices • Future Challenges for Embedded Development with Qt 1
  • 3. Introduction 2
  • 4. Where come from
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. What we do for Qt Qinput and Qtouch Qinput - Input method front-end Qtouch - Flexible software keyboard 12
  • 14. What we do for Qt T-Kernel/ITRON port (under development) • General architecture 13
  • 15. What we do for Qt T-Kernel/ITRON port (under development) • Task and process architecture 14
  • 16. What we do for Qt ■ Partnership with Nokia, Qt Development Frameworks(Trolltech) Received a request “Partnership Agreement” Received a request “Partnership Agreement” 2000 from former Trolltech from former Trolltech Started Qt training in Japanese Started Qt training in Japanese 2002 (A Customer requested Japanese training to Trolltech) (A Customer requested Japanese training to Trolltech) July, 2003 July, 2003 2003 execution of Partnership agreement execution of Partnership agreement 2004 Started Qt Embedded Started Qt Embedded SRA is a leading company in Qt business, started “Qt full support” in Japanese Our “One-Stop Support Service” satisfies you in Qt use. We all provide “License, Training, Consultation, Software development.” Authorized Qt trainers We 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. 15
  • 17. What we do for Qt ■ We provide everything you need! ! “license, consultation, software development, training, one-stop full support” Distribution Distribution Seminar Seminar - Qt license - Free experience seminar/Training - SRA Original Qt Solution ・SW keyboard「Qtouch」 ・Japanese input module「Qinput」 - automatic test tool Squish for Qt Consultation Consultation - Introduction support - Customization、Tuning Support Support Software development Software development - Support in Japanese -Development team with Qt experiences - LGPL Support -Cooperate with Qt support team -Automatic test by Squish for Qt SRA helps you to practical use of Qt with our Software development experiences. 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! We are the only company knows about Qt and provide everything what you need! 16
  • 18. Experience of GUI Development for Embedded Systems 17
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. GUI Framework Development for Embedded • Technical issue: – Integration of Qt and proprietary system architecture Qt Qt other GUI framework subsystem thread event app. framework thread network event app. framework thread network event
  • 23. 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
  • 24. 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
  • 25. GUI Framework Development for Embedded • Technical issue: – Performance • ‘Heaviness’ of QObject and QWidget • Treatment of Images • Widget’s opacity
  • 26. 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 …
  • 27. 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
  • 28. GUI Framework Development for Embedded • Technical issue: – Opacity of Widget • Opacity of Widgets can result in redundant drawing operations.
  • 29. 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
  • 30. 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
  • 31. 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.
  • 32. 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
  • 33. 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.
  • 34. Future Challenges for Embedded Development with Qt 33
  • 35. Future Challenges for Qt • Customers Expectations – GUI Design without programming – Animated User Interfaces • Our Expectations – State-machine framework – Declarative-UI – Tighter integration of WEB
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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.
  • 41. Thank you 40