Commit 202c7d65 authored by David Boddie's avatar David Boddie

Expanded the development environment chapter to include more about Plasma

Mobile and KDE-related technologies.
parent 7f4792db
Pipeline #2378 passed with stage
in 30 seconds
......@@ -8,8 +8,4 @@ the `Qt Quick`_ library and complementing the `Qt Quick Controls 2`_ library
provided as part of the `Qt 5`_ framework. Kirigami is a project from the
`KDE Community`_.
.. _`KDE Community`: https://www.kde.org
.. _`Kirigami`: https://api.kde.org/frameworks/kirigami/html/index.html
.. _`Qt Quick`: https://doc.qt.io/qt-5/qtquick-index.html
.. _`Qt 5`: https://doc.qt.io/qt-5
.. _`Qt Quick Controls 2`: https://doc.qt.io/qt-5/qtquickcontrols2-index.html
.. include:: /links.rst
Plasma Mobile
=============
.. _`Plasma Mobile`: https://www.plasma-mobile.org/
.. _`Plasma Mobile application development`: https://community.kde.org/Plasma/Mobile/DevGuide#Plasma_Mobile_application_development
`Plasma Mobile`_ is a mobile phone environment based on technologies from the
`KDE project`_.
.. include:: /links.rst
......@@ -9,6 +9,4 @@ variety of platforms, including the Librem 5. Applications based on `Qt 5`_
are often developed using the `Qt Creator`_ IDE. Documentation for the
framework can be found on the `Qt documentation`_ site.
.. _`Qt 5`: https://doc.qt.io/qt-5
.. _`Qt Creator`: https://doc.qt.io/qtcreator/index.html
.. _`Qt documentation`: https://doc.qt.io/
.. include:: /links.rst
......@@ -13,8 +13,8 @@ Application Development
Packaging_Apps/index
PublishingApps
If you are interested in app development then you're in the right place! Here,
you can find out how to make, build, deploy, and publish apps for distributing.
This chapter covers application development for the Librem 5 phone. Here, you
can find out how to make, build, deploy, and publish apps for distribution.
Take a look at the flow charts below to get a visual idea of the layout of this
apps section.
......
.. _dev_env_flatpak:
Flatpak
=======
`Flatpak`_ provides features for application sandboxing and distribution.
Applications for the phone will be distributed as Flatpaks - packages that can
be distributed via repositories. Documentation for the ``flatpak`` tool and
its ``flatpak-builder`` wrapper can be found in the `Flatpak documentation`_.
Versions of these tools provided with modern GNU/Linux distributions should be
sufficient. Debian-based distributions provide packages called ``flatpak`` and
``flatpak-builder``.
.. include:: /links.rst
.. _workstation:
.. _workstation_gnome:
Workstation
===========
GNOME
=====
.. contents::
Application development for the Librem 5 is not tied to a particular set of
technologies. However, for simplicity, we recommend that you use the same set
of tools and libraries that the Librem 5 developers have used.
Where appropriate you can use the versions of these that are provided with your
operating system. However, it may be necessary to install more up-to-date
versions of some tools when new features are needed. The preferred method for
doing this is to use Flatpak to install sandboxed versions of the required
The default software stack for the Librem 5 is based on many of the
`technologies`_ from the `GNOME`_ desktop environment. The applications
supplied with the phone are also built using components from GNOME, such as the
`GTK+ toolkit`_. It can be useful to install the latest development packages in
order to get access to features which can help with building mobile
applications.
GNOME and GNOME Builder
-----------------------
The default software stack is based on many of the `technologies`_ from the
`GNOME`_ desktop environment. The applications supplied with the phone are
also built using components from GNOME, such as the `GTK+ toolkit`_. It can be
useful to install the latest development
GNOME Builder
-------------
We suggest that developers use the `GNOME Builder`_ Integrated Development
Environment (IDE) to develop applications. The `latest documentation`_ for
......@@ -36,18 +26,6 @@ and build applications. The versions of these available in modern GNU/Linux
distributions should be sufficient. Debian-based distributions, such as PureOS,
provide packages called ``meson`` and ``ninja-build``.
Flatpak
-------
`Flatpak`_ provides features for application sandboxing and distribution.
Applications for the phone will be distributed as Flatpaks - packages that can
be distributed via repositories. Documentation for the ``flatpak`` tool and
its ``flatpak-builder`` wrapper can be found in the `Flatpak documentation`_.
Versions of these tools provided with modern GNU/Linux distributions should be
sufficient. Debian-based distributions provide packages called ``flatpak`` and
``flatpak-builder``.
gitg
----
......
.. _workstation_kde:
KDE and Plasma Mobile
=====================
An alternative software stack for the Librem 5 is `Plasma Mobile`_, which is
based on technologies from the `KDE project`_ and `Qt 5`_. The `Plasma Mobile
application development`_ guide from the KDE Community Wiki provides an overview
of the technologies and tools that you will be using to develop applications
for this environment. We provide a summary of these below.
Qt Creator
----------
We suggest that developers use the `Qt Creator`_ Integrated Development
Environment (IDE) to develop applications for Plasma Mobile. This provides
support for the other technologies in the Plasma Mobile software stack,
including the CMake build system and the `Qt Quick`_ and `Kirigami`_ user
interface components.
Qt Creator is available as the ``qtcreator`` package in Debian-based
distributions, such as PureOS.
CMake
-----
CMake is a cross-platform configuration and build system that is popularly used
to build applications based on `Qt 5`_. It is available in Debian-based
distributions, such as PureOS, as the ``cmake`` package.
.. include:: /links.rst
.. _workstation:
Workstation
===========
Application development for the Librem 5 is not tied to a particular set of
technologies. However, for simplicity, we recommend that you use the same set
of tools and libraries that the Librem 5 developers have used.
The default development environment is based on the GNOME software stack to
match the software provided on the phone itself. Users who have installed
Plasma Mobile as their preferred environment may wish to use tools from the KDE
project instead.
.. toctree::
GNOME
KDE
Flatpak
Where appropriate you can use the versions of these that are provided with your
operating system. However, it may be necessary to install more up-to-date
versions of some tools when new features are needed. The preferred method for
doing this is to use Flatpak to install sandboxed versions of the required
applications.
......@@ -15,4 +15,4 @@ itself, a development kit or with an emulator that runs on a workstation.
Boards.rst
Boards/emulators.rst
Phone.rst
Workstation.rst
Workstation/index
.. _`Debian`: https://www.debian.org
.. _`Flatpak documentation`: http://docs.flatpak.org/en/latest/
.. _`Flatpak`: https://flatpak.org/
.. _`git-buildpackage`: http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html
.. _`GNOME Builder`: https://wiki.gnome.org/Apps/Builder
.. _`GNOME git client`: https://wiki.gnome.org/Apps/Gitg
.. _`GNOME`: https://www.gnome.org
.. _`GTK+ 3 documentation`: https://developer.gnome.org/gtk3/stable/
.. _GtkHeaderBar : https://developer.gnome.org/gtk3/stable/GtkHeaderBar.html
.. _`GTK+ Inspector`: https://wiki.gnome.org/Projects/GTK+/Inspector
......@@ -21,13 +17,21 @@
.. _GtkSizeGroup : https://developer.gnome.org/gtk3/stable/GtkSizeGroup.html
.. _`GTK+ toolkit`: https://www.gtk.org
.. _`GTK+ website`: https://www.gtk.org/
.. _HdyHeaderGroup : https://honk.sigxcpu.org/projects/libhandy/doc/HdyHeaderGroup.html
.. _HdyLeaflet : https://honk.sigxcpu.org/projects/libhandy/doc/HdyLeaflet.html
.. _HdyTitleBar : https://honk.sigxcpu.org/projects/libhandy/doc/HdyTitleBar.html
.. _`KDE Community`: https://www.kde.org
.. _`KDE project`: https://www.kde.org
.. _`Kirigami`: https://api.kde.org/frameworks/kirigami/html/index.html
.. _libhandy documentation : http://honk.sigxcpu.org/projects/libhandy/doc/
.. _libhandy website : https://source.puri.sm/Librem5/libhandy
.. _`Meson`: https://mesonbuild.com/
.. _`Ninja`: https://ninja-build.org/
.. _`Plasma Mobile`: https://www.plasma-mobile.org/
.. _`Plasma Mobile application development`: https://community.kde.org/Plasma/Mobile/DevGuide#Plasma_Mobile_application_development
.. _`PureOS`: https://pureos.net
.. _`Qt 5`: https://doc.qt.io/qt-5
.. _`Qt Creator`: https://doc.qt.io/qtcreator/index.html
.. _`Qt documentation`: https://doc.qt.io/
.. _`Qt Quick`: https://doc.qt.io/qt-5/qtquick-index.html
.. _`Qt Quick Controls 2`: https://doc.qt.io/qt-5/qtquickcontrols2-index.html
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment