Je voudrais rassembler quelques métriques sur l'utilisation pour une application de bureau multiplateforme basée sur Electron. Cela comprendrait des informations de base sur l'environnement de l'utilisateur (système d'exploitation, taille de l'écran, etc.) ainsi que la possibilité de suivre l'utilisation, par exemple le nombre de fois où l'application est ouverte ou des actions spécifiques dans l'application. Ces mesures doivent être envoyées à un serveur d'analyse, afin qu'elles puissent être visualisées globalement. Idéalement, je pourrais héberger le composant côté serveur moi-même, mais envisagerais certainement une solution hébergée par un tiers.Comment collecter des statistiques utilisateur pour une application de bureau Electron?
Il existe différentes solutions d'analyse pour le Web (Google Analytics, Piwik) et pour les applications mobiles, ainsi que des solutions pour les applications côté serveur de Node.js. Est-il faisable d'adapter l'une de ces solutions aux applications électroniques de bureau? Comment? Ou existe-t-il de bonnes solutions d'analyse spécialement conçues pour les applications de bureau fonctionnant avec Electron/javascript? Contrairement à une page Web classique, l'utilisateur peut utiliser l'application hors ligne. Les actions hors ligne doivent donc être enregistrées, mises en file d'attente et envoyées ultérieurement lorsque l'utilisateur se connecte. Une application de bureau charge généralement des pages du système de fichiers, pas HTTP, de sorte que la solution doit être capable de faire face à cela. À la différence d'une application côté serveur Node.js, il peut y avoir un grand nombre de clients plutôt qu'une seule (ou quelques) instances de serveur. L'analyse pour une application de bureau serait centrée sur l'utilisateur, alors qu'une application Node.js côté serveur pourrait ne pas l'être. Facilité d'installation est également un facteur important - une solution idéale aurait juste quelques lignes de configuration pour recueillir des mesures de base, puis pourrait être étendu au besoin avec des actions/événements personnalisés.