Author Topic: Orbiter UI Elements/ HA Designer  (Read 6296 times)

david_a_dawson

  • Veteran
  • ***
  • Posts: 79
    • View Profile
Orbiter UI Elements/ HA Designer
« on: November 11, 2011, 12:01:30 am »
Hiya,

I see the comprehensive series of screen casts for creating new bits of Orbiter UI.

I was wondering, will they still be valid for the qOrbiter when its finished (looking very slick now..)?

Sorry if this is a silly question, just checking that the underlying data is being altered at all.

Cheers,

David.

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #1 on: November 11, 2011, 12:34:12 am »
No. They won't. Here's why:

It was a deliberate design decision to NOT utilize any of the existing Orbiter technology for qOrbiter, other than utilizing the Screen table (if for no other reason than Screen calls are everywhere in LinuxMCE, and we need to keep this as a means of delineating modality and encapsulating information.)

In short, Designer was very much like every in-house design tool used at a large company; it was written in a rush, it is buggy, it is unfinished, and it requires intimate knowledge of the underlying Orbiter code to really use effectively.

Past experience with trying to get people to use the tools, and to interact with sqlcvs was literally a disaster, people working in designer never got into the habit of keeping their database in sync. In addition, Orbiter itself has a wide variety of flaws which are a direct result of its design.

Orbiter was designed for things as they existed in 2003. Everything has changed. The need to pre-render everything, in addition to the complexities of trying to collapse different functional/aesthetic targets into shared functionality across multiple targets proved to create a system in which everything was lowest common denominator, Orbiter by its very design COULD NEVER make the best of its target devices. So what were we to do?

throw it all away. Rethink Orbiter as a DCE device running atop a declarative graphics engine (Qt Quick/QML running in Qt).

What does this give us?

It's easy to write QML, it's just properties and values ranging from physical properties, width, height, size, location, color, to transitions, like animation, relationship to other objects, etc. QML can be written by hand, created/manipulated in Qt Creator, or created as a part of a photoshop/GIMP exporter tool. It gives designers a way in, which is what we desperately need.

Bcause QML is so easily created and dealt with, it is actually possible to write whole sets of QML, with varying degrees of shared functionality, for any device that the qOrbiter can run on, make a QML for on screen TV, a QML for an android cell phone, a QML for iPad, one for a Nokia N9, each taking advantage of the capabilities of their target devices effectively, without a lowest common denominator choke-hold; Given that QML is easy to create, it can also be easy to maintain. It places ultimate flexibility in the hands of the UI designer to do what they do best: design.

Its flexibility has already been proven:

* a basic skin meant to develop qOrbiter's functionality
* a test port of Aeon from XBMC, as proof that qOrbiter CAN do flashy-flashy-zoomy-zoomy-blurry-blurry-crispy-shiny-shiny,
* a skin for the Nokia N9, built from scratch using the Nokia Harmattan UI components, to match the UI guidelines for Nokia N9 applications.

the underlying Qt toolkit is present on many platforms, Linux, PC, Mac, in addition to being the standard toolkit for Symbian, and MeeGo. An active native port of Qt to Android (using JNI bindings to the Android NDK) is also available and being actively ported to. Ports also exist for WebOS, and iOS, in addition to Windows Phone.

In short, Qt is everywhere, either overtly; as part of the system level toolkit chain, or as a port.

If this doesn't vindicate the applicability of this whole approach, I don't know what will.

-Thom

david_a_dawson

  • Veteran
  • ***
  • Posts: 79
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #2 on: November 11, 2011, 12:41:01 am »
Thanks for the quick reply!

All sounds very good to me.   

If I were to create a new device that required an Orbiter UI.  How would that be achieved?   

Would the Orbiter UI for that device have to be included in every skin?  or is there a way to create the UI just the once?

If it needs to be implemented in every skin, well, that's still fair enough; I can see that the other benefits of the QML approach far outweigh any other considerations.

I'm considering making a new device that might need a fairly comprehensive UI and I'm trying to scope it out a bit.

David.

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #3 on: November 11, 2011, 12:49:22 am »
qorbiter merely wants a QML file to run, sitting in a folder underneath skins.

QML is designed as a list of properties and values, which can be grouped into components. Usage of existing components is discretionary.

This again, is deliberate. The biggest lesson we learned is that one size does not fit all, if it's all the same shape.

There may be a hope that over time, a standardized set of component funcitonality can be created, but, at the same time, if you need to completely break away and do something different, either a little, or a lot, you just do.

There are a lot of things to deal with, notwithstanding finishing functionality, we need to figure out how to package and deploy skins. But it's all things we are working on.

The code for qOrbiter itself is in the LinuxMCE-1004 source tree, and as always looking for help.

-Thom
« Last Edit: November 11, 2011, 12:51:00 am by tschak909 »

david_a_dawson

  • Veteran
  • ***
  • Posts: 79
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #4 on: November 11, 2011, 01:48:46 am »
Crikey.

I was totally misled by the naming.  QML is a Javascript derivative.  I hadn't realised at all I'd assumed it was some bastardised xml dialect.

I can certainly help with this, I do javascript UI's (web/ mobile) every day alongside enterprise Java. which is probably less useful here... ;-)

Currently setting up a core for development on virtualbox, and its not playing nice. Also got qt creater & co installed and all the project open.

Maybe a fresh look tomorrow will help.

David.

merkur2k

  • Addicted
  • *
  • Posts: 513
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #5 on: November 11, 2011, 06:30:00 am »
yeah, for someone with a decent background in javascript web developement, qml is incredibly easy to get started in. read a few tutorials and look at some example code is about all it takes.
the declarative portion is very much like an object literal in javascript, with a reusable component system similar to classes. and of course javascript itself can be used everywhere.
and flexibility is the name of the game here. you can see by the existing skins work in progress that there is a lot of room for creativity, while still being able to provide a consistent experience for the user.

DragonK

  • Guru
  • ****
  • Posts: 446
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #6 on: November 11, 2011, 07:57:30 am »
Thom,

Does all of this mean that we should no longer use Designer to create new skins\layouts.
I have been quiet lately, but still working on my skin that I started a year ago. Allmost ready
Public testing, but im scared now that I wont be able to check it in?

Karel

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #7 on: November 11, 2011, 10:22:45 am »
You'll be able to check it in, as long as you've been keeping your designer repo up to date. However, this was to point out, that we've stopped doing Orbiter development completely, and are no longer using any of its paradigms.

qOrbiter (temporarily named) is the way forward.

-Thom

DragonK

  • Guru
  • ****
  • Posts: 446
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #8 on: November 11, 2011, 12:06:03 pm »
Every now and then, I do a sqlCVS update from the webadmin, and only choose the Designer repo.
That would be fine?

Karel

tschak909

  • LinuxMCE God
  • ****
  • Posts: 5549
  • DOES work for LinuxMCE.
    • View Profile
Re: Orbiter UI Elements/ HA Designer
« Reply #9 on: November 11, 2011, 12:21:15 pm »
Yes.

-Thom