Menu Close

Category: Code

Envoyer des notifications iOS : une question de flux

Récemment, dans le cadre du développement d’un back office web pour une application mobile, nous avons été confronté à une problématique de performance sur l’envoi de notifications mobiles.

Le Back-Office permet au clientd’écrire des messages qu’ils peuvent envoyer via notification à tous les utilisateurs de l’application. A la livraison de la fonctionnalité, pas de problème. On a 3.000 device token enregistrés en base de données, l’envoi des notification passe bien. Passent des mois, et le nombre d’application installées augmente. Arrive un moment où l’envoi de notification prend du temps, beaucoup de temps. Trop de temps.

Le développement qui avait été fait initialement pour envoyer les notifications n’a pas tenu la charge.

Une fois le problème détecté, plusieurs tentatives d’amélioration ont été faites. Elles avaient pour objectif de minimiser l’impact sur le code existant. Ces tentatives ont été infructueuses : soit le temps passé à l’envoi n’était pas significativement plus faible, soit l’envoi était très instable.

Lire la suite

Relais & Châteaux made by C2iS : Retour sur l’intégration du CRS SynXis

Dans le cadre d’une compétition orchestrée en novembre dernier, le réseau d’hôtels et de restaurants indépendants Relais & Châteaux a retenu le tandem C2iS/OgilvyOne pour opérer une refonte totale de sa plate-forme e-commerce worldwide www.relaisetchateaux.com. C2iS a été choisie pour être à l’œuvre de  la migration technique et de la réalisation front-end du dispositif. La mise en ligne de ce nouveau dispositif a été effectuée le 11 août dernier.

Nous vous proposons de retrouver les interviews des personnes clés de ce projet chez C2iS. Aujourd’hui Sébastien Huot, Lead Développeur du projet Relais & Châteaux et certifié SynXis chez C2iS.

Un partie du projet Relais & Château a consisté dans l’intégration de la centrale de réservation SynXis. Comment cela s’est-il opéré ?

SynXis est une centrale de réservation performante de grande notoriété jusqu’à présent surtout aux Etats-Unis, en France nous sommes actuellement les seuls experts certifiés SynXis. Cette centrale propose deux modèles d’intégration possibles, soit on passe par le couloir de réservation hébergé chez SynXis, soit, et c’est la solution que nous avons choisi pour Relais & Châteaux, nous utilisons une API. Celle-ci par la gestion de webservices permet que chaque action, recherches de disponibilité ou création de réservation par exemple, puisse être configurée par le prestataire qui réalise l’intégration de la centrale. Cela permet une grande liberté dans le développement, tout est personnalisable et configurable.

Quelle est la grande force de l’utilisation du mode API ?
En passant par l’API, nous sommes en mesure d’intégrer complètement le couloir au cœur du site sans passer par l’ouverture d’une autre page. Pour l’utilisateur cela change tout. Il y a un réel bénéfice d’une réassurance accrue car on reste dans la même interface web tout au long du processus. Auparavant on allait sur une nouvelle page pour poursuivre sa réservation. C’était une des exigences  du compte Relais & Château.

Comment s’est déroulé l’étape de certification  avec SynXis ?
Nous avions déjà l’expérience d’une certification avec notre client Oceania. Nous avions donc déjà une bonne expérience. Nous connaissions la centrale, la manière d’intégrer et le processus de certification. C’est une plus-value pour notre agence.

Comment cela se passe-t-il techniquement ?
Tout d’abord, on envoie tous les webservices que l’on veut utiliser (par exemple une recherche de disponibilité pour 2 adultes sur un nombre d’établissement). Une fois choisi,  on procède à l’envoi/réception de requêtes XML. Ces réponses sont analysées par l’équipe SynXis , validés ou non validés. Lors de cette expérience, nous n’avons eu que 2 allers et retours avant la validation finale. Il est nécessaire d’avoir un contrôle en direct avec le validateur  SynXis qui était a Hong-Kong. Nous avons donc effectué la certification de nuit. Nous sommes capables de cette souplesse horaire pour réussir la certification.
Le but de la certification est de verifier les 300 points dont la validation est l’objet en direct. Nous lançons des actions sur le site et le validateur SynXis vérifie à distance ce qui est envoyé. Reprenons notre exemple de requête pour une recherche de disponibilité pour 2 adultes sur un nombre d’établissement, nous faisons l’action sur le site de test et le validateur vérifie que c’est exact à distance en contrôlant les actions qui passent.

Combien de temps a été nécessaire à cette certification ?
Cette certification s’est déroulée en trois jours, « C’est considérablement peu » !

Que peut-on penser du choix SynXis/ Symfony 2
On reste dans un environnement PHP. Symfony fourni une solution qui permet d’avoir une souplesse de code. Dans le cas de l’intégration de SynXis nous avons utilisé un outils appelé GMS qui permet de transformer les requête et les réponses en classes utilisables. Cela est particulièrement intéressant pour les évolutions du site à venir et pour la réutilisation des développements pour chacun des sites établissements de Relais & Châteaux.

