Développement d'applications mobiles multiplateformes. Développement multiplateforme : pour ou contre ? Faibles coûts d’exploitation

Maison / Ordinateurs portables

Il semblerait que nous ayons un développement multiplateforme, qui permet de créer des applications universelles pour différentes plateformes. J'ai écrit l'application plus rapidement, je l'ai immédiatement publiée partout - profitez-en ! Et aucun développement natif n’est nécessaire. Ou est-ce encore nécessaire ? À propos des nuances des deux approches de développement applications mobiles nous avons demandé à nos experts.

Le « développeur mobile » est un concept large. Développeur implémentant des parties du mobile système opérateur, est également un développeur mobile. Et si l’objectif est de devenir un tel développeur, vous devez alors commencer par apprendre le C++, un système d’exploitation et du matériel mobiles. appareils mobiles.

Si vous parlez d'un développeur implémentant des applications mobiles personnalisées, vous devez alors commencer par le développement natif.

Pourquoi est-ce ainsi ? Le développement natif vous permet d'étudier de manière plus approfondie et plus approfondie les capacités de systèmes d'exploitation spécifiques (et de leurs applications) et du matériel mobile.

Du point de vue de l’utilisateur, le développement natif gagne définitivement. Les applications natives fonctionnent plus rapidement, leur interface est plus réactive et plus familière aux utilisateurs d'un système d'exploitation mobile spécifique, elles utilisent mieux les capacités matérielles de l'appareil, fonctionnent mieux hors ligne et sont moins boguées.

L'idée originale du développement multiplateforme est de réduire les coûts de main-d'œuvre des développeurs. Cela peut être brièvement exprimé comme suit : « Fait une fois, ça marche sur n’importe quoi. » L'idée est bonne et correcte (du point de vue du développeur), mais il y a des problèmes de qualité. Toute polyvalence implique intrinsèquement un compromis, et le domaine du développement mobile ne fait pas exception.

Lors du choix du type de développement pour une tâche spécifique, le développeur doit évaluer dans quelle mesure ce compromis est acceptable. Il existe un certain nombre de tâches pour lesquelles le recours au développement multiplateforme sera tout à fait justifié, par exemple dans les projets de test, les versions mobiles de sites Web, les jeux utilisant des frameworks comme Unity 3D.

Dans le même temps, pour les projets qui résolvent les problèmes des entreprises mobiles (avec une charge élevée, la nécessité de prendre en charge le mode hors ligne, visant un développement à long terme), le développement natif semble être le seul optimal (et pour certaines tâches, le seul possible). ) option.

Dans le même temps, les principaux inconvénients du développement natif sont le temps de développement (il en faut plus) et le besoin de ressources diverses (développeurs dans différents langages de programmation natifs). Il existe des moyens d'atténuer ces inconvénients - par exemple, en utilisant pour le développement une sorte de plate-forme d'applications mobiles (classe MEAP), qui vous permet de créer des applications natives.

Promouvoir Rétrograder

, Directeur du Développement Technologique de la société informatique "ID - Management Technologies"

Toute bibliothèque ou framework multiplateforme est basé sur les mêmes mécanismes natifs sur lesquels le développement natif est directement implémenté. C'est juste que dans le cas des solutions multiplateformes, les processus de travail sont construits de manière à « aplanir les angles » en termes d'amener l'interface de la solution finale à un certain dénominateur commun.

En règle générale, l'universalisme n'est pas toujours la réponse à la tâche de création d'une solution mobile fonctionnelle : le développeur travaille d'autant mieux qu'il comprend mieux les mécanismes des différents processus de l'intérieur, comme on dit, « sous le capot ».

Aussi, assez modèle de travail Il y aura une maîtrise simultanée des éléments de base des deux approches ; il n'y a rien d'impossible dans un tel travail d'apprentissage au stade initial. Par exemple, un tel scénario peut s'avérer tout à fait réalisable et prometteur : commencer à travailler dans un paradigme multiplateforme, et en même temps, indépendamment ou avec l'aide de collègues, étudier quelles capacités natives existent pour développer les solutions actuelles et comment ils peuvent être appliqués dans la pratique.

Dans ce cas, il est plus facile de parvenir à une compréhension globale du fonctionnement principe du processus de développement mobile, appelé de bout en bout. Ceci est également utile car toute plate-forme universelle, même la plus avancée, est en retard par rapport à la plate-forme native dans ses capacités : les fabricants de matériel et de systèmes d'exploitation mobiles travaillent souvent ensemble et augmentent constamment les capacités des solutions finales - les capacités des plates-formes de développement mobile, en particulier cross -Les solutions de plate-forme sont inévitablement à la traîne.

De nouveaux produits dans le segment des appareils mobiles apparaissent constamment sur le marché, certains d'entre eux sont nettement en avance sur leur temps - comme Samsung et son développement d'un appareil avec un écran pliable : il est évident que, en raison d'un frontal radicalement différent , les plateformes de développement existantes ne sont pas prêtes pour de telles choses.

C'est là que la connaissance approfondie des plates-formes natives s'avère utile : seul un développeur possédant une connaissance approfondie et systémique du développement mobile, c'est-à-dire des plates-formes natives, peut compenser le retard naturel par rapport au matériel et au système d'exploitation. Seul un tel spécialiste pourra augmenter les fonctionnalités de sa solution pour les derniers appareils mobiles sur la base des plateformes de développement pas entièrement avancées actuellement disponibles.

Le développement multiplateforme est idéal pour le prototypage, test rapide idées, etc. Dès qu'il s'agit de créer des produits véritablement fondamentaux, le développeur en vient inévitablement à la nécessité d'une étude approfondie des éléments de base du processus, c'est-à-dire le développement natif.

Promouvoir Rétrograder

, Doyen de la Faculté de développement iOS GeekUniversity, portail éducatif GeekBrains

Réponse courte : si vous n’avez aucune expérience en programmation, vous devez bien sûr choisir le développement natif. Le développement multiplateforme convient aux spécialistes qui passent de domaines connexes au développement mobile. Par exemple, si vous êtes un développeur frontend avec une bonne connaissance de JavaScript utilisant le framework React Native (construit sur le framework React), vous pouvez essayer rapidement et sans douleur de maîtriser le développement mobile. De même, il sera plus facile pour un développeur .NET de maîtriser le framework Xamarin.

Le développement multiplateforme est également bénéfique pour le client : il est plus facile de trouver une équipe de développeurs qui, selon un modèle commun, développera une application pour deux plates-formes à la fois.

Les avantages sont évidents, mais quels sont les inconvénients du développement multiplateforme ?! On pense que plus la fonctionnalité d'une application mobile est complexe et subtile, plus il est difficile, voire impossible, de la mettre en œuvre à l'aide d'outils multiplateformes - cela l'emporte souvent sur tous les avantages des outils universels. D'après mon expérience, plusieurs grandes entreprises, avec la croissance de leur application, ont été contraintes d'abandonner le multiplateforme au profit du développement natif. Ainsi, pour les petits projets et, éventuellement, les tâches indépendantes, les solutions générales suffisent, mais pour les grands projets, les solutions natives sont mieux adaptées.

La demande pour les deux domaines est assez élevée, mais pour le développement natif, elle est un peu plus élevée : sur demande de Swift sur hh.ru en Russie - 369 postes vacants, Kotlin - 397, React Native - 111, Flutter - 13 Xamarin - 18. Mais rassurez-vous , un bon spécialiste de Il n'y aura plus d'emploi dans aucun secteur.

Promouvoir Rétrograder

Pour commencer, il est important de noter que toute application mobile se compose de plusieurs couches :

  • L'interface utilisateur est ce que l'utilisateur voit ;
  • la logique métier est la raison pour laquelle l'application est écrite ;
  • autres composants de la plate-forme : travail avec le réseau, les bases de données et d'autres composants du système utilisés par la logique métier.

En fonction de l'application spécifique, la taille des composants sur ces couches peut varier considérablement. Par exemple, une application permettant de lire des actualités sur un site Internet sera très différente d’un client VPN.

Le développement lui-même peut être divisé en trois types : natif, entièrement multiplateforme et hybride.

Développement natif

Dans le développement natif, les trois couches sont écrites à l’aide du même ensemble d’outils. Ils peuvent donc interagir les uns avec les autres sans complexité supplémentaire.

Avantages du développement natif :

Développement hybride

Ce type de développement combine les deux approches précédentes. La couche de logique métier est construite comme un composant « portable », et l'intégration de l'interface utilisateur et de la plate-forme est créée à l'aide d'outils standard. Il existe plusieurs langages pour écrire de la logique générale : C/C++ (solution mature et puissante), KotlinNative (très activement développé) et JavaScript (le moins courant).

Avantages :

  • les composants les plus adaptés pour cela restent natifs ;
  • la logique générale est créée une fois.

Défauts:

  • si un composant commun doit être créé par une équipe mobile, alors il est nécessaire d'acquérir une expertise dans une langue supplémentaire ;
  • il y a une surcharge pour l'intégration de composants multiplateformes.

Par quel type de développement est-il préférable de commencer ?

Afin de répondre à cette question, vous devez comprendre quel type de projets vous souhaitez créer. Les petits projets peuvent être purement multiplateformes et cela sera tout à fait justifié. Ici, je vous conseille de regarder de plus près Flutter.

Mais aujourd’hui, je commencerais par le développement natif. Premièrement, la plupart des projets actuels sont créés de manière native. Cela signifie que vous aurez plus de possibilités de changer de projet/entreprise. Deuxièmement, au fil du temps, il sera possible de passer à un développement hybride multiplateforme. Cela vous permettra de progresser dans les domaines techniques.

Promouvoir Rétrograder

Selon moi, il est préférable de commencer par du natif, puis, si vous le souhaitez vraiment, de maîtriser un ou plusieurs outils multiplateformes. La seule exception peut être le développement de jeux, car ils sont principalement écrits sous Unity, et il s'agit d'un moteur multiplateforme.

Si nous parlons des avantages du développement natif, cela signifie pour un programmeur moins d'obstacles et un plus grand nombre d'outils différents avec lesquels travailler. Il disposera également de plus de sources d'informations pour résoudre les problèmes complexes qui surviennent lors du processus de création d'une application - ce n'est un secret pour personne que pour le développement natif, il existe bien plus de trucs et astuces sur Internet que pour le développement multiplateforme.

Pour l'utilisateur final, le développement natif signifie que l'application aura des interfaces et des modèles de comportement familiers et prévisibles - à condition que l'application soit écrite conformément à tous les guides.

Une application multiplateforme peut ne pas toujours être en mesure de respecter pleinement les directives des deux plateformes, ce qui peut créer des difficultés supplémentaires pour le développeur et l'utilisateur. L'exemple le plus simple- la situation du bouton « Retour » : sous Android il est présent sur presque tous les écrans, alors que sous iOS il ne l'est pas. Si vous créez une application multiplateforme sans ce bouton, certains utilisateurs d'Android peuvent ressentir un inconfort.

Il convient également de mentionner les différences dans les coûts de développement. Si le projet n'est pas complexe, choisir le développement multiplateforme vous permet d'économiser votre budget, puisqu'en fait vous ne développez pas des produits séparés pour différentes plateformes, mais un pour toutes. Mais si le projet se développe, la balance commence à pencher dans l’autre sens et le développement natif peut s’avérer plus rentable.

En ce qui concerne la vitesse d'application, les produits multiplateformes sont plus lents. Par exemple, ceux basés sur les technologies web ont comme couche un navigateur, ce qui ralentit considérablement l’application.

Promouvoir Rétrograder

Le choix d'une approche multiplateforme ou native dépend en réalité de deux facteurs : la nature du développement mobile que vous souhaitez réaliser personnellement, ou la demande des employeurs avec lesquels vous souhaitez collaborer. Ainsi, par exemple, si vous regardez Upwork (une plateforme de recherche de spécialistes à distance pour des projets et des tâches), vous remarquerez une nette prépondérance d'offres en direction de Xamarin et React Native. Les avantages ici sont évidents : c'est bon marché, rapide et vous permettra de mettre en œuvre des projets sur toutes les plateformes à la fois. Cependant, si l'on considère les grandes entreprises informatiques qui recherchent des employés en interne, l'accent est mis sur le développement natif, malgré le fait que ce type nécessite plus de temps et coûte plus cher.

Dans notre entreprise, nous donnons la priorité et choisissons le développement natif car il permet aux concepteurs et aux développeurs de créer une UX/UI plus fluide et plus intuitive. De plus, le développement natif offre un contrôle plus flexible sur les fonctions du système.

Promouvoir Rétrograder

Si vous souhaitez devenir développeur mobile, la réponse est évidente : vous devez choisir l'un des environnements de développement natifs et vous appuyer sur Objective-C/Swift pour iOS ou Java/Kotlin pour Android. Dans ce cas, toutes les capacités du système sont à votre service ; vous pouvez contrôler presque toutes les nuances.

Si vous souhaitez simplement écrire un programme qui fonctionnera également sur les téléphones, vous n'avez pas besoin de trop réfléchir et de choisir ce qui vous passionne le plus ou dans lequel vous avez une expérience notable : C++, React Native, Xamarin ou cinq cent mille frameworks JS pour le développement multiplateforme. Ou même continuez à créer vos propres sites Web [responsive].

J'avoue que je suis assez sceptique quant à l'idée même du développement multiplateforme sur des plateformes aussi différentes (et divergentes) qu'Android et iOS. Aucun des fournisseurs n’apprécie les « mauvais » développeurs qui tentent de s’asseoir sur deux chaises en même temps. Tout le monde essaie de lier les programmeurs à des outils et à des environnements, et aucune tendance à la convergence ne peut être attendue dans un avenir proche. Que puis-je dire, Apple dans cette course a même abandonné OpenGL, la plus multiplateforme de toutes les bibliothèques après Curl, mais ils ont maintenant leur propre Metal, qui semble faire la même chose, mais en mieux et dans un langage différent.

D’un autre côté, le développement mobile implique très souvent la création de deux applications d’apparence identique pour un service réseau donné. Les clients ne sont pas toujours prêts à payer pour deux produits qui semblent totalement indiscernables, c'est pourquoi la demande de technologies de développement multiplateforme existe et, certes, est assez élevée. Les programmeurs ne sont pas non plus opposés à économiser de l'argent, surtout s'ils souhaitent vendre une application mobile et n'ont aucune envie d'apprendre Swift/Kotlin, mais JS/C# est déjà à leur portée.

Bien entendu, le développement multiplateforme apporte de nombreuses nuances non évidentes. Toutes les solutions universelles sont contraintes de construire des châteaux dans le sable : soit en s’appuyant sur des solutions technologiques complexes et fragiles (comme Xamarin), soit sur des moteurs JavaScript mobiles, comme React Native. Dans le même temps, les fournisseurs de plates-formes ne pensent même pas à prendre en charge aucune des solutions, et chaque mise à jour du SDK natif est un gros casse-tête pour tout framework multiplateforme. Sans parler de fonctionnalités spécifiques au système telles que l'accès à l'appareil photo, au trousseau ou même à une banale galerie de photos, que chacun essaie de contourner avec plus ou moins de succès. Les développeurs qui choisissent la voie universelle se retrouvent otages de leur framework, et souvent un développement qui promettait des économies significatives se transforme en une lutte avec un râteau.

Il est également courant que les solutions multiplateformes sacrifient ce que l'on appelle l'expérience utilisateur (UX) : de nombreux frameworks tentent d'utiliser des contrôles aussi généraux que possible pour les deux systèmes, et cette solution est presque toujours aussi gênante pour tout le monde. Ou ralentit. Ou bien cela se démarque du style général. Ou alors ça vide la batterie. Continuez la liste vous-même.

Se distinguent les applications multiplateformes dont les noyaux sont écrits à un niveau bas, le plus commun possible pour tous les systèmes d'exploitation : dans des langages comme C/C++. Dans ce cas, il est d'usage de généraliser l'utilisation de code au service de la logique métier, et l'interface est écrite séparément pour chaque plateforme. Idéalement, la duplication d’une partie critique de l’application serait évitée, tout en conservant une expérience utilisateur spécifique à la plateforme. Cependant, dans la vraie vie, tout est plus compliqué. Par exemple, Dropbox a essayé de vivre avec un noyau de bas niveau pendant plusieurs années consécutives, mais a finalement abandonné pour de nombreuses raisons et se contente désormais des applications de plate-forme natives. Je renvoie les personnes intéressées à leur article intéressant sur ce sujet.

À mon avis, les économies réalisées sur les frameworks multiplateformes sont toujours illusoires. Probablement, dans certains projets triviaux, où l'application n'est qu'une version du site principal, super optimisée pour les mobiles, l'approche généralisée fonctionne. Dans d'autres cas, vous risquez de répéter le sort de Dropbox. Mon conseil est que si vous souhaitez devenir développeur mobile, faites des efforts pour apprendre la plateforme. Ils seront toujours payants, même si vous devez participer à un projet multiplateforme.

Promouvoir Rétrograder

, développeur de logiciels senior chez Accenture Tver Technology Center

Le marché des applications mobiles se développe activement et la gamme de technologies permettant leur développement s'élargit en conséquence. Il existe de nombreux outils que vous pouvez utiliser.

Pour le développement natif sur Plateforme Android Il existe Java ou un wrapper sur la JVM - Kotlin. Pour iOS, vous pouvez utiliser Objective-C ou son wrapper - Swift. Ce sont tous des langages POO qui ont beaucoup hérité de Smalltalk et de C.

Pour le développement multiplateforme, ils utilisent actuellement Flutter de Google, pour lequel vous devrez connaître Dart. Ou React Native depuis Facebook.

Pour un développeur mobile novice, le facteur déterminant sera très probablement son expérience passée et sa connaissance des langues. Si sa boîte à outils est basée sur Java, il pourra explorer le monde du développement mobile beaucoup plus rapidement via la plateforme Android, en utilisant le même Java ou Kotlin.

Dans le même temps, le développement d'Objective-C pour iOS a beaucoup emprunté à Smalltalk, comme Java, donc si vous le souhaitez, vous pouvez faire un choix en faveur d'iOS. Mais il convient de considérer que le développement pour Android peut avoir lieu sous Windows ou Linux, mais iOS nécessite MacOS X. Mais pour un développeur JavaScript connaissant React, React Native est évidemment le moyen le plus rapide. Tout comme pour les développeurs Dart, le choix se portera en faveur de Flutter.

Une fois qu'un développeur novice aura une idée de ce qu'est le développement mobile et des avantages et des inconvénients de la voie choisie, il décidera lui-même s'il doit travailler avec une seule approche ou résoudre les problèmes en utilisant des solutions multiplateformes.

Cette approche a ses avantages : la méthode multiplateforme permet de sortir un projet dans un environnement productif un peu plus rapidement, en utilisant moins de ressources. De plus, il est plus facile à entretenir. Mais cela présente également des inconvénients évidents tant pour le développeur que pour l’utilisateur. Par exemple, un développeur n'a pas besoin de connaître les technologies natives, mais les directives de la plateforme doivent être prises en compte, car une application écrite selon les directives iOS entraînera des difficultés pour Utilisateurs Android et vice versa.

Les applications multiplateformes ne peuvent pas atteindre le même niveau d’intégration des appareils que les applications natives. Autrement dit, si l'application consiste à interagir avec un appareil, par exemple avec un appareil photo, un calendrier ou à utiliser la puissance de calcul de l'appareil, il est alors plus facile d'y parvenir en utilisant une approche native, et ce sera plus rapide et plus efficace. productif.

Lors du développement d'une application multiplateforme, les spécialistes prennent en compte les capacités du framework, qui impose des restrictions. Il convient également de considérer que pour développer un produit utilisant des technologies natives, des spécialistes sont nécessaires pour chaque plateforme.

Si vous travaillez en tant qu'indépendant ou si vous avez pour objectif de couvrir un maximum d'appareils avec un minimum de ressources, concentrez-vous sur le développement multiplateforme si vous vous concentrez sur des solutions mobiles ou si vous travaillez en tant que développeur front-end.

Quels sont les principaux avantages et inconvénients du développement mobile natif et multiplateforme ? Le développement natif lui-même est coûteux car l'entreprise doit investir dans deux équipes : iOS et Android. Pour applications simples, la vitesse de développement sur Flutter / React Native est plus élevée.

