Lorsque Ionic est construit, il n'est pas converti en Swift. Je voudrais comparer le développement HTML5 par Ionic et le développement natif / hybride en tant que méthode de production d'applications mobiles.
Fait référence à celui développé avec "Application à une seule page". Ionic entre également dans ce domaine.
Dans cet article, nous excluons les applications HTML5 et faisons référence à Xamarin écrit en C # et NativeScript écrit en JavaScript (ReactNative, etc.).
Pour iOS, il fait référence à Swift / Objective-C, et pour Android, il fait référence à ceux développés avec Kotlin / Java. Dans la plupart des cas, les termes «développement d'applications pour smartphone» et «recrutement d'applications» font référence aux développeurs natifs.
En termes simples, le développement HTML5 / hybride est un outil polyvalent et le développement natif est un type de spécialisation en un point.
Type | WEB | Application pour smartphone |
---|---|---|
HTML5 | ◯ | Compatible avec les deux |
Hybrid | △ | Compatible avec les deux |
Native | ☓ | Soit iOS ou Android |
La raison pour laquelle l'utilisation WEB d'Hybrid est △ est qu'il existe un projet de publication Web React Native.
https://github.com/necolas/react-native-web Démo http://necolas.github.io/react-native-web/storybook/
Cependant, comme il existe de nombreuses opinions qui "Ecrire dans React sur le WEB", il s'écrit △. Ainsi, sur les appareils compatibles, ce sera "HTML5> Hybride> Natif".
Il est à noter que "le développement HTML5 se reproduit en natif". Par exemple, les codes HTML5 (Ionic) et Native (Swift) pour l'affichage des alertes sont les suivants.
//Code ionique écrit en TypeScript
dispAlert(){
const alert = this.alertCtrl.create({
title: 'Affichage d'alerte', buttons: ['Fermer']
});
alert.present();
}
// Swift
@IBAction func dispAlert(sender: UIButton) {
let alert: UIAlertController = UIAlertController(
title: "Affichage d'alerte", message: "message", preferredStyle: UIAlertControllerStyle.Alert
)
presentViewController(alert, animated: true, completion: nil)
}
Chaque API est appelée, mais en HTML5, "HTML qui ressemble exactement au dessin natif" est affiché par cette API. HTML5 reproduit le mouvement natif des alertes et des écrans de chargement en dessinant du HTML dans l'application où WebView est affiché. D'autre part, Native / Hybrid atteint l'API du système d'exploitation du smartphone lui-même, de sorte qu'une "alerte OS" est affichée.
Cela a eu un impact significatif sur les performances. Il y a dix ans, on disait qu'il était "lent à faire avec HTML" en raison de la lenteur du rendu de JavaScript et des faibles spécifications des appareils iOS / Android, mais c'est parce qu'il est "reproduit" de cette manière. est. Cependant, en 2017, quand j'ai regardé autour de moi, la vitesse de rendu de HTML5 et les spécifications de l'appareil ont considérablement augmenté, et maintenant on dit qu'il sera aussi rapide que Native.
Cependant, la vitesse de dessin est Native / Hybrid> HTML5.
"Facile à mettre en œuvre", en d'autres termes, l'ampleur de la douleur. C'est une situation différente, je vais donc présenter quelques modèles.
Le développement natif est extrêmement facile. Il n'y a aucun intérêt à développer HTML5 / Hybrid avec des personnes inexpérimentées.
La spécialité de l'hybride. Cependant, si vous avez un ingénieur Swift / Java, le développement natif peut être plus rapide que le développement hybride difficile, et je pense que le développement HTML5 est meilleur lorsque l'équipe de production Web crée des applications. Cela dépend des membres de l'équipe, et c'est la bonne réponse! Il n'y a pas une telle chose.
Pour les petites équipes, choisissez le développement HTML5. Cependant, s'il n'y a personne dans l'équipe capable d'écrire du HTML, il peut être préférable de développer dans le domaine de la spécialité (dans ce cas, il y a un problème avec ce qu'il faut faire avec l'application Web).
Par conséquent, je pense que la facilité de mise en œuvre d'une application dépend des exigences x ressources humaines. «Les balles d'argent n'existaient pas» est une expression surutilisée, mais ** résout tout! Eh bien, c'est un mensonge, n'est-ce pas?
Puisque le développement HTML5 "reproduit le natif", s'il y a un grand changement dans la conception de l'appareil, il sera nécessaire de le mettre à jour pour le suivre. Le fait que le "plug-in Cordova" qui accède directement aux fonctions natives possède également une couche intermédiaire entraîne une dépendance de version, et s'il y a un changement destructeur au niveau du système d'exploitation, il peut être difficile de suivre le rythme (cela s'applique également au développement hybride).
Le développement natif est l'application mobile la plus performante, et quelle que soit l'évolution du développement HTML5, il ne la renversera pas.
Ce qui est souvent dit dans le développement HTML5 est l'attrait du "déploiement multiple d'une seule ressource". Si vous développez WEB / iOS / Android séparément, non seulement le coût initial augmentera, mais des modifications de conception mineures et des améliorations fonctionnelles seront traitées en conséquence. Il est en réalité difficile d'avoir autant de ressources humaines à tout moment (et les ressources humaines pour le développement d'applications natives ont tendance à être rares).
Un autre problème sérieux est que le nombre d'applications a été publié autant que le nombre d'étoiles, et le taux de téléchargement a chuté. Étant donné que les temps ont changé depuis qu'un certain nombre d'applications ont été téléchargées après la sortie de l'application, la méthode générale consiste à la publier au moindre coût, à tester rapidement l'hypothèse, à la retirer si elle ne fonctionne pas et à continuer à travailler dessus si elle fonctionne, à faire croître le produit. Est devenu une cible.
Dans cet esprit, il est possible d'adopter différentes méthodes de développement pour le processus de test d'hypothèse et le processus de croissance. Ce n'est pas lequel du développement HTML5 / hybride / natif est supérieur, mais la vérification d'hypothèse est effectuée en détail avec l'application HTML5, et quand elle atteint une certaine échelle et peut être monétisée, elle sera remplacée par un développement hybride / natif pour améliorer encore l'expérience utilisateur. Je pense que c'est devenu une mesure réaliste. Le nombre de concepteurs capables d'écrire du HTML a augmenté et il est bon de développer HTML5 en tant que maquette.
En ce sens, je vois souvent un ton comme "Ionic (développement HTML5) vs React Native (développement hybride)", mais je ne pense pas que cela puisse être un axe de comparaison. C'est une couche complètement différente.
C'est un article qui ne tire aucune conclusion, mais qui fournit seulement une perspective, mais j'espère que vous le trouverez utile. De plus, si vous êtes intéressé par le développement HTML5 et Ionic dans cet article, vous pouvez également obtenir Introduction à la création d'applications mobiles avec Ionic <Compatible Web / iPhone / Android>. Je suis heureux.
À la prochaine.
Recommended Posts