Gerrit makes contribution much easier than pure Git before (codereview.qt-project.org) Everyone (internal and external) is using the same process
Fair Not important where you work or who you are or how much money you have. But it ’ s all about what you do! Transparent Nokia committed to being transparent about it ’ s work What you see is what you get. All discussions are out in the open: roadmap, reviews, feature requests, bugs. !!! Code that ’ s not visible doesn ’ t exist for the project (if you want to build anything commercial on top of Qt, it ’ s OK, but it doesn ’ t matter to Qt Project as long as it is not visible) Inclusive Everybody ’ s welcome. Tasks: tiny or large contributions - everything is welcome (patch, bug fix, wiki, documentation, localisation, etc.) Meritocratic Who you are depends on what you do Who does the most in the project has the most say (it ’ s not a democracy!)
Increased Stability Scrutiny, Public testing. More people/eyes looking at the code. New code review tool (Gerrit) with CI system integrated. Avoids regressions as long as good auto test coverage. Time based releases & releasable master code line Richer Releases More contributors & contributions Nokia can ’ t do everything although Nokia is still doing a lot with 200+ Qt developers Two big contributions within two days of Qt Project starting: DirectFB backend for Qt5 and QStandardPath (standard locations on different platforms) Increased visibility Open roadmaps and decision making You can find out exactly what is going on - nothing hidden. Make Qt fit your needs You can influence the direction of where Qt goes. More opportunities for Qt experts New business and job opportunities
Contributors: everyone can contribute Approvers: gatekeepers who decide whether something goes into Qt or not more experience with Qt can decide whether a contribution fits the direction/vision of the project, coding style OK, contribution improves Qt Maintainers: Have responsibility for a submodule like QtCore, QtGui, QtNetwork, QtDeclarative Have power to make decisions in their area of the code Webkit only has contributors and approvers, because they develop against open standard. But: we are free to choose our APIs, decide whether an API is OK and fits with Qt vision, where does the API belong Chief Maintainer (Lars Knoll): Resolves conflicts if maintainers can ’ t agree
Gerrit makes contribution much easier than pure Git before (codereview.qt-project.org) Everyone (internal and external) is using the same process
Talk about our strategy of getting next billion people to Internet with mobile phones On N9, you can already write apps for next-billion devices Nokia is still employing more than 200 Qt developers and hiring Qt is used on 100M+ Symbian phones for writing apps Talk about who uses Qt (key accounts: automotive, home media, IP comms)
Released in mid December 2011 QtQuick 1.1: pinch area, right-to-left scripts, split-screen virtual keyboards, (shader effects) Performance: threaded OpenGL (buffer swap, texture uploading, Qt painter in separate thread), http requests for downloads now multi-threaded, file systems (Windows, Symbian, Linux) HTML5: new Webkit version (2.2), HTML5 elements: audio, video, canvas; multi-touch, web storage, application storage, Web SQL, CSS animations Lighthouse/QPA: makes it easier to port Qt to new platforms, best examples: DirectFB, Android, iOS
Whole ecosystem = desktop, mobile, embedded State-of-the-art UIs = QWidget is not quite up to the task any more; were created before OpenGL became into wide use; e.g., animations difficult and time-consuming Modular = More and smaller libraries for more flexibility and smaller footprint Qt 4.x compatibility = porting QtMediaHub (8000 loc QML, 10000 loc C++) took less than half a day, much smoother than Qt3 to Qt4 Qt 5 consists of largely the same code as Qt 4.8 and Qt Mobility 1.2, which is arranged in a simpler and more modular way. Combining Qt Mobility and Qt ” proper ” like this makes the solution a lot easier to understand. Also the universally cross-platform parts are easier to identify. Modularity ensures a smaller footprint This starting point ensures source code compatiblity with Qt 4 – in 99% of cases In the functional side, the all-new graphics stack optimized for Qt Quick makes Qt a modern toolkit for all target segments
Qt Quick 2 Compatible with Qt Quick 1.1 State of the art V8 JavaScript engine All-new Graphics stack: Accelerate the whole UI Smooth UI driven by the vertical blank signal Accelerated text rendering Open GL shader effects with a convenient API New structure: Modularity Qt Essentials and Qt Add-Ons 10 new Qt Quick features: Particle System Organically animate a large number of visual particles with variations such as turbulence, velocity and frequency Target applications: games and multimedia applications Canvas API Draw arbitrary shapes in QML Target applications: Stock app with graphs Multi-touch element TouchArea element provides raw multi touch data (x, y) Drag and Drop In-process drag and drop support Custom easing curve Letting the developer assign exact influence values to customize the speed of animation Module API Loading arbitrary functionalities into QML. Module API is either QObjects or QJSValue Locale API Providing same features as in C++ QLocale API Path animation Animating visual elements along a path View/Model improvements Making it easy to group items within a view without affecting the model View transitions Enable animated transition when item is move or added to a view
Qt Quick 2 Compatible with Qt Quick 1.1 State of the art V8 JavaScript engine All-new Graphics stack: Accelerate the whole UI Smooth UI driven by the vertical blank signal Accelerated text rendering Open GL shader effects with a convenient API New structure: Modularity Qt Essentials and Qt Add-Ons 10 new Qt Quick features: Particle System Organically animate a large number of visual particles with variations such as turbulence, velocity and frequency Target applications: games and multimedia applications Canvas API Draw arbitrary shapes in QML Target applications: Stock app with graphs Multi-touch element TouchArea element provides raw multi touch data (x, y) Drag and Drop In-process drag and drop support Custom easing curve Letting the developer assign exact influence values to customize the speed of animation Module API Loading arbitrary functionalities into QML. Module API is either QObjects or QJSValue Locale API Providing same features as in C++ QLocale API Path animation Animating visual elements along a path View/Model improvements Making it easy to group items within a view without affecting the model View transitions Enable animated transition when item is move or added to a view
Qt 5 release includes a holistic end-to-end tested package No more separate Qt Mobility Qt Essentials Modules that are available on all platforms What most app developers need for their daily work Binary compatibility required Tools Qt Creator – Cross-platform IDE Build tools Internationalization Qt Add-Ons Modules that provide additional value on specific environments No binary compatibility required Complementary tools
Explain why QtWidgets is an add-on: it is not on every platform in future, makes less sense on embedded and mobile devices
mention embedded devices that can use Direct FB for surface management and software rasterizer for user interfaces => perfect for digital TV use casesMesa llvmpipe multi-threaded SW rasterizer, for both embedded and desktopIn general , there are 3 ways to get Open GL for WindowsOpenGL drivers from the display adapter vendorGoogle’s ANGLE project: OpenGL on DirectXMesa llvmpipe
Time-based releases: Equally unfair to everybody ;) If you don’t finish your feature in time, you won’t get it in. But, you have a new chance with a new release in short time.Integrated OpenGL rendererSolutions for OpenGL on WindowsTransparent switching between HW and SW renderingProcessor architectures:MIPS little-endianQt 5.0: x86 (IA-32), x86-64, ARM
Gerrit makes contribution much easier than pure Git before (codereview.qt-project.org) Everyone (internal and external) is using the same process