{"id":4645,"date":"2011-03-28T09:41:14","date_gmt":"2011-03-28T09:41:14","guid":{"rendered":"http:\/\/www.notmart.org\/index.php\/Software\/Build_a_device_scalable_user_int"},"modified":"2011-03-28T09:41:14","modified_gmt":"2011-03-28T09:41:14","slug":"build_a_device_scalable_user_int","status":"publish","type":"post","link":"https:\/\/notmart.org\/blog\/2011\/03\/build_a_device_scalable_user_int\/","title":{"rendered":"Build a device scalable user interface"},"content":{"rendered":"<p>As <a href=\"http:\/\/www.notmart.org\/index.php\/Software\/One_plasmoid_3_platforms\">previewed<\/a> some time ago, the ongoing effort of porting the current stock Plasma Desktop widgets to QML isn&#8217;t not just recreating them and be done with it, but rather pushing QML a bit beyond of what it can usually do and give a platform to build user interfaces that can adapt to different kinds of situations and devices  permitting of:<\/p>\n<ul>\n<li>Shipping the user interface, graphic assets and JavaScript code in a simple package with a well defined and familiar filesystem structure: one single package that can adapt to any devices you want<\/li>\n<li>For a given device, you must be able to customize and rewrite any part of the interface you want<\/li>\n<li>But you should have to rewrite <strong>only<\/strong> the parts you need, nothing more, recycling all the rest<\/li>\n<\/ul>\n<p>In QML plasmoids, we provide some mechanisms (plasmapackage:\/ urls, plasmoid.file() function) that will load resources always from within the Plasma package (the single zip file you downloaded from Get hot new stuff, for instance) and always the <em>proper<\/em> one. What doe it mean?<\/p>\n<p>Any resource you may need, that can be a qml file, a javascript file, an image, a sound&#8230;  can be something shared between all possible platform targets, or something that is specific for a certain one. Not only this, you coul need as well for instance a file that is shared between a tablet and handheld profile, but not used in the desktop world.<\/p>\n<p> this little video shows the rss news reader QML plasmoid (the usual guinea pig i use for this kind of experiments) loaded on a desktop, looking like an usual harmless desktop widget and as a standalone window, intended to be used on a tablet form factor device. <\/p>\n<p><iframe loading=\"lazy\" title=\"YouTube video player\" width=\"480\" height=\"390\" src=\"http:\/\/www.youtube.com\/embed\/J2MjFw_Pewg\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p><a href=\"http:\/\/blip.tv\/file\/get\/Notmart-PlasmaRSSNewsReader955.ogv\">OGG version<\/a><\/p>\n<p>And a blurry live action video here:<\/p>\n<p><iframe loading=\"lazy\" title=\"YouTube video player\" width=\"640\" height=\"390\" src=\"http:\/\/www.youtube.com\/embed\/Hp8P-LfV0eA\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p><a href=\"http:\/\/blip.tv\/file\/get\/Notmart-PlasmaBasedTabletRssReader795.ogv\">OGG version<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As previewed some time ago, the ongoing effort of porting the current stock Plasma Desktop widgets to QML isn&#8217;t not just recreating them and be done with it, but rather pushing QML a bit beyond of what it can usually do and give a platform to build user interfaces that can adapt to different kinds [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[2,10,7,18,19],"class_list":["post-4645","post","type-post","status-publish","format-standard","hentry","category-software","tag-kde","tag-kde4","tag-plasma","tag-qml","tag-tablet"],"_links":{"self":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/posts\/4645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/comments?post=4645"}],"version-history":[{"count":0,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/posts\/4645\/revisions"}],"wp:attachment":[{"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/media?parent=4645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/categories?post=4645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notmart.org\/blog\/wp-json\/wp\/v2\/tags?post=4645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}