Applis natives vs Applis hybrides

Hello,

On entend de plus en plus parler des Applis hybrides (html5 / css / js). Pensez vous que c’est un effet de mode ou quelque chose qui s’imposera face aux applis natives ?

L’un des atouts des applis hybrides c’est 1 code pour tout (iOs / Android / Windows Phone) mais des framework tels que Titanium font déjà du code natif pour tout les os en sortie.

Qu’en pensez-vous ?

1 « J'aime »

Hello,

Je pense vraiment que c’est une techno d’avenir. Ici, nous avons commencé à bosser sur des applis hybrides avec le framework Ionic. Les performances sont de plus en plus correct, ce qui était un frein il y encore 1 an ou 2. Et après avoir bossé sur des applis natives iOS / Android, le gain en temps en développement est un énorme argument. Idem pour la maintenabilité de l’appli derrère.

Par contre, il faut faire très attention à bien optimiser son code. La moindre erreur coutera cher en terme de performance.

Les applis Hybrides (développées avec Ionic par exemple) sont mis dans une WebView ? Y a rien de natif derrière c’est bien ça ?

J’ai entendu parler que Apple refusait les applis avec moins de 60% de code natif (je ne sais pas si c’est vrai en revanche :/)

Oui, il n’y a presque rien de natif, mise à part la couche cordova/phoengap. Ensuite, tu as des plugins natifs développés par la team Ionic qui permettent d’étendre les possibilités de ton appli hybride.

Par contre, je ne crois pas qu’Apple refuse les apps avec moins de 60% de code natif. A moins que quelqu’un n’ai déjà eut le cas ?

Mouais,

perso, je préfère faire du Rubymotion quand j’ai besoin de natif…

Dans mon job précédent, j’ai créé cette app en utilisant uniquement Ionic. Et elle n’a jamais été rejetée.

Cet article est intéressant sur Ionic vs le natif

@yrezgui
effectivement ca ressemble a s’y méprendre à du natif.
Tu as utilisé les CSS (enfin SCSS) fournies de base par Ionic pour le look’n feel ou bien un autre UI-kit ?

Bonjour
J ai pour ma part décider de partir sur un développement hybride pour développer mon jeu de mémoire a 1 ou deux joueurs : memory party.

N ayant aucune connaissance en dev mobile je voulais pas apprendre le dev sur Android, iOS et windows. C est intéressant d apprendre mais defois il faut aller vite pour tester les retours de son appli, et le dev hybride est un bon choix.
Ca permet d avoir un unique code sur toute plateforme et gagner en réactivité, en temps, maintenance,…

J utilise ionic framework pour mon jeu c est du dev angularjs avec utilisation de balise HTML ionic et de module Cordova pour communiquer avec le tel.
J ai implémenté la partie audio média, les notifications via Google GSM, la connexion facebook, l authentification oauth2, …
Si vous avez des questions n hesitez pas.
Je vais bientôt créer un blog pour détailler le développement d un jeu.

2 « J'aime »

Bonjour,
Le développement mobile hybride semble être en plein décollage : plusieurs acteurs apparaissent.
Que se soit les frameworks comme Cordova/PhoeGap ou les éditeurs comme Microsoft, chacun y va de sa solution plus ou moins intégrée.
Je m’intéresse au développement pour mobile depuis quelque temps.
J’ai commencé avec le couple Java/Android et la perspective de compléter par Swift semble inévitable.
J’ai suivi un module de formation C# récemment et ce matin, je suis tombé sur Xamarin qui permet de faire du développement hybride qui peut être porté sur les 3 plateformes mobiles.
Ca semble plutôt sexy comme proposition…
Partager votre code C# sur Android et iOS avec Xamarin
Xamarin : retour d’expérience par Betclic
Qu’en pensez-vous ?

Bonjour à tous !

Je réalise des applications avec Titanium depuis bientôt 3 ans, donc c’est déjà un système éprouvé. Mais en effet récemment de nouveaux acteurs sont arrivés tels que React Native, Native Script ou encore Xamarin.
Chacun ont leur spécificités mais le résultat est plus où moins le même: une application cross platform avec un maximum de code partagé.

Pour plus d’infos j’ai publié un article sur ces différentes technos (désolé c’est en anglais) : http://jolicode.com/blog/crossing-the-native-bridge-to-build-apps-with-javascript

2 « J'aime »

Pour ma part, je code en Xamarin. Ca s’est beaucoup amélioré depuis le rachat par Microsoft. Il est vraiment possible de tout faire. Comme c’est open source, tu peux voir la mécanique interne pour améliorer ton code ou le leur.
Là où je m’amuse bien c’est pour faire des animations (effet domino, fondu, barre de chargement ronde/ovale/rectangulaire etc…)

