Canonical introduceert een nieuw verpakkingsformaat voor applicaties in de komende lts-uitgave van Ubuntu. Snap-packages kunnen in tegenstelling tot deb-packages alle afhankelijkheden zelf meenemen, waardoor een ontwikkelaar alle afhankelijkheden kan meeleveren.
De nieuwe wijze van pakketbeheer zal bestaan naast de standaard-deb-pakketten. Het grote voordeel ten opzichte van deb-pakketten is dat het makkelijker wordt om nieuwere software te installeren op oudere machines, doordat in een snap-pakket naast het programma zelf ook de afhankelijkheden of dependencies meegeleverd kunnen worden.
Daarnaast zijn snaps veiliger dan debs, doordat ze in een soort container boven op het besturingssysteem zelf worden geïnstalleerd, zonder impact te hebben op de rest van het besturingssysteem. Zo is het makkelijk om een applicatie te installeren die bijvoorbeeld gebruikmaakt van een nieuwere softwarebibliotheek dan op het systeem aanwezig is. De bibliotheken moeten dan wel door de ontwikkelaar aan de snap zijn toegevoegd.
Op dit moment is het nog zo dat een applicatie niet kan worden geïnstalleerd als een afhankelijkheid ontbreekt en ook niet in de softwarebronnen zit. Dan moet eerst naar de desbetreffende afhankelijkheid worden gezocht en eventueel een niet-vertrouwde softwarebron worden toegevoegd. Dit kan leiden tot onveilige situaties.
De nieuwe methode biedt niet alleen voordelen voor nieuwe apps op oude besturingssystemen, maar ook voor oude apps op nieuwe besturingssystemen. Canonical gaat bijvoorbeeld oude debs die niet meer zullen werken op nieuwe versies van Ubuntu migreren naar snaps, zodat ze in de toekomst toch nog gebruikt kunnen worden.
Aan de ontwikkelaarskant is het praktisch dat nieuwe versies van applicaties sneller hun weg naar eindgebruikers kunnen vinden. Nu is het nog zo dat de beheerders van de softwarebronnen die eerst moeten updaten. Een snap kan na een update direct naar eindgebruikers gepusht worden.
De ontwikkeling van snaps is een verbetering van het systeem dat Canonical ontwikkelde voor het app-ecosysteem van Ubuntu Phone: de clicks. Snaps waren in eerste instantie speciaal bedoeld voor het Snappy Ubuntu Core-OS, een besturingssysteem gericht op iot-apparaten. Canonical had daarvoor namelijk een provider grade-upgrademechanisme nodig. Dat betekent ook dat er goed is nagedacht over dataverbruik. Een update van een snap kan incrementeel doorgevoerd worden en maakt gebruik van delta-updates. Dat houdt in dat alleen de gewijzigde code gedownload hoeft te worden.
Canonical heeft ook een tool ontwikkeld om snaps te maken: Snapcraft. Op het moment van schrijven zijn er praktisch nog geen snap-packages te vinden voor Ubuntu 16.04. Navraag bij Canonical leert dat de meeste snaps nog specifiek voor Snappy Ubuntu Core zijn en dus geen ui hebben. Als proof-of-concept heeft Canonical een klok en een rekenmachine als snap vrijgegeven voor Unity 7.