Moreover, carefully selected Qt and Qt Tizen Integration packages are now built within the Tizen.org infrastructure. This means pre-compiled binaries are easily available to application developers and system integrators on current and future Tizen profiles, for use with emulator and available Tizen devices.
The following numbers present scale and importance of inclusion contributions from Qt Project in Tizen:
Number of modules and classes indicate how wide functionality is covered by Qt APIs. Given the level of coverage, the size of the code base is considered to be small.
Source Code Repositories
Currently there are 11 repositories related to Qt, all are located in platform/upstream/ path.
This indicates that they originate in unmodified form from the "upstream" open source Qt Project.
All these repositories are since December 2 officially managed by Tomasz Olszak, a co-founder of Qt for Tizen. He has been nominated as one of the two very first maintainers coming from the open source community in Tizen's history.
Among the repositories, 10 come from Qt:
|Common features such as build tools, documentation tools, QObject, GUI support, networking, XML...
|A wrapper used to select between Qt development binary versions
|A set of QML types for adding visually impressive and configurable effects to user interfaces. There are over 20 distinct effects.
|Qt Graphical Effects
|Optional support for other image file formats: MNG, TGA, TIFF, WBMP.
|Qt Image Formats
|A set of controls that can be used to build complete interfaces in Qt Quick, and Qt Quick Layouts, a set of QML types used to arrange items in a user interface.
|Qt Quick Layouts
|Provides access to sensor hardware and motion gesture recognition. There is also a plugin that handles Tizen smartphone sensors.
|Sensors Plugin for Tizen
|Application development facilitating tools.
|Qt UI Tools
|A wrapper for Wayland, a light-weight windowing system. It separates a client side and allows running Qt applications as Wayland client, and the server side allowing to write custom Wayland compositors.
|Support for XPath, XQuery, XSLT and XML Schema validation.
|Qt XML Patterns
Another repository is a child of the Qt for Tizen project. It delivers features that are already well known to readers of this blog:
|A set of Qt Quick Controls and Styles compliant with Tizen Mobile style.
The large number of repositories indicate deep modularization of Qt which is welcome by engineers preparing actual devices. They can carefully cook a custom version of Qt dedicated for their specific requirements.
Automated builds are possible in Tizen thanks to the Open Build Service (OBS), an open platform that provides a transparent infrastructure for development of Linux distributions. It originated in openSUSE and MeeGo, and also supports Fedora, Debian, Ubuntu, RedHat etc. Qt for Tizen's sister project Mer is also using it.
Tizen's OBS infrastructure is located at https://build.tizen.org.
Example of qt5 build configurations for i586:
Example statuses of ARM and Intel Atom builds:
Qt packages are built every day from source code repositories, results of the builds are published, and binaries are available for testing.
Tizen Project's infrastructure is similar to that of the Qt Project. Code Review service is similarly based on Gerrit and is located at https://review.tizen.org/gerrit.
Thanks to the tight integration with Tizen project's development workflow, Qt for Tizen project can now be more up-to-date with the changes happening in Tizen 3.0. Issues reported by Tizen and Qt tests can be fixed faster.
Where From Here?
From now on we will focus on improving quality by passing auto tests and adapting to the forthcoming Tizen 3.0. So far we have focused on key Qt modules but there are more modules in the pipeline:
These modules are located in the following repositories of the Qt Project:
- qt3d - Qt 3D adds 3D content to Qt Quick's cross-platform ability and coding power. Developers of fluid user interfaces can now enhance their applications with 3D content.
- qtjsondb - JSON DB is a no-SQL object store for Qt. It allows JSON objects to be stored, modified and queried without schemas like SQL database, which makes it particularly flexible. It offers integration with Qt Quick UIs.
- qtconnectivity - Qt Bluetooth for Bluetooth connectivity, Qt NFC for NFC connectivity.
- qtfeedback - Qt Feedback for controlling and providing tactile and audio feedback to the user.
- qtlocation - Qt Location, Qt Positioning Provides location positioning, mapping, navigation and place search via QML and C++ interfaces.
- qtmultimedia - Qt Multimedia provides a rich set of QML types and C++ classes to handle multimedia content, provides necessary APIs to access the camera and radio functionality.
- qtpim - Qt Organizer for accessing organizer events (todos, events, etc.), Qt Contacts for accessing addressbooks and contact databases, Qt Versit for converting contacts to and from vCard files and to convert organizer items to and from iCalendar files.
- qtscript - Qt Script provides support for application scripting with ECMAScript.
- qtserialport - Qt Serial Port provides the basic functionality, which includes configuring, I/O operations, getting and setting the control signals of the RS-232 pinouts.
- qtsvg - Qt SVG provides classes for rendering and displaying SVG drawings.
- qtsystems - Qt Publish and Subscribe, Qt Service Framework, Qt System Info.
- qttranslations - includes translation of Qt built-in messages
- qttizenextras - Qt for Tizen project's own repository with extra Tizen-specific APIs
- qtwebkit - Qt WebKit provides the WebView API which allows applications to render regions of dynamic web content
("Qt in Tizen" composition based on work by Marília Almeida, CC BY 2.0 http://flic.kr/p/c5Fhy, thanks!)