Qt Quick Components for Qt 5
- Qt Quick Components for multiple platforms
- Cross platform achieved through, “One code base”
- Provides Qt look & feel and behavior
- For developers would mean good looking applications that works similarly on various platforms (not necessarily with native look&feel)
- Customizable components
- Platform specific components could use these components as baseline so that common API and behavior for components would be met
- Each platform is providing its own widget set (Symbian, Meego Harmattan Nokia, MeegoUX Intel)
- Some commonality on the Common API on the Nokia component set, but not enough to provide a solid cross-platform solution
- Component set between Symbian / Meego differs
- common api, but behaviors are not guaranteed to be the same
- Desktop components is out of scope for this discussion (on the desktop we can provide a QWidget like cross-platform api)
There are now at least 3 component sets developed, during this process we learned that it is extremely difficult to create a cross platform offering for platforms that are still in development. This effort involves synchronizing teams working on different platforms, with different requirements (for styling and theming, for example), to do a collaborative development that in the end might slow the whole process down, which is critical in the device release context.
It is natural that platforms provide their own widget set, but Qt should ease the task of application developers that want to target the highest share of devices/platform possible. Qt needs a widget set with an api to be used as basis for app developers and also as a reference implementation for new platforms.
- We’re lacking clear 3rd party story “Code once, run everywhere”
- Demand for UI components that runs across multiple platforms
- It is not worth trying to do 100% merge of code base of different platforms: for example, Meego and Symbian
- We have seen in Meego/Symbian components activities that when developing for a specific platform, the focus is tightly related to platform specific problems. Thus, creating platform dependencies.
What to do (plan)
- Mission: “provide a style for mobile devices that works everywhere, as a cross-platform solution for application developers”
- Cross platform achieved by using the same code base!
- Easy to use mobile friendly navigation model
- Page concept provides a browsing like experience that is understood by end-user
- Most mobile UIs have a similar concept
- Platform neutral Qt look and feel
- promote collaborative design in the open source community
- API and behaviors defined by Qt
- Start as Qt 5 add-on
Way to get there
- Develop project openly as Qt 5 add-on
- Use the custom/template branch of qt-components repository as basis for customization possibilities
- Styling APIs would not be opened at the first phase. (we still can have a private styling api internally)
- No platform specific code involved, would run on top of Qt Quick (Qt Quick 2?)
- In spirit of “Code once, run everywhere”
- Best would be QML code only, without compilation needs (this is not a hard requirement)
- What components?
- basic core controls: button, checkbox, radiobutton, switch, buttongroup, buttonrow, slider, progress, TextArea, TextField
- advanced (later): page, dialog, window, screen, context menu, toolbar
- out of scope: tooltip, menu