Mais le plus est que l'infrastructure est déjà constituée et est compréhensible. Vous avez accès à toutes les ressources de l'appareil et pouvez développer sous montre intelligente, voitures et plus encore.

Le développement multiplateforme est également une bonne chose. Mais il n'est pas encore très développé sur le marché du travail informatique en Russie. Vous pouvez compter les spécialistes intelligents sur vos doigts. L'infrastructure-cadre est jeune, mais la situation évolue progressivement pour le mieux. Ce développement permet d'écrire pour plusieurs appareils à la fois. Même si vous écrivez dans Flutter, par exemple, il s'intègre facilement au code natif.

Promouvoir Rétrograder

Le développement multiplateforme vise des résultats rapides et des économies budgétaires significatives - nous écrivons un code pour tous les appareils. Son champ d'application est soit une solution à usage interne, où la convivialité du produit n'est pas si importante et où la fonctionnalité joue un rôle dominant, soit la création d'un projet « pilote » rapide, lorsque le client a besoin de montrer le principe ou idée de l'application. De plus, s'il n'y a pas de compréhension précise de l'appareil avec lequel le système d'exploitation sera visualisé votre prototype, le développement multiplateforme est la solution. Cependant, vous devez comprendre à l'avance que tous les appareils ont des architectures différentes, il est donc physiquement presque impossible d'exécuter une application de haute qualité en utilisant uniquement du code multiplateforme. Les scénarios complexes nécessiteront l’écriture de code natif. De plus, de par sa nature spécifique, le développement multiplateforme entraîne des coûts qui ne permettent pas à l’application d’être la plus efficace possible. Cela est compréhensible, dans dans ce cas le code multiplateforme intermédiaire doit être traduit pour chaque plateforme, ce qui rend l'application plus « lourde » du fait qu'en plus du code fonctionnel elle contient son environnement d'exécution.

Donnez-moi un autre avis

Tout est clair, montrez vos conclusions

Alors, quelle approche de développement adopter ?

Tout dépend de la tâche. Si vous devez écrire un prototype d'application pour plusieurs plates-formes ou version mobile site, vous pouvez alors vous tourner vers des frameworks multiplateformes. Avec leur aide, vous écrirez probablement une application plus rapidement qu'avec un développement natif, surtout si vous travaillez sur un framework similaire à votre outil habituel, tel que React Native.

D'un autre côté, la polyvalence des applications multiplateformes doit être compensée par quelque chose. Quelque part un élément d'interface « non natif » apparaît, quelque part l'interaction avec le système est pire, quelque part la vitesse de travail s'affaisse, etc. Malgré le fait que le développement natif nécessite plus de ressources, de nombreuses entreprises le préfèrent car le résultat est plus produit stable et d’aspect natif.

À cet égard, si vous débutez développement mobile, alors il serait préférable de faire d'abord du développement natif. Vous pouvez trouver plus d’informations à ce sujet sur Internet, vous obtiendrez une compréhension plus approfondie des capacités de la plateforme et vous ne serez pas gêné par certaines nuances du développement multiplateforme. De plus, si vous décidez de vous lancer dans le développement multiplateforme à l'avenir, les connaissances acquises ne vous feront certainement pas de mal.

Nous vous rappelons que vous pouvez poser votre question aux experts, et nous rassemblerons les réponses si elle s'avère intéressante. Les questions déjà posées se trouvent dans la liste des problèmes. Si vous souhaitez rejoindre les rangs des experts et envoyer une réponse de votre entreprise ou de vous-même, alors écrivez à, nous vous expliquerons comment procéder.

Le développement multiplateforme vous permet de créer une application mobile qui fonctionnera simultanément sous iOS et Android. Il s'agit d'une alternative peu coûteuse à la création d'une application pour chaque système d'exploitation séparément.

Caractéristiques du développement multiplateforme

Développer une application pour différentes plates-formes est à la fois une bonne et une mauvaise chose. Bien, car cela peut être fait plus rapidement et à moindre coût que plusieurs applications pour chaque système d'exploitation. Et c'est mauvais, car le compromis affecte le fonctionnement de l'application.

Ces caractéristiques doivent être prises en compte avant de démarrer le projet :

  • Dans un environnement multiplateforme, le code est écrit une seule fois. Pour faire fonctionner l'application sur un autre système d'exploitation, le code est traduit dans un autre langage de programmation. Le temps et l’argent consacrés au développement sont 1,5 fois inférieurs.
  • Les applications peuvent ne pas fonctionner correctement. Dans le développement multiplateforme, il est impossible de prendre en compte toutes les nuances du travail avec l'architecture de chaque système d'exploitation, de sorte que les applications peuvent s'exécuter plus lentement que celles développées spécifiquement pour iOS ou Android.
  • Les exigences d’interface et de conception des éléments varient selon les systèmes d’exploitation.. Par exemple, iOS n’a pas de bouton Retour comme Android. Lors du développement d'un design unifié, ce point doit être pris en compte : sous iOS, le bouton soit restera, mais ne fonctionnera pas, soit il devra être découpé manuellement, ce qui implique un travail supplémentaire avec le code.

La plupart des erreurs lors de la migration d'une plateforme à une autre peuvent être résolues manuellement, mais il est impossible de résoudre complètement les problèmes d'adaptation à un système d'exploitation « non natif ».

Le développement multiplateforme est donc mauvais ?

Non, le développement multiplateforme est acceptable tant que vous n'en exigez pas plus que ce qu'il peut donner.

Cette option peut être sélectionnée dans les cas suivants :

  • Couvrez tous les systèmes d’exploitation avec un budget limité. Si le public cible utilise activement iOS ou Android, vous pouvez commencer avec une application native pour un système d'exploitation. Si une couverture maximale est importante d’emblée, il est préférable de choisir une option multiplateforme.
  • Vérifier le créneau. S'il existe une idée prometteuse, mais que vous n'êtes pas sûr qu'elle fonctionnera, il est risqué d'investir immédiatement un budget important dans le développement. Il est logique de commencer par le développement multiplateforme, d'étudier les réactions des utilisateurs et de prendre des décisions stratégiques sur cette base.
  • L'application n'utilise pas d'animations complexes et n'effectue pas de calculs. Ces opérations chargent sérieusement l'appareil et l'application multiplateforme n'est pas optimisée pour une utilisation complète des ressources d'une plateforme particulière.
  • L'application utilise uniquement les fonctions de base de l'appareil. Afficher des informations, télécharger des fichiers, utiliser la géolocalisation, passer une commande - l'application multiplateforme peut gérer tout cela. Une intégration plus profonde des capacités de l'appareil est requise - vous devrez choisir le développement natif.
  • Application d'entreprise pour les employés. Si l'application est développée pour des tâches internes restreintes et que les utilisateurs travailleront avec elle via des gadgets personnels, une application multiplateforme sera la meilleure option.

