Si vous êtes un développeur mobile, vous vous demandez peut-être comment gérer les données utilisateur dans votre prochaine application. Devez-vous utiliser une base de données, un serveur dédié ou peut-être pouvez-vous gérer uniquement avec un serveur frontal? Cet article vous aidera à prendre une meilleure décision.
Avant de plonger dans les détails du service disponible, mettons de côté la terminologie..
Pour les applications mobiles et Web, on parle souvent de front-end et de back-end. Tandis que le l'extrémité avant définit l'interface utilisateur, l'interaction utilisateur et la présentation des informations, la back-end gère la logique métier, le stockage des données et la sécurité. Le serveur frontal est le navigateur Web ou le périphérique mobile des utilisateurs, et le serveur principal est le ou les serveurs sur lesquels les données sont stockées et partagées..
Un nombre croissant d'applications mobiles modernes s'appuient sur au moins quelques fonctionnalités nécessitant un back-end. L'analyse des utilisateurs et de l'utilisation, les notifications push, la sécurité étendue, la communication entre utilisateurs (dans les jeux multijoueurs ou les applications de messagerie, par exemple) et la monétisation de l'application par le biais de publicités sont les exemples les plus courants..
Du point de vue du développeur mobile, le back-end semble être un tout autre monde, peuplé de bases de données et de serveurs. Les développeurs doivent non seulement créer de superbes interfaces mobiles performantes, mais ils doivent également connaître l'infrastructure réseau, tels que les serveurs Web, les logiciels de gestion de base de données, les langages de script côté serveur, etc..
En outre, ils devraient être des experts de la cryptographie moderne et de la sécurité informatique, du Big Data et de l'exploration de données, des réseaux de télécommunication mobiles (les applications mobiles fonctionnent principalement sur des téléphones intelligents connectés à un réseau de téléphonie mobile) et d'une liste croissante de technologies supplémentaires.
Naturellement, il en résulte que, même pour développer une application mobile simple avec un back-end, le développeur doit maîtriser de nombreux outils et langages qui sortent du cadre du développement d'applications ordinaires. Cette situation décourage certainement de nombreux développeurs d’intégrer un back-end dans leurs applications..
Avec l'informatique en nuage absorbée par le grand public, XaaS (BaaS, SaaS, PaaS, etc.) a déjà commencé à redéfinir la manière dont les logiciels sont développés, publiés et mis au point. et consommé.
L'idée de base est similaire à celle de sous-traiter le développement, la maintenance et la gestion en arrière-plan à une autre partie. En d’autres termes, le back-end est mis à la disposition des développeurs en tant que service Web..
Alors que différents fournisseurs BaaS offrent diverses fonctionnalités à travers une grande variété de modèles de tarification, la plupart d’entre eux utilisent une sorte de modèle "freemium". Cela signifie que des fonctionnalités essentielles telles que le stockage de données, l'analyse utilisateur / utilisation, les notifications push et l'authentification sont fournies gratuitement jusqu'à une certaine limite d'utilisation. Une fois que l'utilisation dépasse cette limite ou que des fonctionnalités supplémentaires sont demandées, des frais sont facturés. Cela facilite la création et le lancement d'une application au niveau d'utilisation gratuite, puis son passage à un niveau payant à mesure que vous ajoutez des clients..
Normalement, le développeur doit utiliser les kits de développement logiciel (SDK) et les API du fournisseur BaaS pour connecter son application au back-end..
Le plus gros avantage de BaaS est qu’il libère les développeurs du fardeau de la construction et de la gestion d’arrière-plans. Cela permet au développeur de se concentrer sur des tâches plus importantes, telles que la conception d’une expérience utilisateur convaincante, qui seront les facteurs de succès de l’application. En outre, cela aide le développeur à éviter les courbes d'apprentissage raides généralement associées à la plupart des technologies back-end. Cela réduit donc les coûts et le temps de développement. Il fournit également un moyen peu coûteux d’expérimenter les idées des applications et de voir comment elles se comportent dans le monde réel..
Comme pour toute autre chose, BaaS a des compromis. L'inconvénient majeur est que votre fournisseur BaaS risque de cesser soudainement ses activités et de mettre fin au service. Dans un tel scénario, même si vous changez de fournisseur, vous devrez peut-être repenser et recoder substantiellement votre application, car le nouveau service pourrait avoir une API complètement différente. En fait, l'un des fournisseurs BaaS les plus populaires, Parse, a récemment fermé ses portes, ce qui a affecté de nombreux développeurs (bien que l'infrastructure Parse ait été publiée sous une licence open source et que de nouveaux fournisseurs se soient développés pour fournir un BaaS compatible Parse).
Un autre inconvénient est que la personnalisation de l'infrastructure dorsale dans un système BaaS est souvent limitée. Cela pourrait signifier que certaines fonctionnalités souhaitées pour votre application ne sont pas disponibles..
Avant de choisir un fournisseur pour votre application mobile, vous devez vous poser plusieurs questions sur chaque fournisseur BaaS..
La première question est de savoir si le fournisseur peut répondre aux besoins de votre application. Il vaut la peine de mentionner que parfois, redéfinir la portée de votre application pour l'adapter aux fonctionnalités offertes par un fournisseur BaaS peut vous donner des résultats vraiment étonnants. Mais n'abandonnez pas les fonctionnalités qui confèrent à votre application son unicité et son attrait.!
La plupart des fournisseurs BaaS n'offrent leurs services gratuitement que jusqu'à un certain point. Ce point limite est généralement défini par quelque chose comme le nombre d'appels d'API, le nombre d'utilisateurs actifs ou un paramètre similaire. Parfois, il peut être très difficile pour le développeur de prévoir le volume d'utilisation ou le nombre d'utilisateurs de l'application. Il est donc tout à fait possible de se retrouver avec une plate-forme non rentable pour le développeur.
Vérifiez-le à l'avance en projetant les coûts et les produits pour une plage de valeurs possibles correspondant à l'utilisation ou au nombre d'utilisateurs. Ensuite, vous pouvez voir quelle part des revenus de l'application ira aux frais BaaS et ajuster votre modèle de revenus si nécessaire. Le développeur peut également rechercher un fournisseur BaaS dont le modèle de tarification correspond le mieux au modèle de revenu de l'application..
En raison des limites de la personnalisation, certaines applications peuvent être difficiles, voire impossibles à développer, avec certaines offres BaaS prêtes à l'emploi. Il est intéressant de noter que certains fournisseurs BaaS offrent des fonctionnalités plus spécialisées ciblant une catégorie d’application spécifique, telles que les jeux. Si votre application entre dans une telle catégorie, il y a plus de chance que la fonctionnalité requise soit prise en charge par un tel fournisseur. Vous devez faire un peu de recherche sur les fournisseurs BaaS qui ciblent votre catégorie d'applications spécifique..
Le développeur doit également prendre en compte le cycle de vie de l'application. Plus la durée de vie de l'application est longue, plus il est coûteux de rester avec le fournisseur BaaS. Pour une application qui existera longtemps, il pourrait être intéressant d'investir dans la création de votre propre back-end.
Maintenant que nous avons quelques informations sur BaaS du point de vue du développeur et du fondateur d'une application, voyons quelques-uns des packages BaaS populaires et leurs fonctionnalités. Alors que le secteur est dominé par les fournisseurs commerciaux, un ensemble de futurs fournisseurs open source semble également être à la hausse.
Firebase, la plate-forme BaaS de Google, propose une liste complète de fonctionnalités classées en trois étapes, à savoir Développer, Gagner et Développer. L'étape de développement comprend les bases de données en temps réel, l'authentification, la messagerie en nuage, le stockage, l'hébergement, un laboratoire de test (pour tester les applications sur un appareil) et un rapport d'incident. En tant que fournisseur commercial, il a également intégré sa plate-forme AdMob pour monétiser votre application. Plus loin sur la voie de la croissance, vous trouverez des fonctionnalités telles que l'indexation des applications, AdWords, les notifications, etc..
Parce que c'est de Google, le créateur d'Android, Firebase est généralement considéré comme une plate-forme Android. Cependant, le SDK Firebase est également disponible pour iOS.
Ici sur Envato Tuts +, nous proposons un certain nombre de tutoriels et de cours pour vous aider à démarrer avec Firebase. Vérifie-les!
Un autre fournisseur commercial, Amazon Web Services (AWS), a été l’un des premiers fournisseurs de PaaS. Il propose un ensemble complet de services en nuage et d’outils d’accompagnement, permettant de contrôler, si vous le souhaitez, tous les aspects de vos serveurs virtuels. En fait, de nombreux autres fournisseurs de services cloud utilisent AWS dans les coulisses..
Toute cette puissance a un coût, bien qu'AWS ait une courbe d'apprentissage beaucoup plus raide que celle des autres fournisseurs BaaS. Les fonctionnalités comprennent les kits de développement logiciel (SDK) mobiles, les notifications par e-mail et SMS, l'analyse des applications et la batterie de périphériques permettant de tester votre application sur différents appareils mobiles..
Parse était une plate-forme BaaS populaire, mais malheureusement, Facebook a décidé de la fermer. Mais ne vous inquiétez pas, le SDK Parse va mourir! Facebook a mis fin au service d'hébergement de parse.com en janvier 2017, mais le kit de développement logiciel Parse est devenu une source ouverte. Parse SDK a beaucoup d'excellents développeurs qui y travaillent, et il existe un certain nombre de tout nouveaux sites Web qui offrent un hébergement back-end en tant que service..
L'un des meilleurs est Back4App. Il dispose d'un niveau gratuit avec un budget de stockage et de requêtes généreux, ainsi que des API pour Android et iOS..
Présentant son BaaS hautement élastique, Mesosfer est un fournisseur commercial avec des fonctionnalités intéressantes qui prennent en charge les applications intégrées mobiles, Web et même IoT..
Contrairement aux membres précédents de cette liste, BaasBox est un fournisseur BaaS à source ouverte. Les statistiques d'utilisation des développeurs et des API affichées sur leur site Web suggèrent un fournisseur compétitif et capable, comparable aux fournisseurs commerciaux..
Une autre source ouverte BaaS est Apache Usergrid (du créateur du serveur Web populaire). Usergrid prend en charge l'exécution sur l'infrastructure de serveur traditionnelle, vous permettant de déployer votre propre plate-forme BaaS. Les fonctionnalités incluent la gestion des utilisateurs, le stockage de fichiers et de données, ainsi que la récupération.
Microsoft a ajouté une plate-forme BaaS à Azure, leur populaire suite de services cloud. Azure Mobile Services prend en charge les notifications push, la synchronisation des données et l'authentification. Pour les développeurs travaillant dans le domaine de l'entreprise, Azure Mobile Services prend également en charge la connectivité aux réseaux d'entreprise à l'aide de technologies telles que Active Directory et VPN. Reflétant l'adoption récente par Microsoft du développement multi-plateformes, Azure Mobile Services fonctionne sur Android, iOS et bien sûr sur Windows Phone..
Apple a présenté son framework CloudKit aux côtés d'iOS 8 en 2014. Si son objectif principal était de servir de base de données en ligne pour les applications iOS, CloudKit offre également de nombreuses autres fonctionnalités, notamment les notifications push. Une des meilleures choses à propos de CloudKit pour certains développeurs est combien vous obtenez gratuitement. Par exemple, avec CloudKit, le nombre de notifications push que vous pouvez envoyer à vos utilisateurs est illimité..
Cependant, un inconvénient dont vous devez être conscient lorsque vous utilisez CloudKit est qu’il n’est actuellement pas disponible sur des plates-formes autres que Apple. Cela signifie que si vous voulez créer une version Android de votre application, CloudKit ne fonctionnera pas.!
BaaS est une solution pratique et opportune au problème de l’ajout d’un back-end à vos applications mobiles. Cela aide également le développeur à gérer son propre temps limité de la meilleure façon possible. Il existe un nombre croissant de fournisseurs BaaS, et vous savez maintenant comment les utiliser.!