Flatpak makes sense from a bandwidth and storage standpoint for end-users.
While flatpaks “share” dependencies, different flatpaks depend on different flatpak runtimes and even different versions of the same runtime, so it is actually the least efficient way to ship software.
If you talking about the infrastructure cost, then yeah it flatpak would be ‘better’. since all your users would use the same runtime and you only have to ship the binary.
But this only makes sense for the first time the user downloads the application, because it turns out appimage can do delta updates just like flatpak lol
In practice not even the first point is true btw, a lot of flatpaks often ship bundled in dependencies (due to having compat issues with the flaptak runtime), so the donwload size of the .flatpak alone is similar or bigger than the one of the appimage.
While flatpaks “share” dependencies, different flatpaks depend on different flatpak runtimes and even different versions of the same runtime, so it is actually the least efficient way to ship software.
https://pkgforge-dev.github.io/Anylinux-AppImages/disk-usage-vs-flatpak.html
An example:
Application Payload = 100MB AppImage all inclusive image with deps = 175MB Flatpak App Layer = 101MB Flatpak Deps = 75MB
Now say you’re shipping 1000’s of similar applications with the same general dependency chains in bulk operations to things like end-user devices.
Flatpak wins. That’s the point.
This isn’t a discussion about an average Desktop user saving some disk space.
If you talking about the infrastructure cost, then yeah it flatpak would be ‘better’. since all your users would use the same runtime and you only have to ship the binary.
But this only makes sense for the first time the user downloads the application, because it turns out appimage can do delta updates just like flatpak lol
In practice not even the first point is true btw, a lot of flatpaks often ship bundled in dependencies (due to having compat issues with the flaptak runtime), so the donwload size of the
.flatpakalone is similar or bigger than the one of the appimage.