Quantcast
Channel: Maemo Nokia N900 » maemo qt quick
Viewing all articles
Browse latest Browse all 2

How to make modern Mobile applications with Qt Quick components

$
0
0

creator qml640 How to make modern Mobile applications with Qt Quick components

What Ui toolkit I should use for mobile
application development has been a top issue since Maemo5/Fremantle SDK
alpha release. There were two choices available, GTK+/Hindon and Qt.
The amount of choices has been increased since then and caused a lot
of confusion among developers.

Many developers would like to continue
to use their old familiar UI toolkit, GTK+/Hildon, QWidgets or
Symbian Avkon but there is many reasons reconsider your choice and
look at a new toolkit Qt Quick and Qt Quick Components.

To find reasons, we should look 30
years back into history. The modern desktop Graphical User Interface story
begins from Xerox Palo Alto Research Center, PARC. Most of basic
inventions like mouse, desktop metaphor and windowing system with
overlapping windows were made there. Modern Desktop GUI matured to
it’s current state with first Apple Macintosh release 1984. You can
read more about the history from
http://en.wikipedia.org/wiki/History_of_the_graphical_user_interface
.

After these days, there were no major
changes in Desktop GUI paradigm, we had standard UI elements like overlapping
windows, pull down menus, scrollbars, dialogs, buttons etc all same
form that they are today. There were multiple toolkits with lot of
different APIs implementing the same elements. We had Mac and Windows
native toolkits and several toolkit variants for Linux/Unix. Qt
toolkit, first version released 0.90 was released 1995, offered
common cross platform QWidget API for GUI programming.

There was a major UI paradigm shift in
2007 when the first iPhone was released. The old desktop metaphor with
mouse interaction was abandoned and a new one introduced. Scrollbars,
overlapping windows and mouse-sized UI elements were gone and
replaced with sliding windows, scrolling from content pane and
widgets designed to be used with finger. iPhone was the first successful
touch screen device that was sold with high volumes. Before that,
there were numerous touch screen devices on the market, both pocket sized
and laptop or pad form factor but none were successful.

All these old generation touch screen
devices were still using old desktop UI paradigm and touch screen was
just a mouse replacement. In most of the cases it needed to be used with
a stylus to provide mouse-like pixel accurate pointer. The idea was good
but users just did not like it.

N900 with Maemo5, announced 2009, was
the first Nokia device with a new finger based UI paradigm. Maemo5 had
finger optimized UI components, sliding stacked windows, kinetic
scroll from content pane, all implemented top of desktop-oriented
toolkits, GTK+/Hildon and Qt/QWidgets. The new Mobile UI needed a lot of
modifications to these toolkits that did not become adopted upstreams
implementations as those were still focusing solely on the desktop. Maemo5
implementation was also based on support from tailored window manager
for window transitions and stacked windows, enhanced X11 keyboard
protocol was used for the virtual keyboard. Also, none of these
enhancements were adopted to upstream and Maemo5 toolkit extensions
run only under the Maemo5 environment

Maemo6 that later become MeeGo, was
started from a clean sheet. Enhancing legacy toolkits, GTK+/Hildon or QWidgets, were
insufficient to implement leading edge mobile user experience. The UI
toolkit should be based on QGraphicsView/QGraphicsItem rather than
old QWidgets. The new approach allowed us to take control of UI
elements, transitions and animations inside of the toolkit. Now we had a
possibility for a lot more complex animations in element level, animated
dynamic layouts etc. There were three parallel development paths
inside of Nokia, C++ based Orbit for Symbian, MeeGoTouch for MeeGo
and a totally new concept Qt Quick with QML. For the first MeeGo timeframe
MeeGoTouch was the only available toolkit and it was used for all basic
MeeGo applications.

Qt Quick was part of Qt4.7 released
October 2010. The Qt Quick can be considered revolutionary step in
UI implementation, even complex UIs were possible to implement with a
few easy lines of Qml code. Qml is also easy to learn for UI designers used
to work with web UI tools.

The basic Qt Quick contains only Qml
that could be considered as a low level UI toolkit. It supports basic low
level elements like rectangles, images, mouse areas etc but it did
not contain UI components by itself. If you are using plain QML you need
to implement UI components by yourself. That is not a problem in many
applications that are using their custom UX and UI style but it is
wasting time if you just would like to use system UX with system
style and standard UI elements. The Qt Quick Components project was
introduced to produce ready made Qml UI elements library for Qt
Quick. Current status of components project is pre-alpha for MeeGo
but it still offers basic UI elements and it evolves quickly. Qt
Quick components are also on their way for Symbian and desktop UX.

Our choices

Now we have all pieces together for UI
puzzle and we just need to put them together and make our choice. Many may still think that old toolkits
like GTK+/Hildon and QWidgets look like attractive choices. Nokia
has dropped support of GTK+/Hildon, but QWidgets you’ll find everywhere,
they run on all desktop platforms and they run on major Nokia
platforms. Porting old desktop application with QWidgets looks to most like the


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images