Smart/Origin
  • Solutions
    • Produits
      • Dashboard
      • Cities
      • Citizens
      • Field
    • Usages
      • Informer votre public
      • Observer vos territoires
      • Faciliter les remontées citoyennes
      • Piloter votre organisation
      • Faire participer les citoyens à la vie publique
      • Réinventer les façons de se balader
      • Gérer durablement votre patrimoine arboré
      • Superviser les cours d’eau
  • Expertises
    • Coeur de métier
      • Réalisation d’applications sur-mesure
      • Prestations de services autour des solutions Esri
    • Spécialités
      • Cartographie et data-visualisation
      • Développement web et mobile
      • Expérience utilisateur et design
  • Réalisations
  • Blog
  • Société
    • L’entreprise
    • Recrutement
    • Nous contacter
  • Démo
  • Menu Menu
Tech

Code natif et développement multi-plateforme mobile [1/2]

code-natif-appli-mobile

Récemment nous avons été conduits à réaliser une étude sur l’utilisation de code natif dans une application mobile qui cible plusieurs plateformes. Dans cette série de deux articles nous allons revenir sur la notion de développement multi-plateformes mobiles dans un premier article, avant de présenter dans un deuxième article, un retour d’expérience, via divers exemples permettant d’utiliser du code natif dans une application mobile multi-plateformes.

La présentation qui suit ne se veut pas exhaustive, elle présente les points que nous avons jugés clés pour comprendre les principes abordés dans le deuxième article.

Avant de définir ce qu’est une application multi-plateformes rappelons quelles sont les principales plateformes mobiles et lesquelles se doit-on de cibler lors du lancement d’un nouveau produit mobile.

Les principales plateformes mobiles

Le monde de la téléphonie mobile (en 2017) est représenté par deux acteurs principaux qui se partagent la quasi totalité du marché : Google avec Android (87.8% par de marché) et Apple avec iOS (11.5%) (source Gartner Novembre 2016). La force principale des systèmes d’exploitations Android et iOS est leur extensibilité via un écosystème applicatif ouvert aux entreprises et créateurs externes. Ces applications sont alors disponibles via un store (App store pour iOS et Play Store pour Android).

Cette série de deux articles ne traite pas de la plateforme Windows Mobile 10 notamment pour sa faible part de marché (env <1%) mais aussi eut égard de l’aveu d’échec de la part de Microsoft : https://t.co/0CH9TZdIFu https://t.co/ePsySxR3LB

Le développement multi-plateforme

Afin de ne pas réinventer la roue lors de la création d’une application (mobile ou non) lorsqu’on cible plusieurs plateformes il peut être intéressant de passer par un développement multi-plateformes (ou cross-platform). Ce type de développement à l’avantage de factoriser la logique métier et d’abstraire les spécificités de développements propres à chaque plateforme en utilisant un framework (ensemble d’outils pour la création de logiciels). La simplicité gagnée par cette abstraction que propose le framework utilisé pourra conduire dans certains cas au développement de modules spécifiques destinés à combler les lacunes du framework.

Les différentes manières de faire un développement multi-plateforme

1. Full web

La solution la plus simple consiste en la réalisation d’un site web. Toutes les plateformes mobiles disposent d’un navigateur web ainsi il est tout-à-fait possible de créer une application interactive avec les technologies standards du web (HTML/JS/CSS). C’est ainsi que fonctionnent nos produits Cities et Dashboard. Cette solution facilitant le développement présente le désavantage de ne pas pouvoir tirer entièrement partie du support mobile et de certains de ses capteurs : tels que le gyroscope. De plus en passant par un navigateur web le développement hérite de tous les problèmes du développement web : compatibilité sur tous les navigateurs, performances limitées.

 

2. Applications Hybrides

Les applications hybrides sont des applications web développées avec les technologies standards du web mais encapsulées dans une application via une WebView. Cette solution est similaire à la création d’un site web, les problèmes restent les mêmes vu que ces frameworks utilisent les Webview du système sur lequel ils sont déployés. Néanmoins via ces technologies il est possible de développer des modules spécifiques pour proposer des fonctionnalités propres à chaque système.

Parmi les frameworks existants on peut citer : Apache Cordova et Ionic (qui se base sur Apache Cordova)

 

3. Frameworks dédiés au développement multi-plateformes

Cette solution consiste à developper de véritables applications natives via un framework qui va abstraire les spécificités propres à chaque plateforme pour proposer des interfaces logicielles de plus haut niveau. Cette solution présente l’avantage d’abstraire les problématiques de développements propres à chaque plateforme en les réduisant au développement de modules spécifiques.

La solution offrant le plus de liberté pour une développement reste l’utilisation de ce type de framework que ce soit pour les performances ou encore la création de modules spécifiques. Cette liberté se paye par l’utilisation d’outils parfois complexes et la familiarisation avec des frameworks offrant de nombreuses fonctionnalités.

 

 

 

 

