.. _app_development: Application Development ======================= .. toctree:: Apps/Constraints Apps/Gnome Apps/Kde Apps/Design Apps/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. Take a look at the flow charts below to get a visual idea of the layout of this apps section. |pic1| |pic2| .. |pic1| image:: Apps/images/phosh_flow_chart.png :width: 310px :height: 310px .. |pic2| image:: Apps/images/plasma_flow_chart.png :width: 310px :height: 310px First determine which phone environment you want to integrate with: * :ref:`phosh` is developed at Purism as replacement for the gnome-shell and runs based on wlroots * :ref:`plamo` will show you how to setup Plasma Mobile and interact with it For more information, see :ref:`environments`. Your environment will determine which tools and languages are available to you for app development. Next, what kind of application format would you like? * :ref:`flatpak` will show you how to setup flatpak on the dev board * Deb packages are the official package formats for Debian-based distributions. A deb package is installable from the apt package manager and what is needed for the app to be distributed by Debian. You can follow the above charts to determine the IDE/build tool suggested. * :ref:`gbuilder` will show you how to use GNOME Builder for developing, building, and deploying flatpak'd apps to a phone shell environment. Apps built from GNOME Builder can theoretically be deployed to Plasma Mobile as well * :ref:`glade` is an excellent tool for designing GTK+ based UIs * :ref:`kirigami_apps` will show you how to use Kirigami for developing, building, and deploying flatpak'd apps to a Plasma Mobile environment * :ref:`qt` provides QtCreator and QtDesigner, good tools for designing Qt based UIs * For building a deb package, `git-buildpackage `_ is the preferred build method Once your app is ready to be distributed to other developers, you can submit your app for inclusion. * There will be a flatpak repository for only free software flatpaks. This repository will be hosted by PureOS * To submit your app for inclusion into Debian, follow `standard Debian package submission procedures `_