/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page topics-app-development.html
\title Development Tools
    \brief Qt tools for application development.

    Qt is designed for developing applications and user interfaces once and
    deploying them across several desktop and mobile operating systems.

    The easiest way to start application development with Qt is to \l{Downloads}
    {download} and install Qt 5.
    It contains Qt libraries, examples, documentation, and the necessary
    development tools, such as the \l{Qt Creator Manual}{Qt Creator}
    integrated development environment (IDE).

    Qt Creator provides you with tools for accomplishing your tasks throughout
    the whole application development life-cycle, from creating a project to
    deploying the application on the target platforms. Qt Creator automates some
    tasks, such as creating projects, by providing wizards that guide you
    step-by-step through the project creation process, create the necessary
    files, and specify settings depending on the choices you make. Also, it
    speeds up some tasks, such as writing code, by offering semantic
    highlighting, checking code syntax, code completion, refactoring actions,
    and other useful features.

    \image qt-creator-gs.png

    The following Qt tools are integrated into Qt Creator:

    \list
        \li \l{Qt Designer Manual}{Qt Designer} for designing and building
            graphical user interfaces (GUIs) from Qt widgets. You can compose
            and customize your widgets or dialogs in a visual editor, and
            test them using different styles and resolutions. You can access
            Qt Designer from Qt Creator in the Design mode (1).
        \li \l{qmake Manual}{qmake} for building applications for different
            target platforms. You can also use other build automation tools,
            such as \l{CMake Documentation}{CMake}, \l{Qbs Manual}{Qbs}, or Autotools.
            When using qmake or CMake, you specify the build system in the
            Projects mode (2). When using Qbs or Autotools, you open a .qbs or
            .am file in Qt Creator.
        \li \l{Qt Linguist Manual}{Qt Linguist} for localizing applications.
            Qt Linguist contains tools for the roles typically involved in
            localizing applications: developers, translators, and release
            managers. You can run the lupdate and lrelease tools from the
            Qt Creator Tools menu.
        \li \l{Qt Assistant Manual}{Qt Assistant} for viewing Qt documentation.
            You can also view documentation in Qt Creator. The documentation
            installed with Qt 5 is displayed automatically in the Help
            mode (3), and you can add documents to the list.
    \endlist

    In addition, you can use the tools listed in the following table.

    \table
    \header \li Tool \li Description
    \row \li \l{makeqpf}
         \li Create pre-rendered fonts for embedded devices.
    \row \li \l{moc}{Meta-Object Compiler (moc)}
         \li Generate meta-object information for QObject subclasses.
    \row \li \l{User Interface Compiler (uic)}
         \li Generate C++ code from user interface files.
    \row \li \l{Resource Compiler (rcc)}
         \li Embed resources into Qt applications during the build process.
    \row \li \l{Qt D-Bus XML compiler (qdbusxml2cpp)}
         \li A tool to convert D-Bus interface descriptions to C++ source code.
    \row \li \l{D-Bus Viewer}
         \li A tool to introspect D-Bus objects and messages. Available from
         the Qt SDK or the Qt 5 qttools repository.
    \row \li \l{Qt Quick Compiler}
         \li A compiler for QML that enables building Qt Quick applications
         without having to deploy the QML sources on to the target.
    \row \li \l{Qt VS Tools}
         \li Intended for developers who wish to develop Qt applications using
         the Visual Studio IDE instead of Qt Creator.
    \row \li \l{Qt Distance Field Generator Manual}{Qt Distance Field Generator}
         \li A tool that generates distance fields to improve load times for a
         text-heavy Qt Quick user interface.
    \endtable
*/
