Dear ladies and gentlemen(all), Thank you for coming, I highly appreciate your time and interest of my speech. At the beginning, let me introduce myself. My name is Tomasz Olszak and I am Qt, Tizen and opensource enthusiast. I would like to mention that the Qt for Tizen project, which I describe here later in more details, is fully my free time activity. I hardly believe that my speech will present why Qt and Tizen can do more together and you will be encouraged to try out Qt in Tizen related projects and applications. The speech will have 3 parts first I will try to show a bigger picture of the whole idea, next I will briefly describe Qt in form of answers to frequently asked questions and in the end I will present the Qt for Tizen project in more details. I also plan 10 minutes window for question and answers. But don&apos;t hesitate to to ask question during the speech.
So first question:Why Qt and Tizen? Why the idea you will ask me... So in 2012, I took up some personal decisions to return to full time development after a few years of project management. I wanted to do something meaningful, something which could be used by other people. A few months later in early 2013, Tizen 2.0 was released together with Tizen SDK and the emulator. I read a lot about the system itself and also tried out SDK and emulator. One day, while I was jogging, I came up with an idea to port Qt to Tizen emulator. I had ported Qt to some STB platforms before, so I was pretty sure that it shouldn&apos;t be such hard to repeat the steps for Tizen emulator. I discussed the idea with my friend Jarosław Staniek who is an experienced Qt developer and member of KDE community. He encouraged me to do this. When the work had been completed, me and Jarosław decided to start Qt for Tizen project.
So why Tizen? The answer is simple. Because it is very interesting and has perspectives. It is young but have very rich family tree. Besides having open governance model it is also commercially supported by big market players... Yes in my opinion the one of big Tizen&apos;s advantages is direct connection with business. There is common Tizen codebase. This codebase is shared between different Tizen profiles like mobile, ivi, wereable, tv. It has or it will have strong security which is not provided by competitive platforms. It provides very advanced web technologies It is based on most up to date open source projects It is openly governed and the community is inclusive IMHO Tizen can have big impact on whole Linux world
So you know why I interest in Tizen... but Why Qt? Could I ask how many of you have heard about Qt? Could you please rise your hand? As I thought so, most of you have. How many of your have implemented anything using Qt? So about n% of the audience. Not bad. I wonder if you can be considered as a representative sample (it is meant to be quasi joke) I work with Qt for about 7 years. I would like to bring up some interesting facts about this technology. Qt is openly governed and has open source licensed, that&apos;s why it is easy to adapt in open source projects like Tizen It is a C++ framework but at the same time it is very flexible. It provides scripting engines and web bindings Probably most interesting, recent, Qt invention is the Qt Quick module. Thanks to Qt Quick, developers can create fluid, modern, OpenGL based UI and UX. It also has set of very mature desktop Components called Qt Widgets It not only has bindings to web engines like WebKit and Blink, but also have many web components which enhance Qt Quick and Qt Widgets modules One of the most important Qt&apos;s characteristics is its very good performance It also provides very convenient multimedia module And last but not least, famous Qt Creator IDE is based on Qt, is implemented using Qt, hence it is not surprising that it has excellent integration with Qt We can say that Qt brings game development UI and UX to application development world
So what&apos;s the benefit of using Qt in Tizen? In Tizen different profiles can use different subsets of libraries and features. It is clear that Qt complements these features. It is the only common C++ framework available for all profiles, and it is one of the most stable and mature open source projects. Hopefully Qt will increase set of Tizen profiles and related projects. That&apos;s the bigger picture. What about manager point of view? One of the technology aspects and one of the arguments behind choice of certain technology is an availability of experienced developers. Last years research showed, that there is more than a 5 hundred thousand Qt developers around the world. Thanks to being familiar with Qt, they write better code, better API, the code is easier to read. By choosing Qt managers can focus on strategic goals, schedule, not on the insufficient workforce, not on the recruitment. On the other hand, from developer point of view, by choosing Qt, developer can focus on the results, on fulfilling the requirements, not on struggling with the framework, the lack of documentation, the framework misbehaves and so on. IMHO the Tizen and Qt together can do more, together can provide ways for faster, less resource consuming and beautiful results for the end users. We all know that In the end it all is about end users and for end users? I truly believe that Qt can boost many Tizen project and probably support some new Tizen profiles. We can say that Qt gives a chance to address the goal which were not considered before because of technology limitations.
Now I would like to quickly provide a few facts about Qt in form of frequently asked questions. I was asked those questions in numerous emails while working on Qt for Tizen project.
What are the most relevant bits of Qt history from Tizen perspective? * 2005 – Qt 4.0 was released. It was a big step further comparing to Qt 3 * 2008 – Nokia bought Qt * 2009 – Qt became available under LGPL license – it becames free to use for commercial projects * 2011 – Qt open governance started. Tizen open governance model is very similar to Qt&apos;s one * 2012 - Digia bought Qt trademark. Digia became owner of logo, trademark, thus Nokia lost any right to Qt. * December 2012 – Qt 5.0 released together with famous Qt Quick 2.0 module * May 2014 – Qt 5.3 was released. It is still nice and warm so you can download and try it out. One of the most important features introduced in this version is Windows Phone support.
Qt is supported on numerous platforms. We can identify two sets of supported platforms: commercially supported and community supported. Comercially supported platforms are: *desktop platforms– linux, windows, max osx *embedded platforms– Android embedded, linux embedded, Windows CE, Qnx, VxWorks and Integrity * For the last few years tremendous effort have been taken up to bring Qt to most popular mobile platforms like Android, iOS and Windows Phone. Some of mobile system are based on Qt like BB10 from blackberry and Sailfish OS.
Apart from commercially supported there are also community ports. Qt has been ported to: * WebOS, * open solaris, * Haiku * OS/2 * Ubuntu Phone * Amiga OS * Amazon Kindle DX * and of course Tizen.
As I have mentioned before there are 2 licensing models available for Qt which is probably most widely used under open source licenses like GPL 3.0 and LGPL 2.1 Digia provides commercial licenses like Qt Enterprise and Qt mobile. They are briefly described on Qt project and Digia websites so I will not go into more details here. What I would like to mention is one interesting fact regarding Qt&apos;s Open Source licenses. As you may know KDE frameworks are fully implemented using Qt. That&apos;s why in 1998 Trolltech, the company behind creation of Qt and KDE e.V. founded KDE Free Qt Foundation. Currently the foundation ensures that Qt will continue to be available under both LGPL 2.1 and GPL 3.0. If Digia discontinues the development of Qt free edition under these licenses, then the foundation has the right to release Qt under BSD-style or any other open source licenses.
Another question asked by many developers interested in Qt and Tizen are Qt technologies. I made a short brief to asnwer thiese questions. Qt consists of many modules. The most important are: * Qt Core – basis of all other Qt modules, non-gui applications and libraries * Qt Gui –contains base classes for gui related development, also contains OpenGL convenience API * Qt Widgets – Very rich C++ components with platform (desktop) adaptation. It is possible to use it with conjunction with OpenGL * QtWebKit/QtWebEngine – C++ and Qt Quick API for web integration. Qt WebKit module is for WebKit 2 and QtWebEngine is meat to be engine independent but currently bases on blink. * Qt Qml – enables development of application and libraries using QML language * Qt Quick – contains visual components, mainly with declarative API, Open GL based, it uses very efficient scenegraph which enables painting optimizations in GPU friendly manner * Qt Multimedia – contains common c++ and Qt Quick API for different multimedia backends. On Linux it is gstreamer. Qt Multimedia provides way of handling multimedia content like: video, sound, radio, camera *Qt Creator SDK, It is open source project used by many non Qt developers for day to day work. It has plugins architecture encouraging to enhance it with different use cases. I know that many people develop internal plugins e.g. for task time tracking.
Qt also contains many addons. They are very useful and complete standard Qt modules. Let&apos;s bring up a few that are currently very welcomed in Tizen ecosystem:* Qt D-Bus - Qt API for dbus integration * Qt Positioning – API for maps and geolocation. It should work with Nokia here maps provided in Tizen. but it has not been tested yet. * Qt Sensors – API for sensors like magnetic sensor accelerometer, gyroscope, light sensor and many others * Qt Graphical effects – many predefined shader based effects available for Qt Quick applications * We can also mention Qt NFC, Qt Websockets, Qt Bluetooth, Qt Serial Port, Qt SVG and many many others.
Now let me shortly present you Qt for Tizen initiative.
As I have mentioned before, Qt for Tizen project was founded by me and Jaroslaw Staniek in May 2013 and exists under Qt Project umbrella(It means that we have some community space for Qt for Tizen releases, access to Qt&apos;s wiki and support of all Qt experts involved in Qt development). In Qt for Tizen I&apos;m responsible for coding, integration, build system and releases. Jaroslaw is responsible for marketing activities like maintaining the blog and community channels. I would like to mention that our work would be much harder without help of Leon Anavi. Leon thank you for being a big support from the start and for the never-ending tests. You all should know that for the first few months we didn&apos;t even have access to Tizen Developer device so I was sending Leon Qt binaries again and again and he tested it... again and again. The main goal of Qt for Tizen is to enable Qt for 3rd parties, developers and project founders involved in Tizen development. The project can be considered as done when the integration will be complete and merged to Qt and Tizen&apos;s upstream.
Now I would like to present some videos showing last year progress of Qt for Tizen project. After porting to Tizen emulator, I managed to compile and run Qt on Tizen Developer devices RD-210 and RD-PQ. The application visible on video is famous Qt 5 Cinematic experience. It contains high level of UI and UX features. It is implemented using Qt Quick 2 and is an example of fluid user interface achievable in Qt Quick technology in just little more than a thousand lines of code. We can see here 60FPS animations, different shader effects (like curtain and shadows generated by source of light) we can also see fog generated by Qt Particles System.
In this video we can see Qt Quick Controls module with Tizen look and feel. This module bases on Tizen Native controls available in Tizen Mobile. Resources like images and design documents was used to provide Qt Quick Controls style for Tizen. We see sliders, check boxes, buttons, progress bars, tab bars, Labels, Scroll decorators and so on. Black and white tizen styles are handled. You can see the page effect used to change the style in a runtime. We don&apos;t see this on the video but there are also screen orientation changes implemented. The window content adapts to device orientation.
When the Tizen app challenge was announced many Qt developers started to interest in Tizen. They wanted to port Qt games and applications to Tizen or to implement some new innovative ideas (I remember a guy who was working on language translator based on yandex services. And other one who made application which took snapshot when device was shaken. He have won a Tizen hackaton if I recall correctly). Here we can see very interesting, opensource, massive multiplayer online rpg game – Source of tales running tizen. In this video we can also see integration with Tizen virtual keyboard. Integration with device sensors is also worth mentioning. Up to ten sensors was handled including rotation sensor, accelerometer, light sensor gyroscope.
Currently Qt Creator based SDK is available for Tizen mobile 2.2. It uses some packaging tools from Tizen SDK. Is supports cross compilation, application package creation and deployment to device using smart development bridge. It also has manifest file editor, so one can easily customize most important elements of Tizen&apos;s manifest using GUI. Qt Creator SDK can also be used for Tizen IVI and Common. It can deploy the applications and libraries to devices using ssh protocol. I&apos;m also responsible for maintaining Qt packages in Tizen.org. 12 Qt repositories are splitted into almost 100 hundred rpm&apos;s packages and are available for all Tizen 3.0 profiles (mobile, common and ivi).
There are many ideas of how to improve Qt integration with Tizen. I will only mention some of them: * Remote debugging from Qt creator – it already works in IVI and Common but it should be possible using sdb * Help 3rd party developers to submit applications to tizenstore. Currently there are some compliance issues with using X11 symbols by Qt platform integration plugins. I know that some people are trying to determine the steps that should be taken to submit Qt application to tizenstore. * Create complete Qt Quick plugins for Automotive Message Broker * Deliver Qt Web Engine based on blink * Deliver Qt Wayland Comositor API – to create custom and fluid wayland compositors * Many others like nfc, bluetooth, maps This challenges will not necessarily be part of Qt for Tizen initiative. As I mentioned before the goal is to merge basic Tizen integration to Qt&apos;s upstream. Other activities are support or satellite projects.
Now is the time for some more questions. Anyone has any question?
I would like to thank all of you for devoting your precious time to my speech. I hope that you enjoyed it. I also hope that some potential doubts regarding using Qt in Tizen projects were solved. If you have any more questions you can find me on the conference. You can also find my email on Qt for Tizen wiki or blog. Thanks you once again and have a nice, interesting day.
Qt and Tizen together can do more - Tizen Developer Conference 2014
Qt and Tizen
together can do more
Qt, Tizen and Open Source enthusiast
Recent Qt history
2008 Nokia bought Qt
Qt became free to use for open source and commercial projects
(LGPL 2.0 license)
2011 Qt Project under open governance started
2012 Digia bought Qt trademark from Nokia, thus Nokia lost any rights to Qt
December 2012 Long awaited Qt 5.0 released
May 2014 Qt 5.3 released
Mac OS X
Amazon Kindle DX
● LGPL 2.1
● GPL 3.0
● Qt Enterprise
● Qt Mobile
● QtGui – Base classes for graphical user
interface (GUI) components. Includes
● QtNetwork - Classes to make network
programming easier and more portable.
● QtWidgets - Classes to extend Qt
GUI with C++ widgets.
● QtQuick – A declarative framework for
building highly dynamic applications with
custom user interfaces.
● QtCore - Core non-graphical classes
used by other modules.
● QtSql - Classes for database integration
● QtTest – Classes for unit testing Qt
applications and libraries..
● QtQML - The Qt QML module provides a
framework for developing applications and
libraries with the QML language.
● QtWebkit/QtWebEngine - Classes
for a WebKit2/blink based implementation and
a new QML API.
● QtMultimedia - Classes for audio,
video, radio and camera functionality.
● Qt D-Bus
● Qt Positioning – maps and geolocation
● Qt Sensors
● Qt Concurrent
● Qt Bluetooth
● Qt NFC
● Qt WebSockets
● Qt Graphical Effects – OpenGL shader
based components for use with Qt Quick
● Qt Image Formats - plugins for additional
image formats: TIFF, MNG, TGA, WBMP.
● Qt Print Support
● Qt SVG
● Qt Serial Port
● Qt Xml Patterns - support for XPath, XQuery,
● Enginio - a Backend-as-a-Service solution to
ease the backend development for connected
and data-driven applications.
What is Qt for Tizen?
The Qt for Tizen project was founded in May 2013. Initiative is
addressed to developers and by developers. It exists under Qt Project
The main goal is to enable Qt for 3rd
parties, developers and project
founders involved in Tizen by:
● Support Tizen Community (blog, G+, twitter, facebook, irc)
● Deliver Qt binaries
● Deliver Qt integration
● Deliver Qt Creator based SDK
Qt ported to Tizen Mobile RD-210 and RD PQ device and Emulator
Qt Quick Controls Tizen Mobile style
Qt for Tizen enabled
submission of many
applications to Tizen App
Integration with Tizen Mobile sensors
Qt Creator integration with Tizen
Mobile, IVI and Common
12 Qt repositories available for all
public Tizen 3.0 profiles
● Full Qt Creator integration including remote debugging
● Integration with future Tizen's security enhancements
● Compliance with Tizen Store policy
● Qt Quick Automotive Message Broker plugins
● Qt Web Engine
● Qt Wayland Compositor API
● Further integration: maps, nfc, bluetooth...
● You choose!