Compétence M8
En fonction des projets déterminés autour de la « Conception et implémentation des services numériques », savoir identifier, choisir (y-c défendre) et adapter les solutions les plus appropriées pour les défis rencontrés
- Quoi :
Cette compétence implique la capacité à évaluer, sélectionner et justifier les outils et technologies les plus appropriés pour répondre aux besoins spécifiques des projets en matière de conception et d'implémentation de services numériques.
- Comment :
- Choix de REALM pour la base de données : J'ai choisi REALM, une base de données locale pour Android et iOS, en raison de sa performance supérieure et de sa facilité d'intégration par rapport à d'autres options comme Iris. REALM offre une synchronisation en temps réel et une réactivité qui étaient cruciales pour le projet.
import 'package:realm/realm.dart';
part 'xxxxxxx_data.g.dart';
@RealmModel()
class _Datalogger {
@PrimaryKey()
late ObjectId id;
late String xxxx;
late String xxxx;
late String macAddress;
late String model;
late List<_Data> dataEntries;
}
@RealmModel()
class _Data {
@PrimaryKey()
late ObjectId id;
double? humidity;
double? temperature;
double? pressure;
int? timestamp;
}
- Utilisation de Pusher : Après avoir réalisé un tableau comparatif, j'ai déterminé que Pusher était le meilleur outil pour nos besoins en termes de coût, support communautaire et facilité d'utilisation, ce qui le rendait idéal pour notre projet nécessitant des fonctionnalités de communication en temps réel.
Framework | Coût | Caractéristiques Principales | Facilité d'Intégration | Performance | Support Client | Documentation | Cas d'Usage Typiques |
---|---|---|---|---|---|---|---|
Twilio Chat - Gratuit | Gratuit | Inclut 1 000 visiteurs/mois, 500 000 enregistrements ETL/mois, 2 sources, plus de 450 intégrations, 1 destination de data warehouse | Facile | Robuste | Support par email et communauté | Disponible | Idéal pour les entreprises de toutes tailles |
Twilio Chat - Payant | À partir de 120 $/mois | Tout ce qui est dans le gratuit plus : inclut 10 000 visiteurs/mois, 1 000 000 enregistrements ETL/mois, sources illimitées, accès API public | Avancée | Plus robuste | Support prioritaire | Disponible | Entreprises avec besoins d'engagement élevés |
SendBird - Gratuit | Gratuit | 100 MAU, 10 connexions simultanées, toutes les fonctionnalités pro, support communautaire | |||||
SendBird - Payant | 399 $/mois | 5K MAU, les essentiels de la messagerie moderne, modération de base, assistance payante | |||||
PubNub - Gratuit | Gratuit | Jusqu'à 200 MAUs ou 1M transactions totales par mois | |||||
PubNub - Payant | 49 $/mois | Jusqu'à 1 000 MAUs, jusqu'à 3 000 transactions par MAU | |||||
CometChat - Gratuit | 109 $/mois | 26-1 000 MAUs, fonctionnalités de chat principales, intégration facile, infrastructure robuste, support par email et communauté | Facile avec outils sans code | Robuste | Support par email et communauté | Disponible | Startups et petites entreprises |
CometChat - Payant | 529 $/mois | 26-1 000 MAUs, tous les essentiels, engagement utilisateur robuste, 15k minutes de voix et vidéo | Intégration avancée | Plus robuste | Support prioritaire | Disponible | Entreprises en croissance |
Pusher Chatkit - Gratuit | Gratuit | 200k messages/jour, 100 connexions simultanées | Standard | ||||
Pusher Chatkit - Payant | 49 $/mois | 1 million messages/jour, 500 connexions simultanées | Standard | ||||
Stream Chat - Gratuit | Gratuit | 25 MAU, 25 connexions simultanées | Support communautaire | ||||
Stream Chat - Payant | 399 $/mois | 10 000 MAU, 500 connexions simultanées, modération avancée, conservation illimitée des messages, support hors ligne, exportation des données, aucune limite sur les membres ou les canaux | Modération avancée & filtres | Disponible | Environnements de production exigeants | ||
Chatwoot - Gratuit | Gratuit | Jusqu'à 2 agents, support par chat, conservation des messages limitée à 500 par mois, données conservées 30 jours | Facile | Standard | Support par chat | Disponible | Petites équipes et startups |
Chatwoot - Payant | 19 $/agent/mois | Jusqu'à 2 agents, support par chat et email, requêtes de fonctionnalités prioritaires, conservation illimitée des messages, données conservées indéfiniment | Facile | Standard | Support par chat et email | Disponible | Équipes plus grandes et startups |
Ably - Gratuit | Gratuit | 6M messages/mois, 200 canaux et connexions simultanées, SLA de disponibilité, pas de coûts pour l'hébergement sur site | Facile | Haute | Support communautaire | Disponible | Exploration des capacités de la plateforme |
Ably - Payant | Variable | 0.01 $ par MAU, 0.9 $ par GB pour la bande passante en temps réel, 2.5 $ par GB pour la base de données en temps réel | Facile | Haute | Support technique étendu | Disponible | Infrastructure évolutive pour besoins croissants |
Tinode - Gratuit | Gratuit | Installation par soi-même, support communautaire, configuration simplifiée des notifications push, surveillance de la production | Facile | Standard | Support communautaire | Disponible | Petites équipes et familles |
Tinode - Payant | 500 $/an | Tout ce qui est dans le gratuit plus : gestion du serveur Tinode Admin, configuration simple des applications iOS et Android, applications personnalisées, demandes de fonctionnalités prioritaires | Avancée | Élevée | Support prioritaire | Disponible | Exploitation d'une entreprise |
Mesibo - Gratuit | Gratuit | Appels vidéo et voix gratuits, conférences, serveur TURN à 0.4 $ par GB, scripts et chatbots à 0.01 $ par seconde de durée CPU, conservation des messages illimitée, taille de transfert de fichiers illimitée | Facile | Haute | Support pour serveur TURN, scripts et chatbots | Voir page de conférence | Appels vidéo et voix un à un, conférences, scripts et chatbots personnalisables |
- Adoption de JIRA : J'ai opté pour JIRA pour la gestion de projet en raison de sa capacité à structurer et à suivre efficacement le travail en équipe, ainsi que pour ses fonctionnalités de reporting avancées.
- Application de Scrum : Scrum a été adopté pour sa méthode agile, qui favorise la flexibilité, la réactivité aux changements et une collaboration étroite au sein de l'équipe.
Exemple d'un weekly meeting
User stories
Diagramme de Gantt pour voir l'évolution du projet
- Intégration de GIT : J'ai choisi GIT pour le contrôle de version en raison de sa robustesse, de sa flexibilité et de sa large adoption dans la communauté des développeurs, facilitant la collaboration et le suivi des modifications.
Le projet Koloka sur GitHub
- Sélection de Docker : Docker a été choisi pour sa capacité à simplifier le déploiement des applications en conteneurisant l'environnement, garantissant ainsi la cohérence entre les environnements de développement et de production.
Docker pour le projet Koloka
- Utilisation de Node.js : Node.js a été sélectionné pour sa performance en matière de développement back-end, en particulier pour les applications nécessitant un traitement rapide et un environnement évolutif.
NodeJS dans le projet Koloka
- Choix de Slack : Slack a été utilisé comme outil de communication de l'équipe pour sa facilité d'utilisation, ses intégrations avec d'autres outils et sa capacité à organiser les communications en canaux dédiés.
Outils de communication
- Préférence pour Insomnia : J'ai choisi Insomnia pour tester les API en raison de son interface utilisateur intuitive et de sa capacité à gérer facilement différentes configurations d'environnements.
Insomnia pour tester les API
- Adoption d'Excalidraw : Excalidraw a été utilisé pour sa simplicité et son efficacité dans la création de diagrammes et de schémas visuels, aidant à conceptualiser et à communiquer les idées de manière claire.
Schema intégration de Pusher
- Utilisation de Figma : Adopté pour la conception et le prototypage d'interfaces utilisateur grâce à ses outils de design collaboratif.
Prototype projet AKTS
- Intégration de Grafana : Utilisé pour la visualisation de données et la création de tableaux de bord interactifs, permettant un suivi efficace des performances.
Un graphique sur Grafana
- Pourquoi :
Chaque outil et technologie a été sélectionné pour maximiser l'efficacité, améliorer la collaboration et garantir la réussite du projet. Leur utilisation a permis de relever les défis spécifiques du projet tout en optimisant les processus de développement et de gestion.
- Application pratique :
Dans la mise en œuvre de ces outils et technologies, j'ai non seulement pu répondre efficacement aux exigences du projet, mais j'ai également acquis une expérience précieuse dans la sélection et l'utilisation de diverses solutions numériques. Cette compétence m'a permis de naviguer dans les défis techniques avec assurance et de contribuer de manière significative à la réussite des projets.
- Réflexion personnelle :
L'expérience d'identifier et de choisir les outils et technologies adaptés pour mes projets numériques a été un aspect fondamental de mon apprentissage professionnel. La décision d'utiliser REALM, Pusher, JIRA, GIT, et d'autres outils était basée sur une évaluation détaillée de leurs fonctionnalités et de leur pertinence par rapport aux exigences spécifiques de mes projets. Cette compétence m'a enseigné l'importance d'une analyse réfléchie et d'une capacité d'adaptation dans le domaine technologique en constante évolution. J'ai appris que le succès d'un projet numérique repose non seulement sur les compétences techniques, mais aussi sur la capacité à choisir judicieusement les ressources et à les aligner de manière efficace avec les défis uniques du projet. Cette expérience a renforcé ma confiance en ma capacité à prendre des décisions éclairées et à justifier mes choix technologiques dans un contexte professionnel.