-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PWA #912
Comments
Bonjour, Les deux bibliothèques proposées semblent correspondre parfaitement à nos besoins, mais nous avons quelques remarques, à savoir :
Merci, Loïc & Aymeric du comité technique d'Esup-Pod |
Concernant django-push-notifications, notre interprétation de la situation est que le projet est en mode de maintenance minimale. À savoir que les problèmes liés à la compatibilité et aux montées de version (de python, django) sont traîtés (par exemple ce problème lié à python 3.10), mais pas les demandes de fonctionnalités ou les dysfonctionnements mineurs. Les options que nous envisageons, dans le désordre :
À défaut d'utiliser django-push-notifications, nous suggérerions d'utiliser django-webpush en complément d'une autre bibliothèque pour les appareils Apple. |
Nous vous remercions d'avoir exposé les différentes options possibles. Au vu de celles-ci, comme vous, nous pensons que les solutions 4 et 5 reviennent à "réinventer la roue", ce qui serait une surcharge conséquente de développement, d'exploitation, etc. Bref, cela ne nous semble pas viable. Au final, entre les 2 solutions (django-push-notifications ou django-webpush/autres bibliothèques), il se pose la question de la pérennité. Dans les 2 cas, cela ne semble pas évident, mais - de notre point de vue - la 2° solution présente plus de problèmes que la 1° : le fait que cela repose sur un seul développeur, qu'il faille par la suite utiliser d'autres bibliothèques et la possibilité d'avoir des problèmes d'incompatibilité avec certains appareils. Au vu de ces informations, il nous semble alors préférable d’utiliser django-push-notifications, en espérant qu'elle évolue dans le bon sens, ou qu'à terme, un fork bien maintenu apparaisse. De ce point de vue, le fait de contacter les mainteneurs de django-push-notifications, ne serait-ce que pour savoir à minima l'état de maintenance et leur roadmap prévisionnelle, serait bienvenu. Merci encore pour ces informations pertinentes. Bonne journée, Loïc & Aymeric du comité technique d'Esup-Pod |
J'ai posé la question de la maintenance chez django-push-notifications: jazzband/django-push-notifications#685 Nous allons entammer le développement de la PWA, on vous tiendra au courant des avancées et des difficultés éventuelles. |
Merci beaucoup de ce retour. Bonne journée |
Bonjour, Depuis quelques années Push API est un standard qui vient remplacer les API natives des constructeurs (FCM/GCM de Google/APNS d'Apple/WNS de Microsoft). Le site caniuse nous apprends des choses intéressantes sur le support de Push API :
Le support pour Apple date donc de moins d'un an. Si l'on regarde les statistiques d'usage, on voit que :
D'un côté django-push-notifications supporte webpush, mais pas pour safari, cependant une PR existe pour son support. D'un autre côté, l'alternative en restant sur le protocole APNS requiert d'utiliser pyapns2 qui semble être très peu maintenu, et a elle même une dépendance vers hyper qui est explicitement abandonné et pose des problèmes de montée de version. Des utilisateurs suggèrent de migrer django-push-notifications sur aioapns en remplacement, mais il n'y a pas de PR pour ça. Le support des matériels Apple est donc problématique puisque :
À ce constat on peut imaginer :
Les options 1, 2 et 3 ont l'inconvénient qu'il faut développer des PR dans des dépots existants, l'incertitude quant à la quantité de travail et à l'acceptation par les mainteneurs. |
Comme convenu nous avons avancé sur l'implémentation via django-push-notifications. Les notifications pour Chrome et Firefox fonctionne bien, il nous reste à tester Safari. En regardant de plus près le fonctionnement de jazzband, nous nous sommes rendus compte que le collectif est assez ouvert. On peut devenir membre sur simple inscription au groupe, ce que j'ai fait. Il existe d'autres statuts, comme les project lead (qui peuvent publier des paquets sur pypi.org) ou les roadies (qui ont à peu près tous les droits). En étant membre on peut donc contribuer au projet. Il reste la question des publications de version, qui est documentée ici. En résumé, pour publier une version il faut demander au project lead, et à défaut aux roadies de jazzband, ou devenir project lead. En conclusion : le projet n'est donc plus maintenu, mais contribuer et amener des contributions jusqu'en production semble abordable. |
Bonjour, Nous vous remercions pour tous ces retours que vous avez partagés jusqu'à présent. En attendant, si vous avez d'autres réflexions ou suggestions à partager, n'hésitez pas à nous en faire part. Nous vous remercions encore pour votre implication. Bonne journée, Aymeric du comité technique d'Esup-Pod. |
Bonjour et merci pour ces échanges détaillés, Je pense (mais on peut en débattre) qu'il ne faut pas "investir" dans les anciens protocoles APNS, GCM etc. mais qu'il faut partir sur du standard webpush. Ce sera un code unique, plus facile à maintenir quitte à "investir" du temps pour améliorer la compatibilité des librairies avec safari puisque que c'est ce qui semble être à la traine. Partant de ça, django-push-notification qui fait tout (si j'ai bien compris) mais qui présente des incertitudes sur la maintenance c'est peut-être "la grosse artillerie". Je ne dis pas qu'il faut l'écarter à ce stade. django-webpush est une librairie plus légère puisqu'elle ne fait que du webpush, et donc j'imagine plus facile à maintenir. Et il est indiqué dans les derniers échanges qu'elle est compatible avec ios 16.4... enfin que ça marche... On collerait donc avec la compatibilité caniuse (à mon sens l'incompatibilité avec les vieux safari n'est pas un problème, en tout cas on pourra le justifier). Qu'en est-il de la maintenance et de la pérénité de cette librairie ? Si c'est mieux il faudrait peut-être creuser cette option. Existe-t-il d'autres librairies équivalentes et qui ne font que du webpush ? Bonne journée, Céline du comité technique POD aussi. |
Quelques retours : nous nous sommes procurés un iphone cette semaine, ce qui nous a permis de tester les différents cas de figures. Nous confirmons que les deux bibliothèques permettent de produire des notifications avec l'API push standard sur les navigateurs ciblés (firefox, chrome, safari) (à condition néanmoins que cette PR soit fusionnée et publiée en ce qui concerne django-push-notifications).
La bibliothèque sous-jacente à django-webpush et django-push-notifications est pywebpush (qui fait 500 lignes de code, semble être assez peu active). pywebpush se charge des échanges réseau avec les serveur webpush tandis que django-pwa ou django-push-notifications vont faire la colle avec django, et notamment enregistrer les informations transmises par les serveurs webpush en base de donnée. Comme nous le voyons :
|
Bonjour, Je tiens à vous remercier pour ces retours constructifs. Après avoir examiné le tout, nous arrivons à la conclusion que Ainsi, nous serions partants vers l'utilisation de Bonne journée, |
Bonjour à tous et merci pour votre suivi. Je me range du côté des membres du comité technique pour vous demander de préférer l'usage de django-webpush. |
Merci pour vos retours. C'est noté on part donc sur django-webpush. |
Bonjour à tous,
J'ouvre ce ticket pour faire le suivi du développement du mode PWA et des push notifications pour esup-pod, par Yaal Coop.
Le premier sujet qu'on aimerait aborder c'est les bibliothèques sur lesquelles on peut se baser. Après avoir fait quelques tests on se rends compte que deux bibliothèques semblent pertinentes pour la mission. On voulait valider que c'est OK de les utiliser. À défaut il faudra qu'on redéveloppe certaines choses à la main.
manifest.json
, du service worker et apporte à peu de coût l'aspect « installable ». Les métadonnées de l'application sont éditables dans la conf django. Le projet est petit (<100 commits) mais la dernière release date du mois dernier, et selon github environ 1000 projets utilisent cette bibliothèque.cc @ptitloup @LoanR
The text was updated successfully, but these errors were encountered: