Introduction à Ionic 2

Dans cet article, nous allons examiner Ionic 2, la dernière version du cadre d'applications mobiles multiplate-forme Ionic. Pour commencer, nous allons récapituler ce qu'est Ionic et à quoi il sert. Ensuite, nous allons plonger dans Ionic 2. Je vais vous dire ce qui est nouveau et ce qui le différencie de Ionic 1, et je vous aiderai à décider si vous devriez ou non l'utiliser dans votre prochain projet.. 

Quel est ionique?

Ionic est un framework pour la construction d'applications hybrides utilisant HTML, CSS et JavaScript. Il est livré avec un ensemble de composants et de fonctions d'interface utilisateur que vous pouvez utiliser pour créer des applications mobiles entièrement fonctionnelles et attrayantes.. 

Ionic est construit sur la pile de Cordova. Vous ne pouvez pas créer d'applications mobiles avec Ionic seul, car il ne gère que la partie interface utilisateur. Il doit fonctionner avec Angular, qui gère la logique de l'application, et Cordova, le cadre d'application multiplate-forme qui vous permet de compiler votre application dans un fichier installable et de l'exécuter dans la vue Web de l'appareil mobile.. 

Les applications construites avec Cordova et Ionic peuvent fonctionner sur les appareils Android et iOS. Vous pouvez également installer des plug-ins Cordova pour fournir des fonctionnalités natives telles que l'accès à la caméra et l'utilisation de périphériques Bluetooth basse consommation..

Pour en savoir plus sur Cordova, consultez certains de nos cours et tutoriels ici sur Envato Tuts+.

  • Une introduction à Cordova: les bases

    Dans cet article, je vais vous présenter Cordova, un framework utilisé pour développer des applications mobiles. Si vous êtes nouveau à Cordova ou si vous voulez savoir si…
    Ancheta de Wern
    Cordoue
  • Construire une application avec Cordova

    La plate-forme Cordova est un cadre multiplateforme pour la création d'applications. Au lieu de créer une application avec des langages natifs comme Java ou Objective C, vous pouvez…
    Reginald Dawson
    Mobile multiplateforme

Ionic est cependant plus qu'un simple cadre d'interface utilisateur. La société Ionic propose également des services prenant en charge le cadre d'interface utilisateur ionique, notamment Ionic Creator, Ionic View et Ionic Cloud.. 

Quoi de neuf dans Ionic 2?

Dans cette section, nous examinerons quelques-unes des modifications importantes apportées à Ionic dans la version 2, ainsi que les nouvelles fonctionnalités et outils introduits dans Ionic 2..

Prise en charge du navigateur

Ionic 1 a été conçu pour les seules applications mobiles hybrides. Mais Ionic 2 est conçu pour prendre en charge les applications Web progressives et les applications Electron. Cela signifie que vous pouvez désormais créer non seulement des applications ioniques s'exécutant dans l'environnement Cordova, mais également des applications Web progressives, qui utilisent des fonctionnalités Web modernes pour offrir aux utilisateurs une expérience similaire à celle d'une application.. 

Vous pouvez également cibler Electron, une plateforme permettant de créer des applications de bureau multiplates-formes à l'aide de HTML, CSS et JavaScript. Electron est à peu près comme Cordova mais pour les systèmes d’exploitation de bureau comme Windows, Ubuntu ou macOS.

Angular 2 et TypeScript

Ionic 2 utilise maintenant Angular 2 pour la logique des modèles et des applications. Cela signifie que les développeurs devront apprendre la nouvelle syntaxe Angular 2 avant de devenir productifs lors de la création d'applications Ionic 2. Ne vous inquiétez pas, car les concepts sont toujours les mêmes que dans Angular 1. Il existe également des ressources telles que ngMigrate qui vous aideront à convertir vos compétences en Angular 1 en Angular 2..

Outre Angular 2, Ionic 2 utilise également TypeScript. Pour ceux qui ne le connaissent pas, TypeScript est un sur-ensemble de JavaScript. Cela signifie que vous pouvez toujours utiliser la syntaxe JavaScript vanilla pour écrire vos applications. Si vous souhaitez utiliser les fonctionnalités fournies avec TypeScript, telles que la syntaxe ES6 et ES7, le typage statique et la complétion intelligente de code, vous pouvez utiliser la syntaxe spécifique à TypeScript. Il existe des plugins que vous pouvez installer sur votre éditeur de texte ou IDE favori pour profiter des avantages des fonctionnalités avancées de complétement du code de TypeScript..

Syntaxe

Comme je l'ai mentionné, la syntaxe du modèle dans Ionic 2 a considérablement changé, principalement en raison de son passage à l'utilisation de Angular 2. Vous pouvez même en venir à trouver que la nouvelle syntaxe est plus simple et concise. Voici quelques exemples de syntaxe Ionic 1 et Ionic 2 côte à côte:

