Von Matthias Clasen – https://github.com/flatpak/flatpak/blob/master/flatpak.png, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=49741329
Flatpak is a method of software distribution that can be used in conjunction with the EndeavourOS repositories and the AUR. Flatpak is an evolution of the Glick project that was started in 2007. With the transition from using kernel namespaces to manage dependencies to OSTree, it was renamed xdg-app. Later, as containerization became possible at the kernel level, the name was changed to Flatpak.1,2 This use of containerization allows the developers of an application to “bundle” all the required application dependencies into a single install file. This creates an installation media that is distribution independent. However, this containerization comes with some advantages and disadvantages.
- Flatpaks are published by the software developers themselves. This means that updates are pushed faster than the AUR, and can be a more “secure” means of installing software.
- Flatpak applications are run in a “sandboxed” environment. They need explicit permission from the user to access system resources. Giving the user another layer of protection from “outside elements”.
- All dependencies for the application are included in its Flatpak, preventing the situation known as “dependency he**”. This is where a user needs to install a package or a library for an application to run, only to be told that said package needs an additional library to be installed. With modern package managers such as Pacman, the chances of this happening have been reduced. However, it still happens from time to time. Also, once a library is installed by a Flatpak application, it is shared by all Flatpak applications on the system.
- Updates for Flatpak Applications tend to be smaller than updates from traditional sources. When a Flatpak application is updated, the Flatpak software will only download the files that changed in the Flatpak itself instead of the whole package. This allows for smaller downloads and quicker updating of applications.
- Flatpak installs tend to be larger than installs from the traditional repository method. This is due to them having all the dependencies needed to run the application included in the Flatpak.
- Because they run in a sand boxed environment, Flatpak applications do not always respect the system theme. This can cause some inconsistency in the look and feel of a users desktop.
- The first time they are run, Flatpak applications can be slower to start than traditional applications. This is caused by the Flatpak setting up the needed sand box environment for the application. In most cases, after this initial setup, the user should not notice any difference between a Flatpak application and traditional applications.
This was just a quick look at what Flatpaks are and some of their advantages and disadvantages. If you want to learn more about them, the Flathub website goes into more depth. https://docs.flatpak.org/en/latest/