Aujourd’hui SynXis a beaucoup évolué, dans quelle mesure ?
La version précédente de l’API SynXis nécessitait de faire un appel par jour par hôtel par chambre, on devait faire un appel à SynXis par seconde pendant 24 heures. Lors du développement de Relais et Châteaux nous avons pu utiliser la dernière version qui ne nécessite d’envoyer qu’un seul appel à SynXis.

Relais & Châteaux made by C2iS : Retour sur le développement Front-End

Dans le cadre d’une compétition orchestrée en novembre dernier, le réseau d’hôtels et de restaurants indépendants Relais & Châteaux a retenu le tandem C2iS/Ogilvy One pour opérer une refonte totale de sa plate-forme e-commerce worldwide www.relaischateaux.com. C2iS a été choisie pour être à l’œuvre de  la migration technique et de la réalisation front-end du dispositif. La mise en ligne de ce nouveau dispositif a été effectuée le 11 août dernier.

Nous vous proposons de retrouver les interviews des personnes clés de ce projet chez C2iS. Aujourd’hui Laurent Guitton (@webdevlint), Manager Pôle Front-End (1).

En quoi l’enjeu du développement front-end  possède-il un relief particulier pour le projet Relais & Château ?

Il y a eu dans ce projet une différence avec ce qu’on fait habituellement : la création et la conception UX(2) ont été réalisées par une autre agence. Nous avons du nous adapter à d’autres méthodes de travail – même si dans l’ensemble nos méthodes et celles d’Ogilvy One sont très proches. Nous avons formé une team de co-conception : par exemple, lorsque l’agence de création évoquait un concept, elle nous demandait si cela était techniquement faisable et pertinent. Nous avons manipulé ensemble un objet de conception qui allait ensuite être transformé en maquettes. Nous échangions sur les modules et les worklows, les parcours utilisateur de telle à telle page… « Quand on clique-là, il se passe cela » etc. A ce stade on essaie de construire des scénarios, des cinématiques de progression dans les interfaces. On manipule l’objet avant qu’il ne soit habillé graphiquement. On est encore dans le conceptuel à ce stade. Et cette collaboration a fonctionné comme on le fait d’habitude en interne.

Lire la suite

Architecture d’un site web : du monolithe au module au composant

Pourquoi est-ce que Symfony2 est sur le devant de la scène, et pourquoi est-ce qu’on vous le recommande de plus en plus pour vos applications web ? Pour répondre à cette question, je vous propose qu’on regarde un peu ce qui se passe sous le capot de votre site, d’hier à aujourd’hui.

Lire la suite

Le piège du cache contextualisé et des fragments

Nous avons récemment eu un dysfonctionnement intéressant du cache sur un de nos projets. Nous utilisons un bundle Symfony2 qui permet de facilement configurer les headers de cache sur toutes les pages de l’application, et de gérer l’invalidation de cache de façon plutôt intéressante (il s’agit de FOSHttpCacheBundle, que nous vous recommandons). Ce bundle permet notamment de gérer un cache contextualisé personnalisé.

Lire la suite

Jouez à cache-cache avec votre site web et améliorez vos performances

Retour d’expérience sur les problématiques et réponses autour des stratégies de cache sur des projets web

Avec de nombreux projets e-tourisme et e-commerce à leur actif, nos équipes techniques ont eu l’occasion de s’éprouver sur des problématiques spécifiques à ces domaines. Ce sont des sites web qui  évoluent dans des milieux très concurrentiels, qui proposent des contenus personnalisés cibles en fonction des habitudes de navigation des utilisateurs, et qui ont une audience internationale.
De gros enjeux donc en terme de référencement pour avoir de la visibilité face à la concurrence, et en terme de performances du fait de la nature internationale du tourisme et de la personnalisation du contenu.

La complexité fonctionnelle des dispositifs e-tourisme (notamment l’intégration des couloirs de réservation et la gestion des offres spéciales) nous ont poussé à recommander à nos clients le développement d’applications spécifiques sous Symfony2 (en) plutôt que l’utilisation de CMS. Un virage technologique auquel il faut faire attention, car une application sur Symfony2 demandera plus d’efforts de la part des développeurs pour être performantes ; et notamment l’utilisation et la bonne utilisation du cache HTTP devient nécessaire, a contrario de recommandée pour des projets CMS classiques. Cela est valable pour la plupart des sites web modernes, quelle que soit la technologie employée : les technologies web tendent à être de plus en plus haut niveau et donc à augmenter en polyvalence, facilité et rapidité de développement, au prix des performances.

Cet article a pour but d’introduire le concept de mise en cache des contenus, les implications sur la conception et réalisation des applications, et les conséquences des décisions prises ou non dans le cadre de cette problématique.

Lire la suite

jordan 12 cherry jordan 12 cherry jordan 12 cherry jordan 12 flu game jordan 12 flu game jordan 12 flu game jordan 12 french jordan 12 french jordan 12 french jordan 12 gym jordan 12 gym jordan 12 gym jordan 12 ovo jordan 12 ovo jordan 12 ovo jordan 12 unc jordan 12 unc jordan 12 unc jordan 12 wings jordan 12 wings jordan 12 wings