Introduction
La transformation numérique couvre chaque année de plus en plus de secteurs de la vie et des affaires. Si une entreprise veut rester compétitive, un simple site d'information ne suffit plus ; des applications mobiles et web sont nécessaires, qui non seulement fournissent des informations aux utilisateurs, mais leur permettent également de réaliser certaines fonctions : obtenir ou commander des biens et services, fournir des outils.

Par exemple, il ne suffit plus aux banques modernes d'avoir un site contenant des informations, elles doivent proposer des outils en ligne pour leurs clients, un espace personnel où l'utilisateur peut gérer ses comptes, ses investissements et ses crédits. Même les petites entreprises, pour améliorer leur conversion, ont besoin d'outils pratiques, comme la prise de rendez-vous chez un médecin ou un coiffeur, la réservation d'une table dans un restaurant ou d'une salle de jeux pour un anniversaire.
Quant aux propriétaires, ils ont besoin de recevoir des informations en temps utile sous une forme pratique sur l'état de leur entreprise, par exemple, la collecte de données statistiques et d'analyses sur différents départements ou la productivité des départements. Souvent, chaque département collecte ces données à sa manière et peut même utiliser différents outils, ce qui oblige le propriétaire à passer beaucoup de temps personnel pour s'y retrouver, ce qui peut indirectement ou directement affecter l'efficacité de l'entreprise et, en fin de compte, sa rentabilité. Ici aussi, la transformation numérique et le développement d'une application web ou mobile sont utiles.
Les technologies ne stagnent pas et évoluent constamment, ce qui était utilisé il y a quelques années peut ne plus être pertinent aujourd'hui, et ce qui n'était pas possible il y a quelques années est désormais une réalité. Il existe de nombreux outils modernes qui aident à créer des applications web et mobiles plus rapidement et de manière plus qualitative. En m'appuyant sur mes propres observations et expériences, je souhaite partager ma vision des technologies et des outils qui seront demandés dans un avenir proche et pourquoi il est important de s'y intéresser lors de la création d'une application web moderne.
Application à page unique (applications monopages)
Clarifions un peu notre terminologie. Une Single Page Application (SPA) est une application web dont les composants sont chargés une seule fois sur une page, tandis que le contenu est chargé au besoin. Ainsi, lors de la navigation entre les sections de l'application, la page ne se recharge pas complètement, mais seules les données nécessaires sont chargées et affichées.
Les applications monopages gagnent beaucoup en rapidité et en convivialité par rapport aux applications web classiques. Grâce aux SPA, il est possible d'obtenir un effet de fonctionnement d'un site web semblable à une application de bureau, sans recharges et avec des retards minimes.
Il y a quelques années, les applications monopages n'étaient guère compatibles avec l'optimisation pour les moteurs de recherche, et elles étaient principalement utilisées pour créer des tableaux de bord et des interfaces d'administration. Aujourd'hui, il est beaucoup plus facile de créer une application monopage entièrement compatible avec l'optimisation pour les moteurs de recherche (SEO). L'utilisation d'applications monopages avec rendu côté serveur a totalement résolu ce problème. En d'autres termes, c'est une application monopage similaire, mais lors de la première requête, le serveur génère non seulement des données, mais crée une page HTML prête à être affichée et les moteurs de recherche reçoivent des pages complètes avec toutes les métadonnées et le balisage sémantique.
Avec le développement des outils de création d'applications web client, le développement et la transition vers des applications monopages vont continuer à croître cette année et dans les années à venir. Si vous avez une ancienne application qui est devenue obsolète et fonctionne lentement, encore avec un rechargement complet de la page lors du passage entre les sections, alors cette année, vous pouvez passer sans hésiter à une application monopage rapide – c'est le bon moment, les technologies permettent déjà de le faire assez rapidement et efficacement.
Avoir un site web moderne et rapide est excellent, mais je dois vous dire honnêtement : toutes les applications ne peuvent pas être facilement converties en monopages, et la transition peut coûter cher ! Il est donc important de comprendre qui a besoin de cette transition et pourquoi.
Pour vous aider à y voir plus clair, je vais vous présenter dans le tableau ci-dessous quelques exemples où le développement ou la transition vers une SPA est pertinent et justifié, et où ce n'est pas le cas.
FIN
Si vous souhaitez créer une application moderne et rapide qui soit utilisée non seulement en version web, mais aussi sur mobile ou même sur desktop, tout en le faisant fonctionner sur un serveur distant ou cloud, de manière à ce que tous les clients aient une interface d'interaction unique et sans avoir besoin d'apporter chaque modification au code serveur lors de l'ajout d'un nouveau client.
Par exemple : un réseau social, des agrégateurs, des plateformes SaaS (logiciel en tant que service), des marketplaces.
Si vous avez un magasin ou un service web, et que vous savez qu'il est lent et que les gens partent, vous voulez le rendre plus rapide, vous comprenez la valeur des clients et êtes prêt à payer pour une mise à niveau à partir d'un million de roubles.
Vous avez une application mobile qui utilise l'API d'un site, et le site est lent avec un rechargement complet du contenu lors des passages entre les pages.
CONTRE
Si votre public cible n'utilise pas de navigateurs et d'appareils modernes.
Par exemple : des secteurs d'entreprise spécifiques, tels que le développement de systèmes internes pour les banques, les établissements de santé et l'éducation.
Vous exercez principalement vos activités hors ligne et n'êtes pas prêt à fournir des services en ligne, et vous devez simplement attirer des clients.
Si vous possédez une boutique en ligne ou un service web qui se vend déjà bien, vous ne voyez pas d'abandon de clients ni de plaintes.
Si vous avez une application fonctionnelle qui ne peut pas être adaptée en SPA et que vous devez tout réécrire à zéro en utilisant d'autres technologies, et que vous n'êtes pas prêt à dépenser plusieurs millions pour cela.
Par exemple : il existe un site en boîte ou un code monolithique ancien fait maison.
Applications Web Progressives
Les Applications Web Progressives (PWA) sont un produit de l'évolution conjointe des applications natives et des sites web. Essentiellement, il s'agit d'une application web qui ressemble et se comporte comme une véritable application native, peut recevoir des notifications push, fonctionner hors ligne, etc. De plus, l'utilisateur n'a pas besoin de télécharger l'application depuis l'App Store ou Google Play, il lui suffit de l'enregistrer sur son bureau.
En tant que technologie ou approche de développement, les PWA ont évolué depuis 2015 et connaissent récemment une popularité croissante dans le domaine du e-commerce.
Quelques exemples concrets de la vie :
- L'année dernière, l'hôtel Best Western River North, après avoir lancé un nouveau site avec prise en charge de PWA, a pu augmenter son chiffre d'affaires de 300 %.
- Le site de petites annonces arabes OpenSooq.com, après avoir mis en place la prise en charge de PWA, a pu augmenter le temps de visite de 25 % et le nombre de prospects de 260 %.
- Le service de rencontres célèbre Tinder a réussi à réduire son temps de chargement de 11,91 secondes à 4,69 secondes en développant une PWA, de plus, l'application pèse 90 % de moins que son équivalent natif Android.
Le fait qu'il faille prêter attention à cette technologie est également souligné par le lancement en 2018 d'une version développeur précoce de PWA Studio par Magento, l'un des plus grands moteurs de création de projets e-commerce. La plateforme permet de créer un front-end basé sur React pour des solutions e-commerce avec prise en charge de PWA.
Un conseil pour ceux qui ont déjà un projet Internet ou seulement une idée de nouveau service avec prise en charge mobile : ne vous précipitez pas à écrire une application native complète, mais regardez d'abord la technologie PWA. Cela pourrait être la meilleure solution en termes rapport qualité-prix pour votre produit.
Un peu de pratique. Pour créer une simple application mobile native d'actualités, à condition d'avoir déjà un serveur REST prêt, il faut environ 200-300 heures-homme pour chaque plateforme. Avec un tarif moyen sur le marché de 1500-2000 rub. par heure de développement, l'application peut coûter environ 1 million de roubles. Si l'on développe une application web avec prise en charge complète de PWA : notifications push, mode hors ligne et autres fonctionnalités, le développement prendra aussi 200-300 heures-homme, mais le produit sera immédiatement disponible sur toutes les plateformes. Cela signifie une économie d'environ 2 fois, sans parler du fait qu'il n'est pas nécessaire de payer des frais pour publier dans les magasins d'applications.
Sans serveur
C'est une autre approche moderne du développement. À cause de son nom, beaucoup pensent qu'il s'agit réellement d'un développement sans serveur, qu'il n'est pas nécessaire d'écrire du code back-end, et qu'un développeur front-end peut créer une application web complète. Mais ce n'est pas le cas !
Lors de la création d'une application Serverless, un serveur est toujours nécessaire, tout comme une base de données. La principale différence de cette approche est que le code back-end est présenté sous forme de fonctions cloud (aussi appelé serverless – FaaS, fonctions en tant que service) et permet à l'application de se développer rapidement et facilement. Lors de la création d'une telle application, le développeur peut se concentrer sur les tâches commerciales sans se soucier de l'extensibilité et de la configuration de l'infrastructure, ce qui accélère le développement de l'application et réduit son coût. De plus, l'approche Serverless aide à économiser sur la location serveurs, car elle utilise exactement les ressources nécessaires pour exécuter une tâche, et s'il n'y a pas de charge, le temps serveur n'est pas du tout utilisé et n'est pas facturé.
Par exemple, la grande entreprise médiatique américaine Bustle a pu réduire ses coûts de . C'est très pratique d'avoir tout au même endroit. Grâce à cela, en cas de problème, nos spécialistes vous aideront à le résoudre dans les plus brefs délais. de plus de 60 % en passant au Serverless. L'entreprise Coca-Cola, lors du développement d'un système automatisé de vente de boissons par distribution automatique, a pu réduire ses frais d'hébergement de 13 000 $ à 4 500 $ par an grâce à la transition vers le Serverless.
Au cours des deux dernières années, en raison de sa nouveauté et de ses limitations, le Serverless était principalement utilisé pour de petits projets, des startups et des MVP, mais aujourd'hui, grâce à l'évolution des logiciels, à la polyvalence et à la puissance de la conteneurisation des serveurs, des outils émergent qui permettent de supprimer ces limitations, de simplifier et d'accélérer le développement d'applications cloud.
Cela signifie que des scénarios d'affaires d'entreprise dans lesquels la modernisation cloud était auparavant considérée comme impossible (par exemple, pour les dispositifs périphériques, le transfert de données ou les applications avec état) deviennent maintenant une réalité. Des outils prometteurs incluent kNative et Serverless enterprise.
Cependant, le Serverless n'est pas une solution miracle pour le développement d'applications web. Comme toute autre technologie, elle a ses avantages et ses inconvénients, et il est nécessaire de choisir cet outil avec discernement, et de ne pas "enfoncer des clous avec un microscope" juste parce qu'il est plus technologique.
Pour vous aider à comprendre, voici quelques exemples où il vaut la peine de penser au Serverless lors du développement d'un nouveau service web ou de l'amélioration d'un service existant :
- Lorsque la charge sur le serveur est périodique et que vous payez pour l'inactivité des ressources. Par exemple, nous avons eu un client avec un réseau de distributeurs automatiques de café qui devait traiter des demandes et collecter des statistiques seulement quelques centaines ou milliers de fois par jour, tandis qu'à la nuit tombée, le nombre de demandes chutait à quelques dizaines. Dans ce cas, il est beaucoup plus efficace de ne payer que pour l'utilisation réelle des ressources, c'est pourquoi nous avons proposé et mis en place une solution Serverless;
- Si vous ne prévoyez pas de vous plonger dans les détails techniques de l'infrastructure et de surpayer pour la configuration et le support des serveurs et des répartiteurs de charge. Par exemple, lors du développement d'un marketplace, vous ne savez pas exactement quelle sera la fréquentation ou, au contraire, vous prévoyez une forte fréquentation et souhaitez que votre application puisse facilement supporter la charge, Serverless est un excellent choix.
- Si vous devez exécuter certains événements de flux dans le fonctionnement de l'application principale, enregistrer des données secondaires dans des tables, effectuer certains calculs. Par exemple, collecter des données analytiques sur les actions des utilisateurs, les traiter d'une certaine manière et les stocker dans une base de données;
- Si vous devez simplifier, uniformiser ou accélérer le fonctionnement actuel de l'application. Par exemple, créer des services améliorant la performance pour le traitement des images ou des vidéos, lorsque l'utilisateur télécharge une vidéo vers le cloud, et qu'une fonction distincte s'occupe de la transcodification, le serveur principal continue de fonctionner normalement.
Si vous devez traiter des événements provenant de services tiers. Par exemple, traiter des réponses des systèmes de paiement, ou rediriger les données utilisateur vers un CRM pour accélérer le traitement des demandes des clients potentiels.
Si vous avez une grande application et que certaines parties de l'application peuvent être mises en œuvre plus efficacement en utilisant un langage différent de celui principal. Par exemple, vous avez un projet en Java et devez ajouter une nouvelle fonctionnalité, mais vous n'avez pas de mains libres, ou l'implémentation dans ce langage peut prendre plus de temps et il existe déjà une solution dans un autre langage, Serverless peut également aider dans ce cas.
Ce n'est là qu'une partie des outils et technologies qui méritent d'être examinés, j'ai simplement partagé ce que nous utilisons chaque jour au travail et dont nous savons pertinemment comment cela peut aider les entreprises.
Source : habr.com