Il n’existe pas de réponse universelle à la question de savoir si des solutions multiplateformes peuvent être utilisées pour votre projet. Remplissez le formulaire ci-dessous : nous étudierons votre projet et sélectionnerons la meilleure option pour sa mise en œuvre.

Applications multiplateformes – être ou ne pas être ? La question n’est pas facile, puisque chaque entreprise a ses propres objectifs et exigences en matière d’applications mobiles. Mais aujourd'hui, nous déterminerons certainement quel développement vous convient le mieux.

Que sont les applications multiplateformes ?

Les applications multiplateformes sont des applications développées puis exécutées sur Android et iOS. L'essence du développement est que code source L'application est traduite en natif, c'est-à-dire compréhensible par un appareil mobile spécifique. En conséquence, le programme peut interagir avec le système d'exploitation qui y est installé.

Rappelons-le : les applications natives, contrairement aux applications multiplateformes, sont écrites pour un OS spécifique.

Avantages du développement multiplateforme

  • extension base d'utilisateurs en raison de l’apparition de l’application dans plusieurs magasins simultanément ;
  • Le code source unique élimine le besoin d'embaucher plusieurs développeurs pour chaque plate-forme ;
  • 75 % de la base de code d'une application multiplateforme peut être réutilisée, en l'adaptant à de nouveaux projets.

Inconvénients du développement multiplateforme

1. Forte dépendance à un appareil mobile

Les applications multiplateformes ne fonctionnent généralement pas hors ligne. Par conséquent, leurs capacités dépendent fortement de la présence d’une connexion Internet stable par l’utilisateur. La version du système d'exploitation et le modèle de l'appareil sont également importants. Il est presque garanti qu’une application multiplateforme réduira les performances d’un appareil vieux de plus d’un ou deux ans. Alors qu'une application native fonctionnera de manière stable même sur un ancien gadget doté d'un firmware obsolète. Donc, si vous ne voulez pas que vos clients lisent des critiques mécontentes sur la façon dont votre application a finalement « terminé » le smartphone de quelqu'un, choisissez le développement natif.

2. Interface utilisateur peu conviviale

Les utilisateurs s'y habituent tellement apparence et la fonctionnalité de leurs gadgets, qu'ils attendent une réactivité maximale de la part des applications installées sur eux. Ils veulent être sûrs que chaque bouton sera à sa juste place, que la page défilera à la vitesse optimale pour eux et que toute action qu'ils entreprendront sera suivie d'une réponse immédiate. Les applications multiplateformes ont généralement du mal à s'adapter à l'appareil et ne peuvent pas se vanter de performances.

Le problème est qu'il n'existe pas de lignes directrices pour le développement multiplateforme - des normes de développement émanant des créateurs du système d'exploitation. Par conséquent, une application multiplateforme conçue « pour Android » ne conviendra pas à un utilisateur iOS, et vice versa. Vous pouvez bien sûr créer des conceptions distinctes pour chaque plate-forme, mais en termes de coûts de main-d'œuvre, cela équivaudra à créer deux applications différentes, bien que dans le même langage.

3. La lutte pour la primauté des outils de développement

Sur le marché des solutions de développement multiplateformes, la concurrence devient chaque jour plus rude. Jusqu'à présent, React Native et Xamarin sont les plus populaires parmi les développeurs, mais ils pourraient bien être surpassés, par exemple, par Vue Native. Dans ce cas, les anciens leaders de la course perdront leur avantage le plus important : soutien opérationnel code. Et cela peut arriver avec n’importe quel outil multiplateforme.

Le développement autochtone n’a pas peur d’un tel problème. L'introduction de nouveaux outils se fait progressivement, et la connaissance de plusieurs langages de programmation, obligatoire pour un spécialiste, lui permettra d'appréhender rapidement toutes les innovations. De plus, il existe d'énormes communautés professionnelles autour de chaque système d'exploitation, de sorte que toute difficulté qui survient est résolue en recherchant un problème similaire sur des forums, où des milliers de personnes sont prêtes à suggérer et à aider à le résoudre.

Quelle application convient à votre entreprise ?

Avant de répondre à cette question, il est essentiel d’analyser votre entreprise. Segments de consommation, la valeur des ressources en temps et en argent, la profondeur souhaitée d'intégration de l'application avec les appareils des utilisateurs, ainsi que des objectifs à long terme clairement définis - le minimum dont dépendra votre choix. Mais nous vous faciliterons la tâche si vous répondez dès maintenant aux questions pertinentes.

1. Qu’est-ce que votre public utilise ?

Si vous savez que le ratio d’utilisateurs iOS et Android parmi vos clients est proche de 50/50, choisissez le développement natif. Cela montrera que vous respectez également les besoins de tous vos clients, quel que soit leur niveau de revenu.

Le lien entre le choix d'un appareil mobile et le niveau de solvabilité a été une nouvelle fois confirmé par App Annie. Suite à une étude du nombre de téléchargements et de ventes d'applications mobiles en Google Play Et Magasin d'applications au premier trimestre 2018, il s'est avéré que les utilisateurs de smartphones Android téléchargeaient 135 % d'applications en plus que les visiteurs des magasins iOS. Dans le même temps, l'App Store rapportait à ses propriétaires 85 % de revenus supplémentaires que Google Play.

La voie du succès est évidente : jouer sur deux terrains à la fois. Plus précisément, dans deux magasins. Calculez simplement dans lequel d'entre eux l'application doit apparaître en premier. Bien sûr, sauf si une sortie simultanée fait partie de votre stratégie digitale).

2. De combien de temps de développement disposez-vous ?

Les coûts financiers du projet dépendent de la réponse à cette question. Le fait est que du point de vue du temps consacré au développement, une application multiplateforme semble seulement être une solution plus rentable. En fait, l’adapter aux plates-formes peut prendre presque autant de temps que la création de deux applications natives, puisque les développeurs devront écrire des morceaux de code supplémentaires pour résoudre les problèmes.

Avec une application native, il n'y aura certainement pas de tels problèmes, ce qui est très important pour fidéliser un public extrêmement intolérant aux erreurs et aux bugs. Selon les statistiques de Compuware, 79 % des utilisateurs sont prêts à redémarrer une application si celle-ci n'a pas fonctionné correctement lors du premier lancement, mais seulement 16 % acceptent de lui donner une autre chance. D'autres désinstalleront probablement simplement le programme.

3. Quelles fonctionnalités de l’appareil comptez-vous utiliser ?

Nous avons déjà évoqué le fait que seules les applications natives sont capables de reproduire rapidement et sans perte de qualité des graphiques lourds. Mais les avantages techniques du développement natif ne se limitent pas à cela. Prenons l'exemple de l'application Facebook. Grâce à la sortie de versions distinctes pour Android et iOS, le défilement est devenu plus fluide, les temps de chargement des images ont été réduits et tous les problèmes de cache ont été résolus.