Pour les vues (si je dis des betises dites le moi !)

  • Titanium utilise du XML pour la vue, JS pour la prog et JSON pour le CSS
  • Xamarin utilise C# pour la prog, XAML pour les vues, et CSS (?)
  • React et NScript utilisent des web component pour la vue (donc pareil que du X(A)ML), du CSS ou CSS JSONifié (React)

Donc si tout ca est toujours d’actualité, et bien on voit que tous font la meme chose.

Pour Xamarin, il n’y a pas de css mais tu peux faire des styles.

Le xaml est un langage descriptif qui te permet de simplifier la création d’une vue. Il sera ensuite traduit pour implémenter exactement les mêmes objets que si tu le faisais en code (sauf que c’est beaucoup plus lisible). Ce que tu peux faire en xaml, tu peux le faire en code mais l’inverse n’est pas toujours vrai.
Du coup, le xaml est toujours accompagné d’un fichier xaml.cs qui te permet de faire du code pour ta vue (ce que tu ne peux pas faire en xaml comme des boucles ou des if par exemple).

Sur Xamarin, quand tu crées un objet cross platforme (un label par exemple), sur chaque plateforme (iOS, Android, Windows) c’est l’objet natif qui est créé (UILabel sur ios par exemple)

Merci pour les précisions sur Xamarin @Berfhaen

Je vois que ce sont bien les mêmes paradigmes sur le fond entre Xamarin, React Native, etc…

  • Dialecte d’abstraction en XML pour les vues
  • Javascript sinon C# transpilé en JS pour le codebehind

Bonjour à tous,

J’ai déjà timidement fait quelque app hybride avec Telerik sans grandes convictions.

@Julien_Hac, je viens de tester ton jeu (qui me demande la permission de « Gérer des appels téléphoniques ?! » Et je suis bloqué sur un écran disant que la version du jeu n’est plus compatible.

As-tu mis a disposition le code source de ton appli ? Puisque tu envisages d’en détailler le développement, cela pourra/pourrait être un plus.

En attendant je vais la désinstaller car, 1. elle ne marche pas, 2. filer des auth pour passer ou recevoir des appels téléphonique pour un jeu de mémory… Bref. Assez louche ton affaire !

Hello,

J’ai un ami qui bosse sur un sujet de recherche concernant justement ces technos d’applications hybrides. Selon lui, le gain de temps est énorme, les coûts sont réduits pour les boites etc… mais en contre-partie, ces applications, à cause de l’utilisation des composants WebView, sont vulnérables à de nombreuses intrusions, comme celles du type man-in-the-middle.

Je n’ai jamais pris le temps de vérifier l’information ou de tester des trucs mais je pense que c’est quelque chose à savoir quand même.

Moi j’ai du mal à comprendre les apps mobiles hybride: ce que ça apporte.
Soit tu fais un site responsive, avec un home-screen icône
Soit tu fais une vraie app mobile native java/Swift ou à base de React (ou Xamarin…)

Et de fait je comprends pas bien l’intérêt d’embarquer une Webview dans une coque Cordova en fait.

PS: j’ai pas dit que c’était non pertinent ou inutile ou quoi, j’ai dit qu’il s’agit d’un écueil de compréhension de ma part 😉

C’est intéressant quand tu as besoin de composants/API inutilisables en web classique :

  • Jusqu’à quelques temps, l’appareil photo
  • La liste des contacts (à vérifier si une API n’est pas apparue)

C’est aussi intéressant si tu veux utiliser des composants natifs pour des questions d’ergonomie (ex: les boutons, menus, habitudes au sein d’un OS).

Sinon, j’avais un ancien collègue qui avait fait une étude et de sa conclusion, les applications hybrides étaient intéressantes quand tu veux la même application (design, ergonomie) sur tous les OS ou que le métier est complexe et que maintenir n versions est complexe. De même, si tu es en SSII et que tu fais un projet one-shot.
Par contre, dans un contexte éditeur, la question n’était pas si simple et dépendait de nombreux paramètres, dont le premier était les compétences des équipes.
Pour info, son étude portait également sur les frameworks pour du natif multi-OS, mais je n’ai jamais vraiment compris sa position sur ce point.
⇨ Ces informations sont de deuxième main et je n’ai personnellement pas étudié la question, donc s’il y a des erreurs, n’hésitez pas à me corriger.

Et pour simplement répondre à la question :

Avis personnel, ça s’imposera au moment où il sera possible de tout faire en web ce qu’il est possible de faire en natif.

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s