Quelles sont les différences conceptuelles et techniques entre les «applications» et les packages?


13

Je suis un peu confus par l'annonce récente ( http://developer.ubuntu.com/2011/09/announcing-the-ubuntu-app-developer-site/ ) du nouveau site de développeur "App". Je suis tombé hors du développement d'Ubuntu et maintenant je ne fais que suivre les actualités pour évaluer la direction du système d'exploitation, et je n'avais pas réalisé que cela allait arriver. Peut-être que quelqu'un de la communauté pourrait éclaircir cela pour moi.

Je connais très bien Ubuntu, Linux, la programmation et le packaging, mais je ne sais pas quelles sont les différences conceptuelles et techniques entre une application Ubuntu et un package Debian. J'ai examiné un peu la documentation de la communauté des développeurs, mais je n'ai pas trouvé de réponse directe. Une application Ubuntu peut-elle être considérée comme un package spécialement configuré qui prend en charge le cadre d'application d'Ubuntu? Et à quel point est-ce flexible? Pourrais-je, par exemple, écrire une application dans Qt et l'encapsuler dans une application?

(En passant, je suis un peu inquiet qu'Ubuntu se dirige dans cette direction. Je comprends qu'Ubuntu devrait explorer la prise en charge de multiples voies de développement et de distribution d'applications pour rester pertinent. Ces remarques sont cependant ignorantes. Je ne devrais pas me forger une opinion solide avant de savoir ce qui se passe.)

Réponses:


9

Une «application» Ubuntu n'est qu'une application, tout comme GIMP, Firefox ou autre.

Ce sont toujours des packages Debian, nous fournissons simplement un outil appelé Rapidly qui permet aux utilisateurs de se familiariser avec PyGTK et de faciliter le package et la soumission au centre logiciel.

Vous pouvez toujours écrire votre application dans Qt, la conditionner et la soumettre au Software Center, nous essayons simplement de simplifier la connexion des développeurs comme vous pour faciliter l'expédition de votre logiciel aux utilisateurs finaux.


1
Ah d'accord. Parallèlement à vos remarques, je vois à l'étape 5 de la section de publication que les paquets Debian existants peuvent également être ajoutés. Donc, pour être sûr que je l'ai, une "application" n'est qu'une application habituelle, utilisant toujours le packaging Debian. Je suppose que je pensais qu'une "App" était une application plus petite, principalement tactile. Je suppose que ça pourrait être n'importe quoi! Merci d'avoir clarifié ça!
perden

1
Vous pouvez également considérer les applications comme des applications légères qui peuvent être soumises de manière différente au Software Center, mais qui sont distribuées efficacement de la même manière aux utilisateurs. Ils utilisent également la même technologie de packaging (Debian packaging et le Software Center) pour la distribution. Nous voulons que les développeurs de ce type de logiciel puissent plus facilement le soumettre et le voir publié sur Ubuntu, et c'est pourquoi nous avons développé des outils en ligne dans le cadre du site de développeur d'applications pour rendre cela possible.
David Planella

Cependant, des applications plus complexes peuvent ne pas être éligibles pour ce processus (pensez à quelqu'un développant un nouveau LibreOffice, par exemple), auquel cas les auteurs sont invités à suivre la route habituelle du référentiel Debian / Ubuntu, qui est toujours la façon dont la plupart des logiciels le font. à Ubuntu de nos jours, et qui ne changera pas en raison de la façon dont les applications sont actuellement soumises
David Planella

8

Eh bien, une application est fournie sous forme de package, mais tous les packages ne sont pas des applications. Par exemple, une ou plusieurs polices peuvent être fournies sous forme de packages. En d'autres termes, il existe une différence conceptuelle entre un package et une application, mais aucune différence entre une application et un package.

Oui, vous pouvez développer des applications dans n'importe quel langage et en utilisant n'importe quel framework que vous aimez. Fournit rapidement un point de départ très facile et la principale recommandation utilise Python et GTK, mais il existe également des modèles pour Ruby et d'autres langages et modèles pour le développement Web au lieu d'applications de bureau. Quickly est spécifiquement conçu pour ne pas limiter le choix des développeurs dans les langues, et (espérons-le évidemment) il n'y a pas de verrouillage pour Ubuntu. Vous pouvez également fournir vos propres modèles, si votre application prend en charge les plugins, par exemple. Ce que Quickly fait, c'est de vous dispenser d'écrire du code passe-partout ennuyeux.

Pour publier des applications à l'aide du portail MyApps, il y a quelques exigences, comme votre application doit utiliser XDG_USER_DIRS pour ses données et configurations, elle doit être installable dans / opt, etc. À part cela, il n'y a aucune exigence. Vous pouvez écrire votre application en Java, Python, C *, Gambas ou tout autre élément pris en charge et en utilisant n'importe quelle boîte à outils graphique dont vous avez envie. Cela a du sens car l'objectif principal des versions modernes d'Ubuntu est d'unir Qt, GTK et d'autres afin de fournir une meilleure expérience utilisateur.

J'espère que cela clarifie un peu et que vous vous inquiétez moins de la direction qu'Ubuntu évolue. :)


Oui, merci d'avoir ajouté plus de détails! J'aime voir en soutenant cela que je ne suis lié à aucune configuration particulière. Et comme je l'ai mentionné dans mon commentaire à Jorge, je suppose que je suis entaché par la définition d'espace mobile d'une "App": petite, tactile, compartimentée, rigide (en termes de développement). Garder cette flexibilité est primordiale pour le développement Linux et la philosophie Ubuntu, espérons-le, en supprimant les réserves de certains . Maintenant que je le comprends, j'ai hâte de voir ce qui en sort!
perden
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.