Présentation de quelques frameworks dédiés au développement multi-plateformes

Parmi les frameworks dédiés nous allons nous concentrer sur les trois frameworks qui suivent : Unity, Xamarin et React-Native. Nous avons ciblé ces trois framework pour leurs communautés existantes ou grandissantes, leurs supports, leurs utilisations et leurs complexités d’utilisations.

Nous n’aborderons pas les frameworks comme : Qt ou encore Juce qui pourraient aussi répondre au besoin.

1. Unity

Ce framework est principalement dédié à la conception de jeu vidéo, néanmoins il permet de créer des applications multi-plateformes aussi bien mobiles que bureautiques. L’utilisation d’Unity devient vite limitée lorsqu’il est question de créer une application qui n’est pas un jeu, l’IDE étant centré sur des concepts de « scene » et « assets » propres au Jeu vidéo.

2. React-Native

Ce framework, récemment propulsé par Facebook, propose d’utiliser la simplicité d’utilisation de la technologie React pour créer de véritables applications natives. Ainsi en utilisant ES6 et JSX la création se veut simplifiée et permet de profiter des performances et composants des systèmes mobiles. Côtés points faibles, React-Native reste une technologie relativement nouvelle et dispose d’une communauté encore grandissante, d’autre part React-Native hérite de la license propre à Facebook qui spécifie qu’on ne doit pas utiliser cette technologie dans des produits concurrents de Facebook ou assimilés « The license granted hereunder will terminate, automatically and without notice, if you … take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates ». (https://github.com/facebook/react-native/).

3. Xamarin Forms

Désormais racheté par Microsoft, Xamarin grand acteur de l’univers .NET sur plateforme Mono (VM .Net open source) propose la solution Xamarin Forms pour créer des applications Android/iOS/UWP. Pleinement intégré à Visual Studio (Windows ou Mac), Xamarin Forms offre une solution logicielle complète pour créer des applications. Son modèle économique reste le principal frein à son utilisation (voir le pricing Visual Studio).

Dans le prochain article…

La suite de cette article (à paraitre très prochainement) proposera un retour d’expérience via une mise en oeuvre concrète des trois frameworks dédiés au développement multi-plateformes. Le cas présenté sera appliqué à une problématique qu’on peut rencontrer lorsqu’on souhaite proposer une application mobile.

 

Article rédigé par Marc-Alexandre Blanchard.

Etiquettes : DevOps, React Native, Unity, Xamarin
Partager cette publication
  • Partager sur Facebook
  • Partager sur X
  • Partager sur LinkedIn
  • Partager par Mail
https://smart-origin.com/wp-content/uploads/2018/07/codenatif1_1.jpg 667 1000 Denis Martin https://smart-origin.com/wp-content/uploads/2019/01/logo-smart-origin-300x138.png Denis Martin2017-12-19 10:46:102019-03-11 11:06:09Code natif et développement multi-plateforme mobile [1/2]
Vous aimerez peut-être aussi
OSM-Buildings-3D-bâtiments-SIG OSM Buildings : valorisez vos bâtiments en 3D dans ArcGIS
Drupal Retour d’expérience : création d’un module Drupal
code-natif Code natif et développement multi-plateformes mobile [2/2]

Catégories

Cas client (40) Data visualisation (20) Non classé (4) Team (11) Tech (10)

Articles récents

  • Des rapports géomarketing automatisés à partir d’une adresse22 avril 2026 - 16 h 29 min
  • Associer Alfresco et ArcGIS Experience Builder grâce à un widget personnalisé10 janvier 2025 - 10 h 58 min
  • Ma Boussole Territoires, l’observatoire des solutions d’aide pour les aidants5 décembre 2024 - 12 h 04 min
  • Une nouvelle expérience pour les cavaliers : GéoCheval, l’application de randonnée équestre de la FFE29 novembre 2024 - 16 h 45 min
  • Modélisation 3D du territoire de Val d’Europe8 avril 2024 - 17 h 06 min
  • Application cartographique d’extraction de données SIG format DWG, DXF ou SHP5 avril 2024 - 17 h 37 min

Mots clés

alimentation (3) ArcGIS (2) attractivité (12) carte (20) communiquer (12) data (1) data science (4) dataset (1) datavisualisation (1) dataviz (2) design (10) DevOps (4) drupal (1) démocratie participative (1) démo vidéo (3) ergonomie (4) ESRI (8) event (5) google maps (1) géo-décisionnel (2) habitat (4) infographie (1) jeu de donnée (1) logement (3) marketing territorial (9) observatoire (3) open data (7) OpenStreetMap (1) outil métier (1) patrimoine (2) plan alimentaire territorial (1) portail open data (3) React Native (2) salon SIG (5) SEO (1) SIG (4) smart cities (11) success stories (43) territoire (18) tourisme (3) UI (4) UI/UX (1) Unity (2) UX (5) Xamarin (2)

logo-smart-origin-data-visualisation-carte-tableau-de-bord

Société de services en ingénierie logicielle, experte en cartographie et en data visualisation, façonnant des applications sur mesure et des expériences utilisateurs pensées pour s’informer, communiquer, travailler et vivre avec les données.

Expertises

  • Réalisations d’applications sur-mesure
  • Prestations de services autour des solutions Esri

Produits

  • Cities
  • Citizens
  • Dashboard
  • Field

Blog

  • Des rapports géomarketing automatisés à partir d’une adresse22 avril 2026 - 16 h 29 min
  • Associer Alfresco et ArcGIS Experience Builder grâce à un widget personnalisé10 janvier 2025 - 10 h 58 min
  • Ma Boussole Territoires, l’observatoire des solutions d’aide pour les aidants5 décembre 2024 - 12 h 04 min
© Smart/Origin, made with ❤ à Grenoble | contact@smart-origin.com | 04 76 41 16 69
  • Lien vers X
  • Lien vers LinkedIn
  • Politique de confidentialité et mentions légales
Lien vers: Le site de Smart/Origin fait peau neuve Lien vers: Le site de Smart/Origin fait peau neuve Le site de Smart/Origin fait peau neuveNouveau-site-2018-Smart-Origin Lien vers: Code natif et développement multi-plateformes mobile [2/2] Lien vers: Code natif et développement multi-plateformes mobile [2/2] code-natifCode natif et développement multi-plateformes mobile [2/2]
Faire défiler vers le haut Faire défiler vers le haut Faire défiler vers le haut

Nous utilisons des cookies pour nos statistiques de fréquentations. En continuant à utiliser le site, vous acceptez l'utilisation des cookies.

AccepterRefuserEn savoir plus

Cookies et paramètres de confidentialité



Comment nous utilisons les cookies

Nous pouvons demander que les cookies soient mis en place sur votre appareil. Nous utilisons des cookies pour nous faire savoir quand vous visitez nos sites Web, comment vous interagissez avec nous, pour enrichir votre expérience utilisateur, et pour personnaliser votre relation avec notre site Web.

Cliquez sur les différentes rubriques de la catégorie pour en savoir plus. Vous pouvez également modifier certaines de vos préférences. Notez que le blocage de certains types de cookies peut avoir une incidence sur votre expérience sur nos sites Web et les services que nous sommes en mesure d’offrir.

Cookies Web Essentiels

Ces cookies sont strictement nécessaires pour vous délivrer les services disponibles sur notre site et pour utiliser certaines de ses fonctionnalités.

Du fait que ces cookies sont absolument nécessaires au bon rendu du site, les refuser aura un impact sur la façon dont il fonctionne. Vous pouvez toujours bloquer ou effacer les cookies via les options de votre navigateur et forcer leur blocage sur ce site. Mais le message vous demandant de les accepter/refuser reviendra à chaque nouvelle visite sur notre site.

Nous respectons votre choix de refuser les cookies mais pour éviter de vous le demander à chaque page laissez nous en utiliser un pour mémoriser ce choix. Vous êtes libre de revenir sur ce choix quand vous voulez et le modifier pour améliorer votre expérience de navigation. Si vous refusez les cookies nous retirerons tous ceux issus de ce domaine.

Nous vous fournissons une liste de cookies déposés sur votre ordinateur via notre domaine, vous pouvez ainsi voir ce qui y est stocké. Pour des raisons de sécurité nous ne pouvons montrer ou afficher les cookies externes d’autres domaines. Ceux-ci sont accessibles via les options de votre navigateur.

Cookies Google Analytics

Ces cookies collectent des informations de manière compilée pour nous aider à comprendre comment notre site est utilisé et combien son performantes nos actions marketing, ou pour nous aider à personnaliser notre site afin d’améliorer votre expérience de navigation.

Si vous ne souhaitez pas que votre visite soit pistée sur notre site vous pouvez bloquer ce pistage dans votre navigateur ici :

Autres services externes

Nous utilisons également différents services externes comme Google Webfonts, Google Maps, autres hébergeurs de vidéo. Depuis que ces FAI sont susceptibles de collecter des données personnelles comme votre adresse IP nous vous permettons de les bloquer ici. merci de prendre conscience que cela peut hautement réduire certaines fonctionnalités de notre site. Les changement seront appliqués après rechargement de la page.

Réglages des polices Google :

Réglages Google Map :

Réglages reCAPTCHA :

Intégrations de vidéo Vimeo et Youtube :

Autres cookies

Les cookies suivants sont également requis - Vous pouvez choisir d’autoriser leur utilisation :

Politique de Confidentialité

Vous pouvez lire plus de détails à propos des cookies et des paramètres de confidentialité sur notre Page Mentions Légales.

Politique de confidentialité et mentions légales
Accepter les réglagesMasquer uniquement les notifications