.. _qmladvancedtutorial:

QML Advanced Tutorial
*********************

This tutorial walks step-by-step through the creation of a full application using QML.
It assumes that you already know the basics of QML (for example, from reading the
:ref:`qmltutorial`.

In this tutorial we write a game, *Same Game*, based on the Same Game application
included in the declarative demos directory, which looks like this:

.. figure:: declarative-samegame.png
    :align: center

We will cover concepts for producing a fully functioning application, including
JavaScript integration, using QML  States and Behaviors to
manage components and enhance your interface, and storing persistent application data.

An understanding of JavaScript is helpful to understand parts of this tutorial, but if you don't
know JavaScript you can still get a feel for how you can integrate backend logic to create and
control QML elements.

Tutorial chapters:

.. toctree::
    :maxdepth: 1

    samegame1.rst
    samegame2.rst
    samegame3.rst
    samegame4.rst

All the code in this tutorial can be found :download:`here <samegame.tar.bz2>`.