De plus, les applications natives ont un accès direct à tous les services de l'appareil, vous permettant d'obtenir des informations sur la géolocalisation de l'utilisateur ou sur sa liste de contacts. Les applications multiplateformes doivent utiliser des plugins natifs spéciaux, ce qui affecte négativement la vitesse de transfert des données et les surcharges. BÉLIER appareils.

4. Quels résultats recherchez-vous ?

Une stratégie numérique est une liste d’objectifs que votre entreprise peut atteindre grâce aux outils numériques. Le choix de ce dernier dépend en grande partie des avantages que vous souhaitez obtenir au final.


Décomposez le processus de l’idée au résultat point par point en tenant compte de toutes les ressources disponibles. Les découvertes peuvent être les plus inattendues.

Par exemple, vous constaterez peut-être qu'il est trop coûteux de transformer votre site Web réactif, qui regorge de fonctionnalités et d'éléments interactifs, en une application multiplateforme comme vous le souhaitiez à l'origine. Ou enfin, assurez-vous qu'un site mobile perd toujours face à une application mobile, tout comme le développement multiplateforme perd face au développement natif. Et parmi les raisons, vous retrouverez celles que nous avons décrites ci-dessus.

Conclusion : une application multiplateforme n'est bénéfique que dans un cas : vous créez une version de démonstration de l'application, limitée en temps, en argent et en spécialistes hautement spécialisés. Dans tous les autres cas, une application native vous apportera bien plus d'avantages, puisqu'il s'agit d'un niveau de développement qualitativement différent.

Les applications mobiles sont devenues un compagnon invariable de nos vies. Avec leur aide, nous pouvons non seulement nous amuser et simplifier notre vie, effectuer des achats ou commander certains services en ligne, mais aussi promouvoir notre entreprise, augmenter notre clientèle et, par conséquent, augmenter nos profits. Et si personne ne peut douter de la nécessité de créer une application pour son entreprise, certaines difficultés peuvent survenir lors du choix du type d'application mobile.

Toutes les applications modernes pour appareils mobiles peuvent être divisées en natives et multiplateformes, et chacun de ces deux groupes a le sien points forts, et ses défauts.

Les applications natives sont celles développées spécifiquement pour une plateforme spécifique dans le langage de programmation approprié. Ainsi, lors de la création d'une application pour Android, Java est utilisé, et pour les applications iOS, Objective-c ou Swift. Lors de la création de tels projets, les spécialistes prennent en compte toutes les fonctionnalités des plates-formes, en accordant une attention particulière à la conception UI/UX, aux exigences/recommandations des développeurs de systèmes d'exploitation, ainsi qu'aux dernières tendances de l'industrie mobile. Un spécialiste ne sera pas en mesure de maîtriser pleinement tous les langages ci-dessus. Par conséquent, pour développer un produit natif pour différentes plates-formes, il est nécessaire de se connecter différents développeurs, et ce sont des coûts supplémentaires, et le temps de développement sera impressionnant. Mais en même temps, les applications seront « adaptées » à une plate-forme spécifique, auront accès aux ressources et fonctions internes de l'appareil et fonctionneront aussi efficacement que possible.

Malgré la liste considérable des avantages des développements natifs, les clients ne veulent pas toujours consacrer du temps et de l'argent à leur développement, impliquant plusieurs spécialistes dans le processus de création. La meilleure option dans de tels cas, le développement multiplateforme est utilisé, ce qui vous permet de créer des applications pour n'importe quelle plate-forme à l'aide des technologies Web standard. Dans ce cas, le développement peut être effectué par une seule personne possédant les connaissances et l'expérience nécessaires pour travailler avec HTML5, JavaScript et CSS3. Les développements multiplateformes peuvent être compilés dans un fichier .apk pour Android et un fichier .ipa pour IOS. Ainsi, sur la base d'un seul développement, vous pouvez obtenir deux applications pour les systèmes d'exploitation populaires, en y consacrant moins de temps et d'argent. Cependant, de tels développements ont aussi leurs inconvénients, il est donc fortement conseillé d'aborder chaque cas spécifique individuellement et de choisir l'option la plus appropriée - développement natif ou multiplateforme.

Parties client et serveur de l'application

Les applications les plus sérieuses ont leur propre partie client, souvent appelée frontend, et une partie serveur - backend. Le frontend est responsable de ce que vous voyez sur l'écran de votre appareil mobile, c'est-à-dire toute la présentation visuelle de l'application, y compris la conception, la taille et l'emplacement des fenêtres, des menus, des boutons, des flèches et de tout autre élément. Le frontend est également responsable de la réponse de l’application à certaines actions de l’utilisateur visant à passer à différentes sections de l’application, à appeler de nouveaux menus, etc.

Le backend est la partie serveur de l'application et est situé sur un serveur distant, qui peut être situé n'importe où et contrôlé à l'aide d'une grande variété de logiciel. La relation entre les parties client et serveur s'effectue grâce à l'API (Application Programming Interface). En d’autres termes, l’API est une sorte d’intermédiaire entre le frontend et le backend, qui transmet les requêtes du côté client au serveur, renvoyant les données dont l’utilisateur a besoin.

Développement front-end

La partie client de l'application est extrêmement importante, car c'est avec elle que l'utilisateur lui-même s'occupera et sa compréhension générale du fonctionnement de l'application dépendra de la commodité du frontend. Il peut être développé soit manuellement, mais pour cela, vous devez avoir une bonne compréhension de HTML5, CSS3 et java-script, soit en utilisant ce qu'on appelle des frameworks. Dans le premier cas, l'environnement de développement Apache Cordova, également connu sous le nom de PhoneGap, est souvent utilisé. Grâce à cet environnement, vous pouvez créer des applications pour n'importe quelle plate-forme à l'aide de technologies Web, que Cordova convertit en code compréhensible pour une plate-forme spécifique. Cordova ouvre des possibilités pratiquement illimitées aux développeurs Web qui n'ont pas nécessairement besoin d'apprendre Objective-C ou Swift, Java ou Kotlin pour créer des applications pour des systèmes d'exploitation spécifiques.

Bien que Cordova n'ait aucune limitation en termes d'interface utilisateur et de logique, les frameworks proposent des solutions de modèles prêtes à l'emploi. D'une part, cela accélère et simplifie considérablement le processus de développement, puisqu'un spécialiste peut utiliser des boutons, des listes, des champs de saisie, des cartes et d'autres éléments d'interface utilisateur prêts à l'emploi. D'autre part, un spécialiste ne peut utiliser pour le développement que les outils et éléments disponibles dans le framework sélectionné. Le plus populaire d'entre eux est Ionic, qui vous permet de créer des applications multiplateformes pour tous les goûts. Ce framework dispose d'une large collection intégrée d'éléments standards qui imitent visuellement les applications natives, mais leur conception peut être modifiée si nécessaire. Dans le même temps, le développeur peut connecter de nombreux plugins supplémentaires qui étendent les capacités du framework ionique, et le projet créé sur ce framework peut être lancé directement dans la fenêtre du navigateur et évaluer à quoi ressemblera et fonctionnera l'application créée sans avoir besoin de le faire. utilisez un émulateur ou installez-le sur un smartphone.

