.. _intro: Introduction ============= Apps for the Librem 5 will be typically built using the open source GTK+ toolkit. In fact many of the apps available will be ported from already existing GTK+ apps which are part of the GNOME environment. In your efforts to write an app or port a current app to the Librem 5, you are likely going to use GTK+ and the tooling around it for development. The Tools --------- - GNOME Builder - flatpak, flatpak-builder (Your app package format) - flatpak runtimes - :ref:`Librem 5 emulator ` - GTK+ (UI toolkit) - GNOME environment (Librem 5 runs GNOME by default) - libhandy (library with GTK+ widgets for mobile phones) The Workflow ------------ A typical developer workflow will involve something of this sort: - Install flatpak and flatpak-builder - Install GNOME Builder - Git checkout a Gnome app to port, or start a new GNOME Application project within GNOME Builder - Adjust dependencies for the project to pull in libhandy or other possible requirements - Adjust project code and/or xml files for UI changes to accommodate for mobile - Build a flatpak from GNOME Builder - Copy flatpak into the emulator, install flatpak on emulator, run flatpak app on emulator - Debug issues - Rinse and repeat until your app works well on the Librem 5 emulator - Contribute the app or port