The diversity of Linux is one of its strengths: you can grab any flavour, any DE and use any package format. However, this also makes it difficult for newbies trying out different flavours of Linux. It’s tricky to find all the dependencies of your software immediately, especially if they are not available in the default repos. I remember being a frequent visitor to the RPM PBone Search website to find the right versions of the right software in my early Linux days. AppImage is a new project trying to improve the situation.
From the point of view of a developer, maintaining a single package is easier than maintaining packages for multiple distributions.
There are package converters available for Linux but those can’t be used on a regular basis.
Distributing static binaries is an option but there are strong opinions for and against that. AppImage solves the problem by packaging a single app as a single executable file which can run anywhere as long as the hardware architecture is compatible. It comes as no surprise that even Linus Torvalds is impressed with the project.
Zero Install is a project trying to solve the same problem but it needs its own app to be installed first. AppImage on the other hand, can grab every information and files necessary from a reference system and create a single package that can be run directly.
AppImage supports multiple distros (anf their derivatives) like Ubuntu, Arch, RHEL, SUSE, Fedora, Debian at the time of writing. Applications like Atom, Arduino, Blender, Chromium, Firefox, Krita, LibreOffice, QCAD, Scribus and SubSurface have been converted to a single package and are available for download.
There’s a nice Wiki with instructions to use AppImage to convert packages.
As you may guess, the size of the packages would be bigger. For example, the size of regular leafpad editor binary is 100KB. It increases to 768KB when packaged with AppImage. As libraries are not shared, multiple applications may still have the same libraries fused-in.
Still, with storage becoming cheaper, the size doesn’t seem a big deal as long as you don’t need to get your paws dirty with dependencies.
Usability: For advanced users