La société Devoteam, via sa marque Open Source Uperto, vient de mettre au profit des développeurs Android sa librairie QuickAction leur permettant d’intégrer rapidement la fonctionnalité de QuickAction, intégrée sur Android 2.x, affichant sous forme d’une liste d’image, les fonctionnalités que vous souhaitez proposer (exemple, lorsque vous cliquez sur l’image d’un contact dans l’application native des contacts il vous est proposé d’envoyer un SMS, d’appeler…). Cette librairie vous permettra d’utiliser cette fonctionnalité dans vos applications pour Android 1.6 par exemple.
Description et utilisation …
QuickAction permet de vous simplifier l’implémentation de cette fonctionnalité. Ci-dessous, un exemple d’ajout de fonctionnalités :
// un nouvel objet QuickActionWindow
final QuickActionWindow qa = new QuickActionWindow(mContext, v, rect);
//ajouts des items à afficher sous forme de badge ainsi que l’action à réaliser lorsque l’utilisateur sélection cet item
qa.addItem(getResources().getDrawable(android.R.drawable.ic_menu_agenda), « agenda », new OnClickListener() {
public void onClick(View v) {
Toast.makeText(mContext, « agenda », Toast.LENGTH_SHORT).show();
qa.dismiss();
}
});
qa.addItem(getResources().getDrawable(android.R.drawable.ic_menu_add), « add », new OnClickListener() {
public void onClick(View v) {
Toast.makeText(mContext, « add », Toast.LENGTH_SHORT).show();
qa.dismiss();
}
});
A partir d’un objet QuickActionWindow, vous pourrez composer son interface en ajoutant simplement le libellé, l’image et l’action associée. Dans le projet SVN disponible sur Google code vous aurez un exemple du code et de son utilisation. Le projet est également fourni avec la javadoc pour vous aider à implémenter cette solution dans vos applications. Personnellement, j’ai dû un peu batailler avec Eclipse pour créer le projet directement depuis le svn.
Pour utiliser cette librairie vous devrez réutiliser deux classes ainsi que les ressources nécessaires fournies dans le package svn.
L’avantage avec cette librairie est de pouvoir proposer le fonctionnement du Quick Action Android disponible depuis la version 2.x sur la version 1.6.
Ce projet est disponible en open source sous licence GPL V3. Vous pourrez, en tant que développeur réutiliser ces composants en respectant les termes de la licence. A l’heure où nous rédigeons cet article, le site du projet sur Google Code est actuellement alimenté en documentation et captures d’écran, les sources sont par contre disponibles.
FrAndroid tient à féliciter la société DevoTeam (avec qui nous n’avons aucun intérêt…je prends le devant sur un certain type de commentaires qui pourrait apparaître :)) pour ce partage Open Source de son code sur notre plateforme. En effet, une société à but lucratif qui s’investit pour proposer des solutions Open Source est toujours à noter (bien que, j’en conviens, derrière la publication de cette librairie, DevoTeam cherche à faire connaître son savoir faire sur la plateforme Android et donc trouver de nouveaux clients).
A propos de la société DevoTeam (texte fourni par A.D. de la société DevoTeam)
DevoTeam est une SSII française spécialisée dans le consulting et l’intégration. Sa marque Open source Uperto fonctionne sur un mode plus SSLL. Elle a investi très tôt et fortement sur Android ayant vu dans ce système le leader du marché qu’il est en passe de devenir.
Rendez-vous un mercredi sur deux sur Twitch, de 17h à 19h, pour suivre en direct l’émission SURVOLTÉS produite par Frandroid. Voiture électrique, vélo électrique, avis d’expert, jeux ou bien témoignages, il y en a pour tous les goûts !
Aucun soucis, étant moi même (sur mon temps perso) un contributeur Open Source (et pour avoir vu une partie non négligeable de mon travail détournée...) je comprend sans soucis les critiques éventuelles voir les craintes que peuvent susciter l'intérêt d'une société comme Devoteam pour du code Open Source. Ce qu'il nous a semblé pertinent de faire, est une mise en commun de code (le notre + celui d'autre contributeurs), et d'en faire un package tout en un. Nous avons par exemple, ajouté de la javadoc à la classe que nous avons empruntée à WHSite et nous travaillons sur un package contenant des scripts d'importations facile du code dans vos propres projets. Nous espérons permettre aux développeurs Android d'utiliser facilement ce code dans leur propres applications (par exemple, un gros HOWTO est en cours de rédactions sur le wiki du projet sur Google Code). Quand au choix de la licence, il s'est imposé tout seul pour plusieurs raisons dont la première est que le code de M. Faruq est en GPL. Il nous a semblé hors de propos de re-licencier son code. Enfin, l'équipe de développement Android de Devoteam / Uperto et moi même sommes des programmeurs chevronnés, si nous avions juste voulut créer le buzz accordez nous que nous aurions très bien pu obfusquer le code (ce qui est un de mes passe-temps en tant que vétéran du Perl ^^) au lieu de le conserver intact... Avouez que sut été plus judicieux dans ce genre de démarche ;-) Cette démarche n'est pas la notre ! En espérant que ces classes et les updates que nous allons faire à partir de lundi vous aide dans vos propres applications, Librement, Arnaud.
J'attends ton sujet :).
Merci à arnaud pour avoir usé de son droit de réponse ici-même ;) Il convient effectivement de préciser que vous avez effectivement déclaré vous être inspiré de WHSite, et je m'excuse de vous avoir bousculé sans avoir vérifié ça avant ! Merci pour votre contribution donc ;) Par contre, la GPL v3 c'est pas cool :P
Bof, je bosse pour des éditeurs de logiciels sous GPL, et je maintiens mon affirmation : autant libérer sous une autre licence, la GPL ne protège rien. Pour 2 procès dont on parle, il y a des (dizaines de ?) milliers de détournements.
J'essayais juste de défendre le fait que la GPLv3 défendait quand même plus le code contre le plagiat que du BSD ou X11 stou, mais sinon t'as raison :)
Je ne suis pas d'accord, même en n'en comprenant que 30% tu peux l'utiliser tel quel. L'intégration n'est pas non plus si compliquée que ça. Tout est déjà fait. Au pire suffit de regarder l'activity et l'utilisation de la classe et simplement copier/coller. Bref, il aurait été plus opportun de faire de la pub pour le "vrai" créateur de cette classe plutôt qu'à une société qui en fait déjà suffisamment (de la pub) et qui délocalise de nombreux postes à l'étranger.
Ah merde... Tu veux dire que qu'il y a une faille spatio-temporelle à Levallois qui renvoie directement au Maroc ?
Si si, nous avons mis ensemble des morceaux de codes que nous avons trouvés entre autre sur le GitHub de Mohd Faruq (comme précisé sur la page du projet et dans le code), mixé cela à notre propre code dans le cadre de notre réponse au concours lancé par le TGVLab sur les applications smartphones pour les chefs de bords. Le code de ce programme est GPL et sera libéré après le concours (pour des raisons évidentes... il me semble).
Tout à fait, l'attitude de Google après ses nombreuses recommandations d'UI et la promesse de publier le code est vraiment regrettable...
Attendons de voir, mais j'ai de gros doutes là dessus.
Oui en effet. Nous l'aurons éventuellement intégrée dans le prochain SDK. Ce qui veut dire, dans au moins deux mois.
Ok, donc comme c'est du GPL ils sont bien obligés de le fournir en GPL également. En revanche j'aimerais bien savoir si toutes les applis qu'Uperto développe en utilisant ce composant sont bien également en GPL... sinon ça serait 'dommage'.
J'avais pas regardé dans le tableau de bord. J'ai approuvé ton commentaire. C'est toujours instructif ;).
Enfin avec tout ça, ce qui est vraiment dommage, c'est que Google n'ai pas tenu pour le moment sa promesse de libérer le source de l'appli Twitter. Il est tout de même dommage de courir après les librairies tierces pour intégrer des composants préconnisés dans les bonnes pratiques d'IHM d'Android. Vivement la version officielle codée une fois pour toute.
Oui Arnaud, en effet, y a un petit commentaire dans le code. Mais ce code est sous licence GPL également. Et pourtant, je n'ai pas l'impression que devoteam ait respecté les termes de la licence. Je ne suis pas un spécialiste non plus.
http://github.com/ruqqq/WorldHeritageSite/blob/master/src/sg/ruqqq/WHSFinder/QuickActionWindow.java (j'ai posté le lien en réponse un peu plus haut, mais comme il y a plein de lien c'est "en attente de modération" ;))
Remplacée par un nine-patch tout simplement : c'est le background de la contentView de ma PopupWindow. Et je fournis la drawable alternatif (par défaut c'est flêche en haut, l'alternatif est donc flêche en bas) en paramètre de show(). C'est pas top question API, mais comme c'est du fait maison j'ai pas été plus loin ;) Je vais faire un petit sujet sur ce "addActionItemsForIntent()" parce qu'il permet de mettre en place une notion de "plugins" qu'on peut mettre en place que je souhaite expliquer ;)
Ps : as tu le lien sur github de WHSite, je ne l'ai pas trouvé
Bah heu... oui.. comme c'est écrit sur la page du projet quoi : "A major credit goes to Mohd Faruq (http://github.com/ruqqq) as a large part of this code is based on his great work on this matter. "
@naholyr : si ça te dit, tu peux poster quelques snippet sur le lien donné par nivek :). Je serai intéressé par cette histoire de flèche non indépendante, car elle me fait l'oeuf. Et j'avoue que pour l'instant, ce n'est pas la correction de ce détail qui m'intéresse. L'as-tu remplacé avec un ninepatch ou l'as-tu tout simplement enlevée ?
Pour appuyer la thèse du pompage : * http://code.google.com/p/simple-quickactions/ → premier commit 24/06/10 * http://github.com/ruqqq/WorldHeritageSite/blob/master/src/sg/ruqqq/WHSFinder → premier commit de QuickActionWindow.java le 13/06/10 * http://code.google.com/p/devoquickaction/ → premier commit il y a 3h No comment... Ah et amusez-vous à comparer http://github.com/ruqqq/WorldHeritageSite/blob/master/src/sg/ruqqq/WHSFinder/QuickActionWindow.java et http://code.google.com/p/devoquickaction/source/browse/trunk/src/com/devoteam/quickaction/QuickActionWindow.java Bref, une initiative très louable, mais une attitude très discutable, qui mérite à mon avis qu'on ne fasse pas trop de pub pour leur "librairie".
Pour compléter le lien d'akex, les discussions sur ce sujet (les QuickActions) sur le forum: http://forum.frandroid.com/forum/viewtopic.php?id=19507 Petit commentaire pour le rédacteur de l'article: il vaut parfois mieux lire les forums de son site plutôt que les communiqués de presse ;-) Pour l'aspect licence, publier une librairie fournissant si peu de fonctionnalités en licence GPL (au lieu de LGPL ou Apache) est à mon avis une assurance d'en empêcher son utilisation.
Ou pas... Visiblement tu as une dent contre Devoteam... Les informations sur le near-shore (au Maroc) sont publiquement disponible et comme tu t'en rendras compte les chiffres sont astronomiques... ou pas.
D'autant plus qu'un code totalement similaire est disponible sur github (chercher "WHSite") et la méthode QuickActionWindow.show() est TOTALEMENT POMPÉE !! Un peu facile de s'approprier le travail d'un autre, et de déclarer qu'on est des gentils contributeurs... Vous ne devriez pas relayer ce genre d'initiatives plus que discutables :( Enfin bref, en tous cas ça n'est pas extrêmement compliqué à réaliser soit-même au final, et comme la gestion du layout est toujours un peu particulière (par exemple le coup de la flêche indépendante du reste, c'est pas si simple quand on veut des jolies ombres, ça se croise sur les côtés et ça fait moche). Personnellement je l'ai implémenté d'une manière assez similaire à ce qu'ils font, avec deux grandes différences : * pas d'histoire de flêche indépendante pour le layout, ça enlève une animation, mais ça simplifie pas mal de choses (et ça permet d'avoir une bulle faite comme on le désire). * une petite méthode addActionItemsForIntent(Context, Intent) qui m'est particulièrement utile ;)
Pas tout à fait d'accord. Voir par exemple tout ce qui est problèmes avec mplayer camouflé dans des set-top-box, ça se remarque. Après, un des buts de l'opensource c'est que c'est un moyen fantastique de former les gens via des exemples à la place de docs absconses, donc c'est pas étonnant qu'on te pique un concept ou un petit segment de lignes de code (le type a quand même dû le comprendre entièrement pour faire l'intégration), le problème c'est quand tu copie-colle une lib entière en t'attribuant les droits et là ça se voit et ça te protège.
Licence BSD, pour le lien que j'ai donné.
D'un autre coté, quelqu'un l'a déjà releasé sous une autre licence (cf. forum développement sous le forum Frandroid : UI). http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/
En effet, le choix de la licence est discutable. La GPL ne protège rien (si quelqu'un veut tricher, il peut). Elle limite juste la réutilisation pour les gens de bonne volonté. Ils sont rares les nouveaux projets qui font ce choix depuis un an ou deux.
... même si c'est vraiment super cool de voir une boite qui a une filiale spécialisée Opensource avec un énorme diagramme avec une flèche "Contribution à l'Opensource" dessus, faire une contribution à l'opensource :) *OUIJESUISMÉCHANTJESAIS*
Ouais 'fin une SSII française en mode corpoflan qui fait délocaliser leur développement au Maroc et qui release une micro-lib de ~500 lignes de code sous GPLv3, ça sent la grosse blague pour l'image quand même.
Au contraire, c'est bien là tout l'intérêt de choisir ce type de licence. Cela incite les développeurs à faire du code Open Source et non propriétaire. Le code en lui-même ne doit pas faire la valeur d'une application.
Très mauvais choix de licence: pour que les développeurs l'intègrent ils doivent faire un application en GPLv3 obligatoirement. La LGPL aurait été plus adaptée, voire BSD/Apache/MIT pour que les développeurs puissent l'intégrer dans des applis proprio…
Ce contenu est bloqué car vous n'avez pas accepté les cookies et autres traceurs. Ce contenu est fourni par Disqus.
Pour pouvoir le visualiser, vous devez accepter l'usage étant opéré par Disqus avec vos données qui pourront être utilisées pour les finalités suivantes : vous permettre de visualiser et de partager des contenus avec des médias sociaux, favoriser le développement et l'amélioration des produits d'Humanoid et de ses partenaires, vous afficher des publicités personnalisées par rapport à votre profil et activité, vous définir un profil publicitaire personnalisé, mesurer la performance des publicités et du contenu de ce site et mesurer l'audience de ce site (en savoir plus)
En cliquant sur « J’accepte tout », vous consentez aux finalités susmentionnées pour l’ensemble des cookies et autres traceurs déposés par Humanoid et ses partenaires.
Vous gardez la possibilité de retirer votre consentement à tout moment. Pour plus d’informations, nous vous invitons à prendre connaissance de notre Politique cookies.
Gérer mes choix