/****************************************************************************
**
** Copyright (C) 2020 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. Qt installations contain Qt libraries, examples,
    documentation, and the necessary development tools, such as the
    \l{Qt Creator Manual}{Qt Creator} integrated development environment (IDE).
    For more information, visit the \l{Getting Started with Qt} page.

    \section1 Qt Creator

    \l{Qt Creator Manual}{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 qtcreator/qtcreator-qt-quick-editors.png


    \section1 Design Tools

    \b{Qt Designer} is a tool within Qt Creator for designing and building
    graphical user interfaces (GUIs) for Qt Widgets. You can compose and
    customize your widgets or dialogs in a visual editor, and test them using
    different styles and resolutions. Qt Designer is also available as a
    standalone tool. Both versions of Qt Designer only differ in some
    functionalities such as the use of resource files and how to switch in the
    design and edit mode. For more information, visit the
    \l{Qt Designer Manual}{Qt Designer} manual.

    For Qt Quick applications, you can use Qt Quick Designer which is integrated
    within Qt Creator. Qt Quick Designer is available in the edit mode in an
    open Qt Quick project. The \l{Qt Quick Designer} page has more information.


    \section2 Collaboration with Designers

    Qt lets designers to import assets from 2D and 3D programs, create
    layouts and flows, and generate code for developers.
    \l{Qt Design Studio Manual}{Qt Design Studio} is a tool that provides rich and fluid components,
    a code editor, timeline-based animations, visual effects, layouts, and
    a live-preview for prototyping. Qt Design Studio generates code for
    developers to use in Qt Creator. For more information about the tools for
    designers, visit the \l{Qt Design Studio Manual}{Qt Design Studio} manual.


    \section1 Build Tools

    Qt Creator creates project templates for different build systems. You can
    create \e kits for different combinations of target platforms and build
    environments. Qt Creator supports CMake, qmake, Qbs, Autotools, Nimble,
    Meson, and IncrediBuild projects.

    For more information about project templates and building in Qt Creator,
    visit the following pages:
    \list
    \li \l{Qt Creator: Using Other Build Systems}
        {Build Systems in Qt Creator}
    \li \l{Qt Creator: Building for Multiple Platforms}
        {Building for Multiple Platforms}
    \endlist


    \section2 Configuring and Building Qt

    You can configure and build Qt from source using \b CMake or \b qmake.
    Custom configurations are for developers of Qt and for porting Qt to
    different targets. The \l{Qt Platform Abstraction} is an abstraction
    layer to facilitate Qt ports onto different platforms and targets.

    For more information about building Qt, visit the following pages:
    \list
    \li \l{Build with CMake}
    \li \l{qmake Manual}
    \li \l{Qt Platform Abstraction}
    \li \l{Supported Platforms}
    \endlist


    \section1 Internationalization and Help Tools

    You can localize your application to different languages. There is an
    \l{Internationalization with Qt}{internationalization} framework within Qt
    for handling different writing systems, translating interfaces, and for
    displaying numbers, dates, and currency in different formats.
    \l{Qt Linguist Manual}{Qt Linguist} is a tool for developers, translators,
    and release managers to implement internationalization in applications.
    The different roles can collaborate to produce, store, and deploy translated
    text in the user interface.

    For more information about internationalization and localization, visit
    these pages:
    \list
    \li \l{Internationalization with Qt}
    \li \l{Internationalization and Localization with Qt Quick}
    \li \l{Qt Linguist Manual}{Qt Linguist}
    \li \l{Writing Source Code for Translation}
    \endlist

    You can use the \l{The Qt Help Framework}{Qt Help} framework to create and
    package help files for complex applications. The help framework involves
    XML-based formats and tools to create content, set the order and filters
    for application manuals.

    \list
    \li \l{The Qt Help Framework}
    \li \l{Qt Help} C++ module
    \endlist

*/

