Quels sont les avantages et inconvénients de développer un HTML5 ou une application native pour smartphones et tablettes?

À côté de la mise au point (codage, débogage,..) J’ai intérêt à connaître l’expérience de l’utilisateur.

Réponse

Sauf si l'on a affaire à une application très basique sans animations beaucoup de défilement et fantaisies, je dirais "non" à la voie purement-HTML5. Et, je dirais « un non catégorique » si vous envisagez de construire une application d’animation extrêmement riche. Pour les applications élémentaires, on peut, avec plus d’efforts, être aussi en mesure de parvenir à un compromis raisonnable avec un peu de rendu par le biais de mémoire géré des webviews avec contenu préalablement extraites et le reste de l’écoulement et l’animation par le biais de code entièrement natif, mais il s’agit d’un choix, je voudrais mettre en garde le développeur (voir ci-dessous).

TL; DR

J’ai quelques expériences dans cet espace. , Nous avons construit une application qui extrait une grande quantité de données sur le réseau et leur affiche rapidement avec animations slicks et fantaisies. Bien que brièvement, nous avons exploré la possibilité de construire une application HTML5 pour y parvenir, nous avons rapidement abandonné cette voie et avec le recul, choisir l’itinéraire entièrement indigènes, était l’un des meilleures décisions de conception, nous avons fait.

Voici quelques avantages et inconvénients de la route d’HTML5 :

Pros du HTML5 :

  • Sans doute, apps HTML5 faire effectuer relativement bien et ont également l’avantage supplémentaire qu’ils sont portatifs (on peut intégrer ceux-ci dans une fine coque, comme un bouquet de webviews et les déployer sur plusieurs plateformes mobiles). HTML5 est en constante évolution et devenir plus puissant avec des moteurs de rendu et javascript sophistiquées ces jours-ci. Beaucoup d’applications mobiles aujourd'hui, sont généralement apps HTML5 vraiment.
  • En outre, rendu web a plus sophistiqués primitives de rendu qui offrent beaucoup de souplesse et de contrôle pour le programmeur. (tels que CSS3 - Imaginez l’attribut float, par exemple). Dans une application native, on doit la plupart du temps configurer explicitement les limites et les tailles des sous-vues. Même si, on pourrait déterminer dynamiquement certains d'entre eux, calcul ces également impliquent surcharge sur la fin de l’interface de programmation.
  • Disposition de texte est très sophistiqué et automatique. Mise en œuvre de quelque chose comme « afficher deux lignes de texte et ellipsize en fin de compte » peut être assez fastidieux dans une application native (vous aurez à estimer le nombre de mots pour montrer basé sur les limites de la vue et les nuances de la taille de la police et de style, et c’est non négligeable). Pire encore, imaginer quelque chose comme « texte qui coule sur une image de taille variable ». Il s’agit sanglante difficile à faire dans le code natif-app.

Inconvénients de HTML5 (Pros pour approche native) :

  • Tout d’abord, webviews sont lourdes. Ayant plusieurs webviews dans votre application peut accéder rapidement à votre application en cas d’insuffisance de mémoire. C’est quelque chose qui doit être géré avec beaucoup d’attention. Historique du navigateur, taper l’utilisateur clics/robinets, etc.... besoin de code supplémentaire. On pourrait pratiquement besoin d’implémenter un réseau proxy et cache couche pour intercepter les appels de réseau pour extraire les données et stocker localement, pour prendre en charge une sensation hors ligne-like.
  • En mode hors connexion n’est pas vraiment hors ligne. HTML5 a beaucoup de restrictions dans les implémentations en mode hors connexion. (Aller chercher sur plusieurs domaines, par exemple sont difficiles. Limites du cache sont follement petits). Natif en mode hors connexion est très facile. Beaucoup d’applications natives, au démarrage, extraire tout leur contenu à l’avance et ensuite démarrer le point de vue. C’est dur, si non, impossible, à faire en HTML5.
  • CSS3 offre des animations assez sophistiquées (traductions, rotations, etc...), mais plus d' animations fluides deviennent très difficile à faire. (Imaginez l’app de livres, dont « page coudes et courbes » tout en renversant). Ces effets prennent beaucoup d’efforts à développer sur HTML5, et pire encore, le résultat final sera toujours sous-optimal (habituellement très instable). En mode natif, ces animations peuvent être implémentées par affectation primitives très simples, qui sont également en mode natif optimisés. Riches applications natives comme flipboard, ne peut pas être mis en œuvre aussi bien avec HTML5,.
  • Uniformité de l’aspect et l’ambiance. iOS est allé loin d’Assurez-vous que, beaucoup de vues de base préfabriqués et flux de travail sont mis à la disposition des développeurs d’applications pour s’assurer que toutes les applications iOS regarder et sentiment même aux utilisateurs. Listes déroulantes bounce pareillement, taraudage et le déménagement dans une vue secondaire a le même effet de glissement familier, les commandes de "retour" sont toujours au même endroit. Une fois que l’utilisateur apprend l’interface « Pomme », à l’aide d’autres apps devient est beaucoup plus facile étant donnés la familiarité et la cohérence étonnante à un grand niveau de détail. Ré-ingénierie en HTML est fastidieux et sous-optimal, et souvent, on finirait dans les vues qui semblent incompatibles avec le reste des applications natives. Nous pourrions simplement obtenir certains détails mal. Aspects comme « rebond élastique large sur les bords tout en défilement », ont besoin de beaucoup de code et ne fonctionnera pas ainsi prévu. (Je me souviens, app Gmail HTML5 utilisé pour ce faire assez bien et il devrait y avoir beaucoup de code derrière tout cela, mais même cela pourrait ont tendance à devenir lent si l’affichage est très lourd avec une énorme liste d’éléments).

Dans l’ensemble, une application purement native un permet d’économiser beaucoup de temps et d’efforts de développement et contribue à atteindre rapidement la consistance du look-and-feel et vitesse dans l’environnement natif. Si vous vous souciez de l’UX de votre application (et vous devriez), je voudrais vous recommander pour construire votre application dans une large mesure en mode natif.


Tags: Applications mobiles, IPhone Applications Android, HTML5, Développement d’applications d’iOS Applications