Développement back-end

Alors que le côté client est géré par des concepteurs et des développeurs connaissant HTML, CSS, JS et frameworks, le backend est géré par des programmeurs d'un profil différent. Peut être utilisé pour configurer des serveurs différentes langues programmation et outils, l'essentiel est de bien configurer leur fonctionnement et leur relation avec la partie client. Ici, il est nécessaire d’utiliser des systèmes de gestion de bases de données adaptés. Il peut s'agir de MySQL traditionnel, Redis, PostgreSQL ou de toute autre base de données (par exemple, MongoDB) adaptée à la mise en œuvre d'un projet spécifique et dans laquelle le développeur backend connaît bien. Pour créer le côté serveur de l'application, les développeurs peuvent utiliser PHP, NodeJS, C#, Ruby, Python, Java et d'autres langages de programmation.

Les spécialistes du studio mobile KitApp abordent le développement des parties frontend et backend de manière globale et aussi responsable que possible. Nos développeurs créeront pour vous une application multiplateforme de toute complexité et se concentreront aussi rapidement et efficacement que possible ! Contactez-nous et nos spécialistes vous conseilleront rapidement sur toutes vos questions !

Le marché des applications mobiles existe depuis plus de dix ans, mais il continue de se développer rapidement. La demande des entreprises est en constante augmentation et elle dépasse encore largement l'offre, ce qui entraîne une augmentation constante du coût de développement. Une solution pour réduire le coût de ce processus est le développement multiplateforme, lorsque le même code est utilisé sur toutes les plateformes.

La dernière fois, nous avons abordé le développement d'applications mobiles multiplateformes et beaucoup de choses ont changé depuis. Il est temps de reparler de méthodes et d’outils.

Reprenons d’abord la terminologie.

Parents

Si les développeurs, en train d'écrire une application, utilisent le langage de programmation adopté pour une plate-forme spécifique, qu'il s'agisse d'Objective-C et de Swift pour iOS ou, une telle application sera appelée native (de l'anglais native - native, natural).

Avantages des applications natives :

  • vitesse et réponse de l'interface. L'application répond instantanément aux clics, il n'y a pratiquement aucun retard dans l'animation, le défilement, la réception et la sortie des données ;
  • accès clair et facile aux fonctions et aux capteurs de l'appareil. Pour le développeur, travailler avec la géolocalisation, les notifications push, prendre des photos et des vidéos via l'appareil photo, le son, l'accéléromètre et d'autres capteurs n'est pas un problème ;
  • la capacité de travailler en profondeur avec les fonctions du smartphone. Comme dans le paragraphe précédent, des éléments tels que les animations, la création d'interfaces complexes et le fonctionnement de réseaux neuronaux directement sur les appareils sont mis en œuvre, peut-être pas simplement, mais de manière prévisible ;
  • . Les applications natives fonctionnent généralement avec des éléments d'interface « plateforme » : les menus, la navigation, les formulaires et tous les autres éléments de conception sont extraits du système d'exploitation et sont donc familiers et compréhensibles pour l'utilisateur.

Il n'y a qu'un seul inconvénient : le coût élevé de développement et de support, notamment parce que vous devez écrire votre propre code pour chaque plate-forme.

Avec la croissance du marché des applications mobiles, les développeurs sont devenus non seulement coûteux, mais très coûteux, et le développement natif n'est pas quelque chose que tous les propriétaires d'entreprise peuvent se permettre. Mais ne pas développer d’application mobile pourrait vous coûter plus cher à l’avenir. Live Typing peut vous aider à économiser de l'argent - décrivez votre idée et indiquez le budget approximatif que vous souhaitez respecter, au format .

Et pas des proches

Les applications multiplateformes sont écrites pour plusieurs plates-formes à la fois dans un langage autre que le langage natif. Comment un tel code peut-il fonctionner sur différents appareils? Il existe également deux approches ici.

La première est qu'au stade de la préparation de la candidature à la publication, celle-ci est convertie en natif pour une plateforme spécifique à l'aide d'un transpileur. En fait, un langage de programmation multiplateforme est « traduit » en un autre.

La seconde est qu'un certain wrapper est ajouté au code résultant, qui, fonctionnant déjà sur l'appareil, traduit à la volée les appels du code non natif en fonctions système natives.

On suppose que la majeure partie de ce code peut être transférée entre les plates-formes - il est évident que, par exemple, la logique consistant à effectuer des achats, à enregistrer des marchandises dans le panier, à calculer un itinéraire pour un taxi, à écrire un message dans le messager ne change pas. selon que le client dispose d'Android ou d'iOS. Nous avons juste besoin d'affiner l'UI et l'UX pour les plates-formes, mais désormais, dans certaines limites, même cela peut être combiné - par exemple, le menu hamburger est activement utilisé sur Android et iOS. Ainsi même apporter des corrections à l'interface pour que l'application réponde à l'esprit et à la lettre de la plateforme souhaitée est une question d'envie, de rapidité et de qualité de développement requises.

Avantages :

  • coût et rapidité de développement. Comme il faut écrire beaucoup moins de code, le coût du travail est réduit ;
  • la capacité d'utiliser les ressources internes de l'entreprise. Comme nous le montrerons plus tard, le développement d'applications multiplateformes peut souvent être réalisé par vos programmeurs existants.

Défauts:

  • interface non native ou, au minimum, la nécessité de travailler avec l'interface de chaque plateforme séparément. Chaque système a ses propres exigences pour la conception des éléments et parfois elles s'excluent mutuellement. Ceci doit être pris en compte lors du développement ;
  • des problèmes dans la mise en œuvre de fonctions complexes ou problèmes possibles travailler même avec des procédures simples en raison d'erreurs dans les cadres de développement eux-mêmes. L'environnement multiplateforme traduit uniquement les requêtes vers les appels système et les interfaces dans un format que le système comprend, et donc à ce stade, des difficultés de compréhension et des erreurs peuvent survenir dans le cadre lui-même ;
  • rapidité de travail. Étant donné que l'environnement multiplateforme est une « superstructure » sur le code (pas toujours, mais dans certaines situations), il a ses propres retards et pauses dans le traitement des actions de l'utilisateur et l'affichage des résultats. Cela était particulièrement visible il y a quelques années sur les smartphones dont la puissance était inférieure à celle d'aujourd'hui, mais maintenant, avec l'augmentation des performances des appareils mobiles, cela peut déjà être négligé.

Comme vous pouvez le constater, ces deux méthodes sont pratiquement image miroir- que le développement d'applications natives présente des avantages, le développement d'applications multiplateformes présente des inconvénients, et vice versa.

Plateformes et outils populaires pour le développement mobile multiplateforme

Comme nous l'avons écrit ci-dessus, il existe deux approches : transformer le code en natif au stade de l'assemblage ou ajouter un certain wrapper qui traduit les appels vers et depuis le système.

Cordova et PWA sont deux outils qui fonctionnent précisément dans l'idéologie d'un wrapper.


Cordoue et HTML5

L'un des domaines les plus populaires de la programmation multiplateforme, souvent appelé PhoneGap. En fait, un site Web mobile est créé, qui est « enveloppé » dans un petit code de plate-forme qui transmet les appels du système à l'application et inversement.

Tous les inconvénients et avantages sont exprimés ici plus clairement que partout ailleurs. Vous pouvez faire appel à des développeurs Web (HTML, CSS et JavaScript comme technologies de base) et créer la première version de l'application en un mois, voire quelques semaines, pour relativement peu d'argent. Oui, son fonctionnement ralentira, il n'aura peut-être pas une géolocalisation tout à fait précise, mais il fonctionnera sur tous les appareils et vous permettra, au minimum, de tester la demande des clients sur les appareils mobiles.

Un grand nombre de frameworks ont été créés pour cette approche, mais ils font tous essentiellement la même chose. La différence entre eux est que Cordova (PhoneGap) ne définit pas de restrictions ni de modèles sur la logique et l'interface utilisateur de votre projet HTML5, et les frameworks fonctionnent avec leurs propres éléments d'interface utilisateur prêts à l'emploi qui simulent plateformes mobiles, et sa logique de développement. Un exemple de cette approche est : Ionic Framework - wrapper ; Framework7, Mobile Angular UI, Sencha Touch, Kendo UI - frameworks d'interface.

PWA

La technologie à la mode de Google est constituée des mêmes applications Web, mais grâce à l'utilisation de certaines technologies (principalement les soi-disant Service Workers - travaillant dans arrière-plan scripts et Web App Manifest - une description d'une application Web sous une forme compréhensible pour un système mobile), ils peuvent fonctionner comme des applications natives sans le wrapper PhoneGap. Ils peuvent être installés sur l'écran d'accueil, en contournant l'App Store, fonctionner hors ligne, fonctionner avec des notifications push et avec des fonctions natives.