Ecouter des événements:

   

En utilisant un modèle:

   

En boucle dans un tableau et en affichant chaque élément:

 
  • nom de l'article
  • nom de l'article
  • Structure des dossiers

    Si vous comparez la structure de dossiers d'un projet Ionic 1 à un projet Ionic 2, vous remarquerez que la plupart des dossiers que vous avez l'habitude de voir dans un projet Ionic 1 sont toujours présents dans Ionic 2. Cela est dû au fait que la plate-forme n'a pas vraiment changé-Ionic 2 utilise toujours Cordova. Les seules choses qui ont changé sont les parties liées à vos fichiers source. Voici une capture d'écran de la structure de dossiers d'une application Ionic 1:

    Et voici une application construite avec Ionic 2:

    Si vous regardez de plus près, vous remarquerez qu’il ya maintenant un src dossier. C'est là que se trouvent tous les fichiers source de votre projet, et chaque fois que vous modifiez un fichier de ce répertoire, le fichier modifié est compilé et copié dans le répertoire. www / build annuaire. Auparavant, les fichiers source étaient tous dans le wwwrépertoire, et vous n'avez pas besoin d'une étape de compilation supplémentaire.

    La structure du répertoire est également plus organisée. Si vous vérifiez le src / pages répertoire, vous pouvez voir que chaque page a son propre dossier, et à l'intérieur de chacun d'eux sont les fichiers HTML, CSS et JavaScript pour cette page spécifique. 

    Auparavant, dans Ionic 1, vous veniez de recevoir un répertoire vide et disposiez de la liberté nécessaire pour structurer votre projet comme vous le souhaitiez. Mais cela a eu l'inconvénient de ne pas vous obliger à faire les choses de la meilleure façon. Vous pourriez être paresseux et vous en tenir à une structure regroupant tous les fichiers, ce qui pourrait compliquer la tâche des équipes plus importantes travaillant sur des applications complexes..

    Theming

    Contrairement à la version précédente d'Ionic, qui n'avait qu'une apparence et une convivialité pour toutes les plates-formes, Ionic 2 prend désormais en charge trois modes: Material Design, iOS et Windows. Désormais, Ionic correspond à l'apparence de la plate-forme sur laquelle elle est déployée. Ainsi, si votre application est installée sur Android, par exemple, elle utilisera un style et un comportement similaires à ceux des applications Android natives.. 

    Ionic prend en charge les thèmes, même si, au moment de la rédaction de cet article, il n’existe que le thème Light par défaut. Si vous souhaitez modifier le thème, vous pouvez modifier le src / theme / variables.scss fichier. 

    Outillage

    Ionic 2 est également livré avec de nouveaux outils qui en feront un plaisir de créer des applications mobiles. Je vais vous en montrer quelques unes dans cette section.

    Générateurs

    Ionic 2 fournit maintenant un générateur qui vous permet de créer des pages et des services pour votre application:

    page ionique g contactPage

    Cela créera les fichiers suivants dans votre app / pages dossier:

    page de contact / page de contact.html page de contact / page de contact.ts page de contact / page de contact.scss

    Chaque fichier contient également du code standard:

       contactPage    

    Cela sert également de guide aux nouveaux développeurs afin qu'ils sachent quelles sont les meilleures pratiques pour structurer leur code. Voici le code TypeScript généré qui gère la logique de la page ci-dessus:

    //contact-page.js import Component from '@ angular / core'; importer NavController, NavParams de 'ionic-angular'; / * Classe générée pour la page ContactPage. Voir http://ionicframework.com/docs/v2/components/#navigation pour plus d'informations sur les pages ioniques et la navigation. * / @Component (sélecteur: 'page-contact-page', templateUrl: 'contact-page.html') classe d'exportation ContactPagePage constructeur (navCtrl publique: NavController, navParams publique: NavParams)  ionViewDidLoad () console .log ('ionViewDidLoad ContactPagePage'); 

    Rapport d'erreur

    Ionic 2 est maintenant livré avec un outil de rapport d'erreur pour le front-end. Cela signifie que chaque fois qu'il y a une erreur dans votre code, Ionic ouvrira une fenêtre modale directement dans l'aperçu de l'application. Cela permet aux développeurs de s’informer facilement sur les erreurs commises dans l’application.. 

    Scripts d'applications ioniques

    Ionic App Scripts est une collection de scripts de construction pour les projets Ionic. Auparavant, Ionic utilisait Gulp pour gérer son processus de construction.. 

    Ionic 2 est livré avec quelques-uns de ces scripts pour faciliter l'exécution des tâches de développement courantes. Cela inclut des opérations telles que la transcription du code TypeScript vers ES5, la présentation de l'application à des fins de test dans le navigateur ou son exécution sur un périphérique spécifique..

    Vous pouvez trouver les scripts par défaut dans le projet package.json fichier:

    "scripts": "clean": "ionic-app-scripts clean", "build": "ionic-app-scripts build", "ionic: build": "ionic-app-scripts build", "ionic: serve ":" ionic-app-scripts serve ",

    Nouveaux composants

    Les composants sont les blocs de construction de l'interface utilisateur dans Ionic. Les exemples incluent les boutons, les cartes, les listes et les champs de saisie. Beaucoup de nouveaux composants ont été ajoutés à Ionic 2 et, dans cette section, nous en examinerons quelques-uns.. 

    Les diapositives

    Si vous souhaitez que votre application dispose d'une vue d'ensemble pour les utilisateurs novices, le composant Diapositives facilite sa création. Ce composant vous permet de créer des mises en page basées sur des pages que l'utilisateur peut parcourir pour lire tout ce qui concerne votre application.. 

     

    Feuille d'action

    Les feuilles d'action sont des menus qui partent du bas de l'écran. Une feuille d'actions apparaît sur la couche supérieure de l'écran. Vous devez donc la supprimer en appuyant sur les espaces ou sélectionner une option dans le menu. Ceci est couramment utilisé pour les confirmations telles que lorsque vous supprimez un fichier sur votre appareil iOS.. 

     

    Des segments

    Les segments sont comme des onglets. Ils sont utilisés pour regrouper le contenu associé de sorte que l'utilisateur ne puisse voir que le contenu du segment actuellement sélectionné. Les segments sont couramment utilisés avec des listes pour filtrer les éléments associés.

     

    Pain grillé

    Les toasts sont la version subtile des alertes. Ils sont couramment utilisés pour informer l'utilisateur que quelque chose s'est passé qui ne nécessite aucune action de la part de l'utilisateur. Ils sont souvent affichés en haut ou en bas de la page afin de ne pas interférer avec le contenu affiché. Ils disparaissent également après un nombre spécifié de secondes.

     

    Barre d'outils

    Une barre d'outils est utilisée en tant que conteneur d'informations et d'actions situées dans l'en-tête ou le pied de page de l'application. Par exemple, le titre de l'écran actuel, les boutons, les champs de recherche et les segments sont souvent contenus dans une barre d'outils..

     

    Date et heure

    Le composant DateTime est utilisé pour afficher une interface utilisateur permettant de sélectionner des dates et des heures. L’UI est similaire à celle générée lors de l’utilisation de la datetime-local élément, la seule différence étant que ce composant est livré avec une API JavaScript facile à utiliser. Auparavant, Ionic n'avait pas de composant pour travailler avec les dates et les heures. Vous deviez soit utiliser le sélecteur de date natif du navigateur, soit installer un plugin. 

     

    Boutons d'action flottants

    Les boutons d'action flottante (FAB) sont des boutons qui sont fixés dans une zone spécifique de l'écran. Si vous avez déjà utilisé l'application Gmail, le bouton permettant de composer un nouveau message est un bouton d'action flottant. Ils ne sont pas limités à une seule action car ils peuvent être développés pour afficher d'autres boutons flottants lorsque vous appuyez dessus..

     

    Pour plus d'informations sur les nouveaux composants, consultez la documentation sur les composants..

    Nouvelles fonctionnalités et améliorations

    Ionic 2 est également doté de nouvelles fonctionnalités et améliorations. Celles-ci sont principalement dues à sa transition vers Angular 2 et TypeScript.  

    API d'animations Web

    L'un des avantages du passage à Angular 2 est le nouveau système d'animation Angular, construit sur le dessus de l'API Web Animations. Notez que l'API Web Animations n'est pas prise en charge par tous les navigateurs. C'est pourquoi vous devez utiliser Crosswalk pour installer un navigateur pris en charge avec votre application. Le seul inconvénient est que la taille de l'installation sera plus grande. Une autre option est d'utiliser un polyfill.

    Performance

    Les applications créées avec Ionic 2 sont plus vives que celles créées avec Ionic 1. Voici pourquoi:

    • Angulaire 2: La manipulation du DOM et les performances de JavaScript se sont beaucoup améliorées dans Angular 2. Vous pouvez consulter ce tableau si vous souhaitez en savoir plus sur les détails. Angular 2 présente un autre avantage: les modèles de compilation en avance sont précompilés à l'aide d'un outil de construction au lieu d'être compilés au fur et à mesure que l'application s'exécute dans le navigateur. Cela accélère l’initialisation de l’application car il n’est plus nécessaire de compiler les modèles à la volée..
    • Défilement natif: Ionic n'utilise plus le défilement JavaScript. Au lieu de cela, il utilise maintenant le défilement natif pour les WebViews pris en charge. Il est également maintenant activé sur toutes les plateformes (au lieu de l’être uniquement sur Android dans Ionic 1). Outre le défilement natif, il existe également le défilement virtuel, qui permet de faire défiler une très grande liste d’articles avec très peu de perte de performances. Ces deux modifications contribuent à une performance de défilement plus fluide.
    • Travailleurs Web: Les travailleurs Web vous permettent d'exécuter des scripts en arrière-plan, isolés du thread qui exécute la page Web. Ionic 2 implémente les travailleurs Web à travers leur ion-img composant. Utiliser ce composant au lieu de la norme img element vous permet de déléguer les requêtes HTTP pour la récupération des images à un Web Worker. Cela rend le chargement des images plus vif, en particulier dans les grandes listes. le ion-img Le composant gère également le chargement différé, qui demandera et restituera l'image lorsqu'elle deviendra visible dans la fenêtre de l'utilisateur..

    Natif ionique

    Ionic Native est l’équivalent de ngCordova pour Ionic 2. Ils agissent tous les deux comme des wrappers permettant aux plug-ins Cordova d’implémenter des fonctionnalités natives (par exemple, Camera, GeoLocation). Vous pouvez même utiliser Ionic Native dans votre application Ionic 1 si vous le souhaitez. La principale différence est qu'Ionic Native vous permet d'écrire votre code en utilisant les fonctionnalités ES6 et la syntaxe TypeScript. Cela facilite le travail dans Ionic 2 puisqu'il utilise déjà TypeScript par défaut. Voici un exemple de mise en œuvre du plugin Cordova Camera dans ngCordova:

    $ cordovaCamera.getPicture (quality: 50). then (function (imageData) var image = "data: image / jpeg; base64," + imageData;, function (err) );

    Et voici comment cela se fait avec Ionic Native:

    importer Caméra de 'ionic-native'; Camera.getPicture (options) .then ((imageData) => let base64Image = 'data: image / jpeg; base64,' + imageData;, (err) => );

    Documentation

    La documentation s'est beaucoup améliorée. J'aime particulièrement le fait qu'il existe maintenant des aperçus différents pour chaque composant sur chaque plate-forme. Cela donne aux développeurs une très bonne idée de l'apparence de leur application. Tout cela sans que le développeur n’écrive une seule ligne de code! 

    Si vous utilisez Ionic 2?

    Au moment de la rédaction de cet article, Ionic 2 est sorti. Cela signifie qu'il est prêt à être utilisé pour les applications de production. Compte tenu de toutes les nouvelles fonctionnalités, outils et avantages fournis par Angular 2 et TypeScript, la seule chose qui vous empêchera d’utiliser Ionic 2 est le statut de votre projet..

    Si vous ne faites que commencer un nouveau projet, vous pouvez toujours utiliser Ionic 1 si vos coéquipiers et vous-même n’êtes qu’à connaître Angular 1 et si votre projet doit être terminé dès que possible. Mais si vous avez suffisamment de temps pour le projet, vous devriez envisager d’utiliser Ionic 2. Il faudra un peu d’apprentissage, et vous rencontrerez également des problèmes, car il n’est pas aussi éprouvant que Ionic 1, mais c’est Cela en vaut la peine en raison des nouvelles fonctionnalités et améliorations de Ionic 2.

    Si vous avez déjà commencé votre projet actuel avec Ionic 1, vous voudrez probablement vous en tenir à Ionic 1 et éviter une réécriture majeure. Ne vous préoccupez pas du support, des améliorations et des correctifs de bogues pour Ionic 1-Ionic Les développeurs se sont engagés depuis longtemps à prendre en charge Ionic 1. Combien de temps exactement n'est pas clair. À tout le moins, il sera pris en charge pendant quelques années après la sortie de la version stable d'Ionic 2. Mais nous devons également garder à l'esprit qu'Ionic est un projet open source avec plus de 200 contributeurs. Donc, tant que les gens continuent à l'utiliser, on peut toujours s'attendre à une forme de soutien de la part de la communauté..

    Conclusion

    C'est tout! Dans cet article, vous avez tout appris sur Ionic 2. Plus précisément, vous avez découvert les différences significatives entre Ionic 2 et son prédécesseur. Nous avons également examiné les nouvelles fonctionnalités ajoutées à Ionic 2 et déterminer si vous devriez l’utiliser pour vos projets futurs ou non. Dans un prochain tutoriel, nous allons mettre ces connaissances en pratique en créant une application Ionic 2. Restez à l'écoute!

    Si vous souhaitez en savoir plus sur Ionic 2, n’oubliez pas de consulter les ressources suivantes:

    • Génial ionique 2
    • Documentation ionique

    Et bien sûr, nous avons un cours approfondi sur Ionic 2 que vous pouvez suivre, ici même sur Envato Tuts+!