Qt 6 will bring massive improvements to QML and 3D development

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Applause] [Music] [Applause] first of all his the acute project and a chief maintainer and also is the CEO of the cute company so let's give a warm welcome to there's no [Applause] thanks Christian welcome everybody and hello for my side as well fantastic to be here again in in Berlin at the BCC it's becoming a bit of a tradition I'm up here on the stage I've been here for the for the last years and fantastic to be here again today I'll have a slightly different keynote than the other years it's going to be a little bit more forward-looking looking towards what we are planning to do with cute 6 but we'll have a couple of cute things around cute 514 and 515 as well as old don't worry about that you'll get to hear quite a bit around this the other thing that's going to be a bit different is that this year I won't be alone on stage I'll have a little bit of help from some of our engineers talking about some of the different things that we've been holding on and doing over the last year with that and before we go into the technical things maybe let's get started and with a little bit of some statistics and and some fun facts maybe takes a little while let's start with our ecosystem one way we used to measure that is looking at the download numbers for cute and those have been really growing nicely over the last years it shows really but we're getting a lot more people into using huge downloading the product using it and we're seeing a big growth between 2018 2019 we're now went up from you know into 2016 below 4 million - buffs expecting above 6 million this year once the years over a good part of the increase has actually also been due to certain new products we've launched cute before Python has been generating a lot of additional downloads and shown given showed a lot there's a lot of interest that has for the product there I won't be talking too much about cute for Pisan today there will be additional talks later on but going more into some of the other things also one fact just looking at you what platforms are you using to develop on and you can see the biggest part is actually about using Windows as the host operating system Linux is still pretty big especially probably for many of the people also using and developing for the embedded side and then we have Mac OS as the smallest one of the host platforms but still really really important to us it's also been some evolution on Windows that's for the place where we have a lot of different compilers that we need to support and it's interesting to see some of those changes there ming g:w has been pretty stable between 25 and 35 percent year-on-year but what we've been seeing is a big change on the Microsoft compiler side M as we see 2013 is fortunately almost gone by now 2015 is in pretty rapid decline and in 2006 6.17 is really picking up but start supporting 2019 so of course as well what we're seeing there that our you our users are actually upgrading to a newer versions of compiles much faster than we have seen in the past there's also a big shift ongoing and we're finally getting to a point where we can put 32-bit to the west pretty hopefully in a soonish we're seeing that when two years ago it was still about 50/50 that nowadays more than 2/3 of the downloads of of cute' are 4 6 the 64-bit word versions so there's a big change happening there and it's good that we're finally getting rid of the 32-bit on the desktop it's have a quick look and overview over the world map what's happening 512 is something we released last year I talked about 512 when I was here last year at this World Summit we will East queued 513 in June you probably had a look at that and some of the new features so I'm not going to talk about those two releases anymore but we'll talk a little bit about 514 that's coming out relatively soon now hopefully still during this month maybe I'll go into December we'll see and then we will have a 515 long-term supported release again that is planned for me but after that we'll get our going to have a slightly larger break and we're moving over towards the next major version of cute and cute six and I'll be telling you a little bit about some of the planned changes for that later on in this talk but that start was 514 and 515 some of the new things in 514 we've added support for calendaring systems some something that was one of the missing features in our internationalization support you can use non-western calendars the Chinese calendar Arabic Hebrew calendars was cute in an easy way and lots of work to update our high DPI support especially also supporting now non-integer scaling factors a big we highly requested feature especially on Windows added color space support for cue images our partner k-dub has been doing a lot of work on improving performance include 3d so that's also really a really awesome improvement we've done things that we're doing regularly like updating web engine to go to the next version of chromium supporting other new formats for which text and cute you can now import markdown in a very easily way and we've done lots and lots of smaller bug fixes and improvements that's one thing I didn't mention yet out that I'll come back to in a minute because it's bad sorry for that one I think I need to use the keyboard from now on the other thing that we're trying to do with 514 and 515 is paved the road towards the next version of cute and cute six dude six has a new major version is something where we allow us a little bit more freedom with our API and we're breaking a little bit binary compatibility meaning you'll have to recompile your applications but we're also going to break some level of source compatibility to make that of course easier that means you have to adapt your code to make that easier we want to make sure that with you can use now 514 515 to help you in that process and flag and deprecated functionality functionality that won't be available include six anymore already in those versions and we're using those two versions too already introduced some of the cute six functionality the big new thing that we're introducing there's actually that we've been reworking our graphics architecture the whole thing will go top and and be done with cute six but we're already having quite a bit of changes that work by pushing on now into kit 514 and then 515 and I want to walk you through some of those changes a bit more detail because they do give you quite a lot of new things so yes dear a little bit of a sketch how our new graphics architectures is going to look like and there's some changes from what we are currently having let's start off at the bottom we have where we have the hardware adaptation we have different graphics API is nowadays we know that OpenGL is not the only game in town anymore Vulcan metal direct3d we need to support those api's moving forward we're doing that through what we're calling the cute when doing hardware interface and you'd win and then build our cute quick render were on top of that I'll go too into the details there in the next slide then on top of that we've done those changes now to integrate 3d better with cute quick and qml so we had cute quick mainly 2d focused for many years now it was running on a scene graph on top of the graphics hardware on top of OpenGL as you see now it's running on top of the rendering hard winter it can run on top of the rendering hardware interface and on top of different graphics API so underneath what we are also adding here now is support for 3d and easy way to integrate 3d content into your cute quick based applications and then finally on the top layer the design tooling are something we were also doing a lot of work and where we're now bringing 2d and 3d scene editing together I'll give you more details of that in a couple of slides start off with at the bottom with a rendering hardware interface this is a new abstraction layer that we've added now for abstracting away 3d graphics api's reason is obvious as said we have more api's nowadays than we had of many years of years ago Apple has been duplicating OpenGL we need to have an answer for that and work on metal we want to work directly on Windows on direct3d and we want to also support Vulcan as the upcoming graphics API is on for example Android and embedded Linux and on Linux in general it's going to be an internal API for to start off with with tuning it towards what we need in cute to be able to render things and we're abstracting away graphical materials there meshes shaders and so on integrating that with a platform abstraction API that abstracts the different windowing systems adding also something that across platform module to handle shaders in the cross-platform way because the shading languages between those graphics API is are different this will be something that we're going to support in 514 as a technology preview and then fully support that in 515 in cute 5 this is still an optional thing you can by default you will continue get the OpenGL based Wendover for cute quick but you can get easily used to take this one into use instead I think there's going to be a longer session by Laszlo next I think it's tomorrow on this topic so if you have wanna know more about it go and listen to that talk moving one level up we wanted to also add support for 3d content and cute quick directly the world that we had before we had a separation where we had cute quick doing 2d stuff we had cute 3d where the cute 3d studio rant and this was all there were several different ways of doing that but they didn't really match together we had the cute 3d studio runtime here as an example we could also put into 3d both of them were working on top of OpenGL but they were not combined they had separate scene graphs the animations weren't sync together and all of this didn't work and we wanted to bring that together and that's work that we've been doing now we'll have that as well and as a technology preview for 514 and then supporting 515 where we have one combined scene graph for 2d 3d and toggle and use that together so that we have one animation system and we can get rid of a lot of overhead and simplifies things so cute quick speedy and that brings me actually gives me the opportunity to invite the first person up on the stage and here and initials is the main head behind cute wig 3d welcome cute quick 3d is something that we've been working on now for a year approximately trying to really make sure that we you can very easily integrate 3d content using the the the idea here was really to focus on the ease of use and bringing it all together behind qml as a unified language right Andy that's right yes so to combine that so you can very easily now combine cute quick 2d and 3d api's and I we have to prepared a little bit of things for you there so you can have a look at that and see how that works in practice Andy yeah so hey again I'm gonna show you a quick teaser of how it looks like to actually do some things with qml and cute quick 3d yeah so hopefully it's a video a bit slow to start yeah just a few seconds yeah so it's cute quick 3d as you can see here yeah so the first thing is that like we added a new a couple of new imports this cute quick 3d this is what scenes look like it's a you know series of you know no transform nodes models cameras and this is what it looks like that simple scene here it's just a sphere and it's a cube grid but that's not very interesting so I want to show a real assets and in this case you know assets are actually imported assets or just qml components so it's as easy as just including you know your car qml in this case it actually is my car like my actual car a model of my car and so it's really easy to add that into the scene but you know that's not as interesting because it's a static car so here you can just use any animations like qml animations to animate things so the tires are rolling there but that's also kind of weird because it's a you know static car with moving tires so I also want to add a street which is just another component imported something else from a 3d editor in this case just a street with some you know textures on the street and in this case I'm actually going to make the street move by animating the UU coordinate of the texture so here you know I got my car rolling down the street looks kind of neat although it's a self-driving car in this case we had the time yeah and then just to finish it off at a skybox - - and some dramatic camera so we can orbit around it instead of me flying with the Waze camera so you can see that here it's just more qml and animations of property animation on the camera yeah there we go so now we're dramatically orbiting around my car yeah so it's really easy with cute quick 3d - you know in the same way that you use cute quick 2d or just regular kid quick to you know add 3d content and in this case you can you know also mix and match this because this is just ends up being a view into a 3d scene so yeah but yes so if you want to see more check out my talk later today at 4 and we can dive into the nitty-gritty details of how it all works thanks thanks a lot Andy and I have to say it's really great because I'm personally you know I know some 3d some OpenGL but I'm not the expert and this really made made it easy for me to use it and you can do one line in there and you change the color of the car to blue or green or whatever color you like of course the other part is that we want to connect this also not only your mouth is a great language for developers but we also want to connect us to the designers and we've been introducing cute design studio last year here at the world summit the design studio is actually a graphical design tool and it's built on top of the cute crater application framework so it integrates with Creator it's actually the same app redesigned and read targeted towards these UX designers has great support for importing designs from content creation tools from Photoshop and you as you'll see in a minute from sketch and you can direct the death test and deploy also on your target platform the goal for us with QT Studios really Doohan enhance the workflow between developers and designers have a tool that designers can use that is working on the real thing it's the real assets it's in the end QML can be directly used in your products in your designs together with cute and deploy it to the target whatever that is whether that's a desktop or an embedded device designers can work on on the design add animations import from their content creation tools and the developers can at the same time add the application logic and the data bindings to it to give you a bit more of an intro of what's happening there I'd like to welcome book bukhan Ronin to stage he's one of our UX designers hi everybody and and has helped us a lot in in defining also the user experience of cute design studio itself but he is also an expert in using it so look let's have a look at what's what's in there with the new version of design studio okay what I wanted to show today is one of the new parts of design studio we released this year and that's the bridge for sketch so this allows you to design all of your 2d design work in sketch which if anybody doesn't know is a tool for designers it's a vector based UI design tool um and here we go which starts there and it's you know really popular with designers and one of the things that we want to encourage is that designers can continue to work with their favorite tools they don't have to do everything in design studio but at that point in which they're ready which they have a finished design they can bring that easily into design studio one of the really nice things about sketches you can use symbols and as I'm doing here I define a part of my graphical assets as a symbol and then I can just drag and drop these into my screen designs and that's going to automatically be converted into a UI component in design studio so no wasted assets no reusing things each of these is a single component and in each screen it's just an instance of that component and you can very easily build up complex screen design UI flow everything in sketch itself and then use the bridge to sort of coordinate and define how these assets should be exported you can export that directly from sketch and then once you're done you just go into design studio import all of your assets that's going to generate all of your qml files and in this case it's going to support SVG so we can now do SVG export from sketch and and each of your components in each of your screens is going to be a unique qml file in design studio so you can see here that I've got all of my files I can go in everything's pixel perfect exactly as I had it in sketch I can then build up complexity in design studio so I can use States to create different sort of States for my application and when conditions to create interaction logic and I can do all this so I don't need to step into code as a designer I can do this with the tool itself and I can already get quite a long way to having a really functioning prototype that I can give to a developer and they don't have to start over again they don't have to rewrite these components from scratch they can use the components that I've generated and extend them refactor them hook them up with C++ code integrate them into a back-end and there are a lot of design tools now in design studio so I'm using here designs the studio components which are dynamic elements that I can animate precisely with the timeline there is a new curve editor so you can actually do all of your animations with with curves instead of with the standard timeline if that's your if your or more of a motion graphics artist and there are tools there for you as well and there's a live preview so that you can actually see your work in real time while you're designing which i think is a you know fantastic way of working and this is all from the latest 1.3 release version and if anybody's interested we have a demo booth downstairs where we have a fantastic collaboration with Autodesk with their veer ed tool and we're streaming this design work directly into VR and you can look at that in the VR headset okay well great thanks a lot [Applause] so that's the current state of design studio designed to do 1.3 that's coming out but we're also working now on what I've talked about before how do we get the 3d part in there and and unifying that so far we've been having two designs separate designs tools for doing that we had 3d studio and we had cute design studio for the doing the 2d and the 3d parts of the user interface the separate independent applications you could combine the works easily but it was still didn't feel quite right so we want now to bring all of that together unify that and that's our goal for cute 5 15 that we have a design studio available now that can do handle both the 2d and the 3d side of things using the cute quick 3d technologies that Andy talked about earlier Thomas Hartmann I'd like to get you up on stage here Thomas is the lead engineer behind the design studio and he'll give you a little bit of a sneak preview on what's happening with the 2d 3d unification Thomas Thank You Lars hello yeah as already announced the big feature for cute design studio 1.4 is a sweetie integration so as you can see this is blender so we try to mimic the workflow we already have in 2d so instead of exporting from Photoshop or sketch you can now export from blender my sweetie max you prefer 3d tool in this case use blender for this shot video and yeah you can import your designs designs too cute design studio and then you have a 3d editor where you already can move around stuff can adjust your cameras can adjust your lights that's already implemented as you can see so it's still and better but it's there you have all the human components what Andy already briefly said so if all the power of qml available you have States you have the property editor for design studio for all the different 2d elements you have already the timeline you have the property bindings of qml so you get all the power of qml that you are used to in design studio but now in the 3d context and you can also combine 2d and 3d already and also the live preview that Brooke just mentioned is already working with 3d content you see that that's really a scene you can now create in a matter of minutes let's say maybe not minutes but have an hour or something so nice car rotating yeah this is the we can work really work seamlessly together in 2d and 3d you don't have different tools different frameworks anymore and the snapshot you can already download so we have an online installer that if you enable the preview note you already can download the current version of cute design studio 1.4 so the current later snapshots basically so you can try it out yourself and also tomorrow at 11 we have a talk about cute design studio and one big part of that talk we're also demonstrating what you just see in this video life so you get a real feeling what's already possible and what will be possible in the future the release is the plan for December so that's when this should be final and yeah I would be glad if I see some of you at our talk thank you thanks Thomas so what's cool about all of that is that all of those things that you've been seeing now they're coming partially in queued 514 as technology previews but they'll all be available in cute 515 all ready for you still afterwards there will be more work that we're doing and we're going then over into cute 6 and from anandhi perspective those graphics things that you're seeing here are prepared also preparations thoughts the next major version of cute so I wanted to spend a little bit of time going through some of the things that we're planning on doing for cute 6 what's happening in there but before we go there it's good if when we do a major version that we remind ourselves oh it's really important and cute what are other things that we need to keep in mind when we do an egg next major version when we start redesigning we architecting things maybe you know considering breaking certain eye api's or changing certain api's and that's the cool values that I can see for cute let's gain the scalability of cute being able to go from very low and Deve hardware to big desktop systems that we have fantastic documentation and great tools around it our ideas are designed to willing ease-of-use for activity that it's easy for you to create your applications to get to market fast that where the code you write that is hard to misuse cute that it's actually hard to introduce box hopefully the maintainability stability and compatibility is something that our many of our users value you can have long-running projects we have lots of customers who have been using cute for 10 15 20 years we've been going along with the different versions and it is really important that the code that they write is a maintainable but that is also compared that they also can move along with the cute versions in an easy way so that cute stays compatible intuitive api's that comes together with the ease of use really important that people find find the api's that they can use it that it leads to very readable code that also helps with the maintainability cross-platform of course we've always been that and finally of course a large developer ecosystem that we want to move along with us to the next versions of cuter so whatever we do with cute 6 we need to keep those values at our mind but we also need to change cute to adjust to whatever the market demands whatever we see we need to do to keep cute relevant for the years to come but keep those values that's really at the heart of what we're doing that's our goal now was the next major version so having given that as a preamble let's have a little bit of a look into some of the technical things that we're planning on doing but before go there I said I mentioned compatibility this is important for us my goal is that we can be compatible enough that you can compile an application against both cute 5:15 and 6.0 with minimal workarounds so shouldn't really require a lot of work to do that of course that doesn't mean that your code base as it is right now if you've developed that over the lifetime of cute 4 and cute 5 will work without changes but it should be possible to do that doing it too cute 515 fix in 515 deprecation warnings and other things and then it should you should get to something that's very close to running us on 600 without further changes having said that with the compatibility the opposite side is of course that we'll need to do some housecleaning we're going to remove all the functionality that's being duplicated in cute 5 this is feel is there to help us move forward to get off of some baggage that we've been carrying around with us for the last couple of years that we've been collecting make sure that we can remove that and focus on what's important for the future one thing we're doing is we're changing our belt system see make we've been using hue make for many many years now to build cute itself that's something were changing right now and the post prog the project to do that is actually really well on on that its way we're moving over with cute 6 to build cute itself racemic that also means that we'll get much better CEMEX support and we're seeing that already now and 514 and 515 we upgrade to a new version of c make recent version of c make the cutest report is much better in there already with that we're doing improvements that we're doing a lot of those improvements actually upstream and c make of course cumec will be supported for that for the foreseeable future also include six you can use continue to use q make to build your own projects if you have that but for new projects that you are doing we recommend that you move over and start using c make will require C++ 17 include six as a minimum requirement this gives us a lot of new functionality available that's now available in the C++ standard we can make use of those in different areas of cute want to make sure that ranges are used properly that that we integrate with those that we have other things that we can use but this will be a minimum requirement we want to move along with what the compiler and the C++ world is doing and that means was for q6o will require a relatively recent compiler jesusí clang with Visual Studio something very recent at the minimum from this year most likely or last year we also be thinking a little bit our own containers we've had those since for a long time and they have certain limitations that we'd like to change and and fix one of them is of course allowing more than two gigabytes of items queue vector queue list all the others have still an integer size we're changing that to be 64-bit capable we can have more more of those we're doing work to unify queue list and you vector that has actually mostly happened we're still some cleanups to do business that we can do it in a way that's almost hundred-percent sauce compatibility and we're simplifying our API because we have one that's class to worry about we have tree measured and in most cases it does improve performance splitting things like you hash and multi hash you map to multi map there's our the same class in principle inherited from each other and the queue map can you can perfectly transform that one in the multi map something we don't want to support anymore images queued six things like using standard pair to implement two pair is an easy one because it doesn't do anything else and we visit some of our other containers and see what we can do there to improve them as I used for example some of the standard implementations or existing high-performance epic implementations but we want to keep our cute style API and we will keep the interested sharing that we're currently having no that thing doesn't like me we'll go and unicode throughout this is a theme that I actually had for cute 500 unfortunately we couldn't completely finish that work at that point in time due to different reasons first of all compiler support lacking but secondly also the the fact that we just didn't have enough time to finish at all but we'll do that for kid 6 now all our text handling will assume Unicode car stars will assume there we will assume they're utf-8 encoded and convergence from cue string to cast us and the other way around will assume utf-8 we will assume that source code is utf-8 encoded and we remove things like our legacy encodings cue text codec out of cute core your settings cue text we all of those will also assume utf-8 as input and output at coding that'll make it much simpler for us to handle string and string literals in our source code because it's utf-8 we don't need any more qulet and one string just doing a little we can get simply we can duplicate those you can simply write your string and single single quotes or whether you prefix to get you the utf-16 version in up in your binary to avoid a conversion from utf-8 to youtube 16 and with that simplify us doing classes also get rid of stewing ref you char with some of those other helper classes that we have in there we're planning on doing improvements also to the mock and acute type system we want to add some more data to the meta object system that them that we're generating and and the data that the mock is generating some of that data required a county by qml and where we're currently basically duplicating data at one time in the qml engine want to move that over to be able available at compile time also faster lookup of meta type information sometimes especially for user-defined types we need to do swing low when we do a connect statement or when we look at the property to find the type information that we need at one time and get rid of things like where we iterate through the inheritance hierarchy if you have a queue which let's say a queue push-button then we have a queue button underneath a queue widget and the queue object if you want to find out a property in queue object will have to iterate through all of the hierarchy we want to get rid of I want to get rid of that make sure that we can simplify that access and make it constant time and generate a lot of that the type information at compile time which means we will have to do some changes to queue meta type and queue variant and how we would just do that data and that will also help us get rid of some difference between that we currently have between built-in types and cute and user-defined types but the underlying goal of all of that is to avoid one-time generated data structures I here increased performance we'd use our memory consumption and improve our startup time the other thing the next thing we're doing is we're introducing a new property system we have that currently as a work-in-progress patch on Garrett I'll talk a bit more about that in my talk tomorrow this is about trying to get into an easy-to-use C++ API a real property based syntax not the pseudo properties we currently have in queue object with foo and get foo and with built-in support for bindings what we've realized and what I've realized over the last years since we introduced cute five is that one of the biggest features that make UML so successful is the support for bindings being able to basically bind the value of a property to an arbitrary expression and I want to bring that from QML down to C++ bring that into the coop cute into cute core and make them available for all of all of you and all of cute something where we can then also improve the performance significant we can do things like lazy binding evaluation it's extremely fast you see an example here on the right hand side where we just declare some in properties and then we bind the height to the width so they keep in sync and we bind the border to be a tenth of the width so the only property whenever you change the width height and border will adjust accordingly so goal here really to bring the best part of qml to C++ and we'd use memory allocations in qml also significantly increase increase binding performance over those years with q5 we've also realized that there are a couple of issues with QML qml is a great language to do user interfaces to define those but there are issues that we're currently having with that language and that we want to fix there's memory overhead because the cheat object model that were using cute in UML is separate from the cute object model we're duplicating data structures there and we're duplicating those at one time we require a full JavaScript engine and the garbage collector especially on low-end hardware it's not it's not ideal so we want them to see of whether we can make that optional there's performance overhead there because binding propagation is immediate and not synced with the scene graph so it could happen that you either within one frame a binding gets reevaluate a couple of times because several of its dependencies have changed and then we have a bytecode and we need a JIT compiler to to get the good performance out there we also have a couple of language problems that we're seeing especially with users and customers that have very large projects humilis weakly typed and that makes refactoring hard it makes a code model Hart we can't really help developers as good as we want the integration with C++ is not ideal that's all this qml versioning thing which makes it really complex and you have to always update that in your qml files when you have a new version comes out manually as opposed to the c++ side way we don't need this you just take the new cute version to use and it's working the reason we have that is a little bit of some complexity and how we look up bindings and then we don't have a capsulation thus you can can't knock stuff private in qml so this these are things that we're trying to fix now with q6 in the next-generation chemo we want to introduce strong typing so that you can really specify the type the explicit type of properties and the bindings and the kind of things that you're using in functions as well we want to support compiling your mouth to efficient C++ and native code and use the new properties system that I just talked about to do that we want to make JavaScript something that's optional it still has its great uses and it's really valuable but not you don't need it in all cases get rid of the versioning and qml and support hiding implementation details so that you can make marks things as private and then finally for q6 we want to finish those changes that we've done that I've talked about to the graphics stack queued quick the both the 2d and the 3d parts then should be using the rendering hardware interface for cute 5 it's only the truly part that we'll be able to use it OpenGL will with that become one among several graphics api's that are equally supported by cute and we're not going to have any direct OpenGL dependencies in cute anymore so that means we need to move all the cue opengl classes out into a separate module they will still be there but they will be in a separate module not and should go here anymore so this is the broad overview over many of the things we're planning for cute 6 a lot of what I've been talking about now is not implemented yet we'll need to do the work over the next year to implement that but this is the plan that we're having this is what we're trying to achieve and if you have other things that you really like to see if and here in cute 6 grab some of the engineers here that I at the conference or talk to me also afterwards after after the session in the next two days let us know or let us know Sugiyama sue bug reports what are the things that you need include six that you'd like to have what's your favorite thing okay well let's move away now from cute-cute itself and to something else cute for microcontrollers this is something that we have been announcing just a couple of months ago I talked and actually a little bit about that last year also at the world summit where we talked about how could we scale existing heute down to fit into microcontrollers and we managed to make some good progress there we got queued down to seven ten megabytes of RAM and ROM consumption but it wasn't quite where we wanted to put it because microcontrollers like a cortex and four cortex m7 they usually come with a one two megabytes of built-in RAM and that's why we wanted one so we went back to the drawing board and we started we thinking how we can do that from in a better way from the get-go for that also I'd like to invite Simon Simon husband up on stage [Applause] Simon is chief engineer in the cute company and he's been actually quite involved in the early stages of skewed for microcontrollers in some defining and and thinking about how how we could solve that how could we scale down that far and and the goal for us was to have something where we could use qml as the defining language for the user interfaces the goal here was reduced the scope focused on the UI creation but have something that you know is actually something that developers feel at home was if they know cute Simon maybe we should just start off looking at having a look at the video and then you can tell us a bit more about what's in cute for microcontrollers let's do that yes you might need to press it once again [Music] yes thanks C Mon maybe you can talk a little bit about what's in good for my control controlled us how it looks like yeah so what you could see on the video and what you can also see in our booth downstairs is our new graphics engine for micro controllers we call this cute quick ultra lite and like I said we really went back to the drawing board for this one and we asked ourselves what is it that we really really need and what is it that also people want and footprint and performance are pretty pretty hard requirements they define cost and they define the quality and especially when it comes to quality what people expect nowadays are user interfaces that have smartphone qualities and that means smartphone quality user interface on a device that costs a fraction of a smartphone so the result is something where we're quite proud of for example if you take a hello world it runs under 300 kilobytes of RAM this is the cost of the cute framework basically on this this is the code and flash this is data structures of the framework this is heap this is the stack and to to to define this further the rest of the RAM is all of yours so 300 kilobytes the rest of the Ram is yours you attach a screen to it if it's a big screen you're gonna need a little bit of RAM for the frame buffers if you have a smaller screen unit less room but you're in control of that you're entirely in control and to give you the smartphone experience we support graphics accelerators for example on the STM devices we support chrome art on the an expedia vises we support the pxp accelerator and more as you need them as we as we figure that out but those graphic accelerators can really make the difference between 20 frames per seconds or 60 frames per second and the other thing that we really understood that is absolutely necessary I just said this has to be easy to use so we do give you cute click on those micro controllers will you get rectangles you get images you get next you get quick controls even you can declare your own properties you can do bindings you can even write functions in qml you can do everything that you're actually used to but what is different is that we've got a brand new compiler in place and this compiler is intrinsically aware of types so it generates C++ code that is far better than anything we've ever had so far if you'd like to like a take a look at that please join me in my presentation tomorrow here I'll give you a bit of a sneak preview and we're really we're serious about this so we've we've made a release after roughly nine months development that's an evaluation a release that's available today we're bringing out another alpha release very soon and we we work really really hard to get the fun when zero release out by the end of this year and this train is rolling now so we're going to produce at least two more releases every year so we really want to get this out good great thanks Eamon and what's the additional thing that's really cool about this is that going back to the drawing board there and doing many of those things has teached to told us a lot about what we can achieve and a lot of the improvements that we've done there and the different designs that we've done there are things that we want to now take back also and that brings us back to acute six into cute 6 into improvements there to how we do qml in cute 6 and so I hope that we can get quite a good amount of those improvements also back into the full cute version by end of next year ok well that just leaves me one more thing to talk about and that is the cute marketplace as something we haven't been talking about too much in public but I wanted to talk tell you a little bit about what's happening there something we have been working on a thinking about for a long time what you wanted to do is see that we have a great ecosystem of users out here and they developers and we know that even with the amount of people we have in the cute company and with our contributor a ecosystem we are not able to do everything possible in cute itself so we wanted to be able to connect all of you and have a common place where people can upload components extensions to cute and share those with the world the marketplace is really thought as a central rallying point for the cute ecosystem that's what developers meet others that publish things one place where you can find the extensions to cute for developers and designers to make your life easier to get new functionality and those are available we want to make sure that this is a place where you can post publish free content as well as paid content open source and commercial it's also going to be in a platform where we can where people can launch new business ideas and try it out see what the response is for startups that want to try something established companies and you know that there's a 1 million developer ecosystem that you can reach with that to for the initial launch will of course have some limitations there will we have a couple of things that we're going to be supporting and we call those extensions to cute new modules that you can have in new frameworks and libraries or cute modules to the cute framework plug-ins for cute creator additional tools aren't enhancing the cute experience and we will expand that over time then also to include for example plugins to design studio graphical assets that you can base support and download all of those kind of things and we're going to have in the initial version already more than hundred of extensions available from partners like k-dub sell go logic incredible and from the open source community especially from KDE and hopefully a lot of others will then join that we're having something down at our booth stand also on the marketplace you can have a look there hear a bit about more about details figure out how do you maybe can add your own content there or how you can download things and all of that where plan to have available by end of this month November 25 fifth and with that I'd like to thank you very much for listening [Applause] and I guess and I guess we have five more minutes for questions if there is any question around please catch one of the Rings cubes just raise your hand over there hi so I've read about some plants about decoupling huge web engine releases from cute it's still planned maybe wired at marketplace correct we are planning on decoupling huge web engine it's the first foremost one because we have a need there in two ways one of them is that we want to follow and track chromium releases more closely lack less behind the other one is that we would like to support web engine for several huge versions we're already doing that but then you have to do a manually take out web engine and compile it against an older acute version so idea is there to bring that out and then basically deliver that through the marketplace the first version of the marketplace will still be somewhat rough and you'll have to it's it's been a web-based but all the time we're planning them to integrate that was with our installer framework and with a package management system and also with our IDE so you can find and discover those things in the IDE but yes so cute creators one of those but there might be others that will also then deliver through that marketplace instead of packaging them all together in in the cute cute package itself but this is something that will have to be evaluated as we go along and see what what works is there any plan of doing casting support for display casting tour especially when you're in a better device you won't cast the screen to ie chromecast we don't currently have any direct plans for supporting that but it's an interesting idea I have to get I have to say that but nothing planned currently there's no whatever it's some of the plans for cute six with in relation to Android and iOS will continue to support them it was that the answer you were looking for we will get Q share pointer support in qml Q shared pointers in q ml often I have an API where I want to have an create a q object yes yes and that the API can be used by C++ and by Kyo Mel and then you get in difficulties with ownership so solving the ownership problem yes this is something we'll have to look into for for q6 how we can I know this is sometimes difficult and you know what is it now C++ own JavaScript owned we have that ownership model if we move over and we have that place where we don't require Java a garbage collector anymore that should solve some of those problems but we'll have to have a look at into how we implement that and something we haven't done that work yet we don't know quite yes thank you very much for your presentation two questions in fact Python and pint and support in the Qt six and webassembly and support in the newest versions what are the plans what is the road map just to attract more developers not from just C++ world but from other worlds to the community thank you okay so there's that's actually quite a bit of things that are happening with cute for pison I haven't for time reasons gone into into most of those here I wanted to focus more on the general generic cute and the features that we're looking into there there's a couple of talks there there's a whole series of talks I want cute for pies and I recommend going there to get all these but in short I mean we're planning and moving that forward we have lots of good ideas of what we can do and what we want to do and we of course want to also support cute 4 pie cylinders and kill for web assembly for cute 6 now we're not quite sure what that that will happen at the same time as we released 6.0 whether it become slightly later that depends on what we managed to do it timewise but that's something to be seen but we want to bring also all of that over to cute six of course yes hello are there any plans to provide code analysis tools for QML at some point yes there are we actually have I think we have there's a linter that's being worked on by the team and if you go to I think it's all talking about that maybe he's talking a little bit about that in his qml talk where we we want to have more support for that in the end and especially once we move also over to include six have strong strong strong typing support we can do a much better analysis of the code as well but we yes we want to extend the tooling and in that area so after any plans to enhance a part for mobile suit for mobile yes that we have lots of ideas let's put it this way and we have a little bit of a we're working seeing how we can get things done but there are certainly I mean we want to make sure that's good is working nicely on mobile and there's a couple of things that require a lot of work because things have been moving fast some changes on androids and stuff were we well a little bit on in the catching up have to catch up there okay if there is no more questions I think we're right in time let's thanks Lars again yes [Applause] [Music] [Applause]
Info
Channel: Qt
Views: 19,202
Rating: undefined out of 5
Keywords: Qt, QtWS19, QtWorldSummit2019, QtDev, #LearnQt, GUI, UI, C++, QML, UIDesign, Development, Technology, Programming
Id: YmwAeS_ojPA
Channel Id: undefined
Length: 57min 59sec (3479 seconds)
Published: Fri Jan 03 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.