Le problème est que toutes les plateformes ne prennent pas encore en charge ces « certaines technologies ». Cela concerne principalement Apple, qui n’apprécie apparemment pas vraiment la possibilité de distribuer des applications en contournant l’App Store.

Compte tenu de toutes les lacunes des solutions HTML5, de nombreuses entreprises ont créé des outils qui permettent d'écrire du code dans une langue non native, puis de le traduire en natif. Cela fait d'une pierre deux coups : il n'y a qu'une seule base de code et les applications sont aussi proches que possible du natif.


Xamarin

Plateforme Microsoft. Le langage de programmation standard pour le développement d'entreprise est C# et l'environnement de développement multiplateforme est Visual Studio. Le résultat est des applications natives pour iOS, Android et Windows. Certes, de taille relativement grande.

Réagir natif

Plateforme de - les applications sont écrites en JavaScript et utilisent des styles de type CSS. L'interface s'avère native, et le code est interprété sur la plateforme, ce qui lui confère la flexibilité nécessaire.

Étant une plate-forme relativement jeune, React Native souffre encore évidemment (mais pas de manière catastrophique) d'un manque d'outils de développement et de documentation.

Battement

Naturellement, un géant comme Google ne pouvait ignorer le sujet du développement multiplateforme d'applications Android et iOS. Flutter, bien qu'actuellement uniquement en version bêta, adopte une approche différente de React Native et Xamarin. Il ne transforme pas le code source en code natif, qui est exécuté par la plateforme, mais dessine en fait une fenêtre sur l'écran du smartphone et restitue lui-même tous les éléments. Le langage utilisé est Dart « propriétaire », créé par Google comme une version améliorée de JavaScript.

Cela présente à la fois des avantages (par exemple, des interfaces identiques en externe) et des inconvénients (par exemple, redessiner l'interface nécessite une certaine quantité de mémoire et de temps CPU).

La plateforme se développe rapidement et Google y investit beaucoup d'efforts et d'argent. Mais comparé à Flutter, même React Native semble être un écosystème très établi et impressionnant.

Que choisir

Vous avez probablement déjà la tête qui tourne, mais vous ne savez toujours pas quoi choisir. Présentons une liste simple de questions pour vous aider :

  • Cela devrait-il fonctionner sur n’importe quel appareil ? Choisir HTML comme base;
  • Vous disposez de suffisamment de fonds, n'êtes pas pressé et souhaitez une candidature de la plus haute qualité ? Vous avez un chemin direct vers développement natif;
  • Avez-vous un développeur web « intégré » ou souhaitez-vous simplement tester rapidement et facilement une application mobile en action ? Ici, nous pouvons recommander Cordova/HTML ou PWA;
  • Avez-vous votre propre système CRM et un développeur C# qui le prend en charge ? Prends-le Xamarin;
  • vous « voulez essayer », mais vous avez besoin de tout rendre beau et à la mode ? Détourner les yeux Réagir natif ou Flutter.

Vous pouvez également passer de l'autre côté. Examinez les fonctionnalités dont vous aurez besoin dans votre application et partez de là :

  • une simple application de carte de visite ? Prendre React Native ou HTML5 et vous obtiendrez deux plateformes pour un prix minime ;
  • Vous avez un site web à fort trafic et avez besoin de tester votre présence dans l’espace mobile ? HTML5;
  • applications complexes avec accès à fonctions nécessaires des appareils ? Développement natif, Xamarin, React Native.

Le développement multiplateforme n'est pas une panacée

Lors du choix, vous devez partir des tâches assignées et des ressources existantes. Le développement multiplateforme est une direction bonne et compréhensible, mais avec ses propres avantages et inconvénients qu'il faut garder à l'esprit avant de lancer le projet. Une application multiplateforme terminée est évidemment meilleure qu’une application native non créée. Vous pouvez le développer rapidement et à moindre coût, le télécharger dans le magasin et vérifier simplement la demande des utilisateurs - si quelqu'un recherche votre application, s'il l'installe, quelles fonctions il utilise. Sur la base des résultats d'une telle expérience, il sera possible de décider du sort de la direction mobile dans votre entreprise et des investissements dans celle-ci.

Avez-vous encore des doutes et des questions sur les applications multiplateformes ? Découvrez comment nous avons créé une application permettant d'obtenir rapidement un abonnement à l'une des institutions sportives de la ville et essayez l'application permettant de payer toutes sortes de services - du logement et des services communaux aux commandes dans les magasins en ligne. Mieux encore, inscrivez-vous pour une consultation gratuite, en indiquant votre budget approximatif et brève description idées ou contactez notre manager Katya par téléphone

© 2024 ermake.ru -- À propos de la réparation de PC - Portail d'information