Fermer

avril 4, 2019

Comment créer une application de presse avec Ionic 4 & Angular –


Dans ce didacticiel, nous utiliserons Ionic 4 pour créer une application de presse utilisant une API de nouvelles tierce .

Ionic 4 est la dernière version de Ionic, un framework mobile. construit à l'origine sur Cordova et Angular. Ionic permet aux utilisateurs de créer des applications mobiles hybrides avec HTML, CSS et JavaScript et les technologies Web associées.

Ce qui fait de Ionic 4 la meilleure version à ce jour, c’est qu’elle est désormais agnostique en matière de framework. Cela signifie qu’elle n’est plus dépendante d’Annular et que vous pourrez l’utiliser avec n’importe quel framework ou bibliothèque que vous connaissez, ou en JavaScript simple.

Mais au moment de la rédaction de ce document, Ionic CLI ne prend en charge que la génération. Les projets ioniques basés sur Angular, nous allons donc utiliser un projet Angular / Ionic pour construire notre application de nouvelles.

Voir une version hébergée de l'application que nous allons créer et récupérer le code source de ce référentiel GitHub .

Conditions préalables

Commençons par les conditions préalables. vous devez pouvoir suivre ce didacticiel confortablement.

  • Node.js et npm doivent être installés sur votre ordinateur de développement. Si ce n’est pas le cas, la solution la plus simple consiste à consulter le site Web officiel et à récupérer les fichiers binaires de votre système. Node.js n'est pas nécessaire pour Ionic, mais pour Ionic CLI (et Angular CLI dans les coulisses), qui est l'outil que nous utiliserons pour générer des projets Ionic.
  • Nous utiliserons Ionic avec Angular, basé sur TypeScript, vous devez donc vous familiariser avec les concepts de base de TypeScript.

Installation d'Ionic CLI 4

Ionic CLI 4 est la dernière version de CLI. Ouvrez un terminal et exécutez la commande suivante pour l'installer sur votre système:

 $ npm install -g @ ionic / cli

Veuillez noter que vous devrez peut-être ajouter sudo avant votre commande pour installer le paquet globalement si vous utilisez un système Debian ou macOS. Pour Windows, si vous rencontrez des erreurs d'autorisation, vous pouvez utiliser une invite de commande avec un accès administrateur. Sur tous les systèmes, vous pouvez éviter les erreurs d’autorisation npm en réinstallant npm avec un gestionnaire de version de noeud (recommandé) ou en modifiant manuellement le répertoire par défaut de npm. Voir les documents .

Vous pouvez ensuite générer un projet basé sur Angular en exécutant la commande suivante:

 $ ionic start

La CLI vous demandera de manière interactive les informations nécessaires concernant votre projet, telles que le nom de (entrez newsapp ou le nom de votre choix) et le modèle de départ (choisissez ] sidemenu qui vous donnera un projet de départ avec un menu latéral et une navigation dans la boîte)

Appuyez ensuite sur Entrez pour indiquer à la CLI de commencer à générer les fichiers et d’installer les dépendances à partir de npm .

 Ionic CLI

Enfin, la CLI vous demande si vous souhaitez Installer le SDK gratuit Ionic Appflow et connecter votre application? (Y / n) . Vous pouvez taper n si vous ne souhaitez pas intégrer les services cloud proposés par Ionic.

Appflow est une plate-forme d’intégration et de déploiement continus pour les développeurs Ionic. Appflow aide les développeurs à créer et à expédier leurs applications iOS, Android et Web plus rapidement que jamais. Pour plus d'informations sur Appflow, reportez-vous aux documents officiels .

Ensuite, vous pouvez accéder au dossier racine de votre projet et exécuter la commande suivante pour démarrer le serveur de développement Live-Reload:

 $ cd ./newsapp
$ service ionique

Votre application sera disponible à partir de l'adresse http: // localhost: 8100 .

Voici une capture d'écran de l'application:

 Exemple d'application ionique

Vous pouvez voir que nous disposons déjà d'une application de démarrage assez décente sans faire encore de développement. Apportons quelques modifications à notre projet.

Le projet comporte déjà deux pages – page principale et liste . Quittez la première page et supprimez la page list .

Commencez par supprimer le dossier src / app / list . Ensuite, ouvrez le fichier src / app / app-routing.module.ts et supprimez l'entrée de la route pour la page de liste:

 const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    loadChildren: './home/home.module#HomePageModule'
  },
  {
    path: 'list',
    loadChildren: './list/list.module#ListPageModule'
  }
];

Nous avons trois routes, une pour le chemin vide qui redirige vers la route / home la route / home qui affiche la page d'accueil et la / list itinéraire qui affiche la page de liste. Vous devez simplement supprimer le dernier objet.

Vous devez également supprimer le lien de la page de liste du menu latéral. Ouvrez le fichier src / app / app.component.ts . Localisez le tableau appPages défini dans le composant:

 public appPages = [
    {
      title: 'Home',
      url: '/home',
      icon: 'home'
    },
    {
      title: 'List',
      url: '/list',
      icon: 'list'
    }
  ];

Supprimez simplement le deuxième objet: {titre: 'Liste', url: '/ list', icône: 'liste'} .

Créons maintenant une page de sujet pour notre application. . Dans votre terminal, exécutez la commande suivante:

 $ ionic gener page à propos de

Cette commande générera un dossier src / app / about avec un tas de fichiers, et mettra à jour le fichier src / app / app-routing.module.ts à inclure une route pour la page générée:

 import {NgModule} from '@ angular / core';
importer {Routes, RouterModule} depuis '@ angular / router';

routes constantes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    loadChildren: './home/home.module#HomePageModule'
  },
  { path: 'about', loadChildren: './about/about.module#AboutPageModule' }
];

@NgModule ({
  importations: [RouterModule.forRoot(routes)],
  exportations: [RouterModule]
})
classe d'exportation AppRoutingModule {}

Ajoutons un lien vers la page à propos de dans le menu latéral. Ouvrez le fichier src / app / app.component.ts et mettez à jour le tableau appPages :

 public appPages = [
    {
      title: 'Home',
      url: '/home',
      icon: 'home'
    },
    {
      title: 'About',
      url: '/about',
      icon: 'help-circle-outline'
    }
  ];

Voici une capture d'écran du menu:

 Menu ionique

Ouvrez ensuite le src / app / about / about.page.html . ajoutez une icône de menu à la barre d'outils de la page, ce qui permet aux utilisateurs d'ouvrir le menu latéral:


  
    
      
    
    
      
    
  





 Ionic 4 Angular

Ajoutons maintenant quelques thèmes à notre interface utilisateur d'application.

Ouvrez le fichier src / app / about / about.page.html et une primaire. couleur dans la barre d’outils du menu et une couleur sombre dans la section de contenu:


  
    
      
    
    
      
    
  



Ceci est une application de nouvelles construite avec Ionic 4 et l'API News

Voici un aperçu de la page:

 Ionic 4 Angular

Ensuite, modélisons la page d’accueil. Ouvrez le fichier src / app / home / home.page.html et remplacez son contenu par le suivant:


  
    
      
    
    
       Accueil
    
  



    
      
         Bienvenue sur notre application de presse 
      
      
        

Profitez des dernières nouvelles de TechCrunch.         

               
    

Ouvrez ensuite le fichier src / app / home / home.page.scss et ajoutez:

 ion-card {
  --background: # 021b46;
  --color: #fff;
}

 Ionic 4 Angular TechCrunch

Ouvrez également le fichier src / app / app.component.html et ajoutez une couleur primaire à la barre de menus:

        
          . Menu 
        

 Ionic 4 Angular menu

Obtenir des données de nouvelles

Voyons maintenant comment récupérer des données de nouvelles à partir de l'API de nouvelles tierces disponible dans NewsAPI.org/ qui propose un plan gratuit pour l'open source et les projets de développement.

Vous devez d'abord vous diriger vers ici pour vous enregistrer pour une clé API:

 La ​​clé API Ionic 4 Angular News

Remplissez le formulaire et envoyez-le. Vous devriez être redirigé vers la page où vous pouvez copier votre clé API:

 Clé API Ionic 4 Angular

Ajout d’un service

Créons ensuite un service qui se chargera de récupérer les données du API de nouvelles. Dans votre terminal, exécutez la commande suivante:

 $ ionic gener service api

Ouvrez ensuite le fichier src / app / app.module.ts puis importez HttpClientModule et ajoutez-le au tableau imports :

 / / [...]
importer {HttpClientModule} de '@ angular / common / http';

@NgModule ({
  déclarations: [AppComponent],
  entryComponents: [],
  importations: [
    // [...]
    HttpClientModule,
  ],
  // [...]
})
classe d'exportation AppModule {}

Ouvrez ensuite le fichier src / app / api.service.ts et injectez HttpClient via le constructeur de service:

 import {Injectable} de '@ angular / core ';
importer {HttpClient} à partir de '@ angular / common / http';

@Injectable ({
  FourniDans: 'root'
})
classe d'exportation ApiService {

  constructeur (privé httpClient: HttpClient) {}
}

Ensuite, définissez une variable API_KEY qui contiendra votre clé API à partir de l'API News:

classe d'exportation ApiService {
  API_KEY = 'VOTRE_API_KEY';

Enfin, ajoutez une méthode qui envoie une demande GET à un noeud final pour TechCrunch News:

 getNews () {
    return this.httpClient.get (`https://newsapi.org/v2/top-headlines?sources=techcrunch&apiKey=$ {this.API_KEY}`);
  }

C'est tout ce que nous devons ajouter pour le service.

Ouvrez le fichier src / app / home / home.page.ts et importez-le, puis injectez-le, ApiService via le constructeur du composant:

 import {Component} from '@ angular / core';
importer {ApiService} depuis '../api.service';

@Composant({
  sélecteur: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
classe d'exportation HomePage {
  constructeur (private apiService: ApiService) {}
}

Ensuite, ajoutez une variable d'articles qui contiendra les nouvelles récupérées:

 export class HomePage {
  des articles;

Ajouter une méthode ionViewDidEnter () dans laquelle vous appelez la méthode getNews () de ApiService pour récupérer les informations:

 ionViewDidEnter () {

    this.apiService.getNews (). subscribe ((data) => {
      console.log (données);
      this.articles = data ['articles'];
    });
  }

Enfin, parcourons la variable articles et affichons les nouvelles sur notre page d'accueil.

Ouvrez à nouveau le fichier src / app / home / home.page.html et ajoutez le code suivant:

  
    
    
       {{article.title}} 
    
    
      

{{article.description}}       

Lire l'article complet     
  

Nous utilisons simplement la directive ngFor pour parcourir la variable articles et afficher l'image, le titre, la description et l'adresse URL de chaque article contenu dans un composant de carte.

une capture d'écran du résultat:

 Application mobile Ionic 4 Angular

Vous pouvez héberger cette application sur le Web (en tant que PWA) ou la construire et la publier sur les magasins d'applications . Vous pouvez trouver une version en direct de ce lien et du code source dans ce référentiel GitHub .

Conclusion

Nous avons créé une application de nouvelles à partir de rien avec Ionic 4 et Angulaire. L’application a encore beaucoup à faire, alors n'hésitez pas à jouer avec elle et à l’étendre par vous-même. Par exemple, vous pouvez ajouter des sources autres que TechCrunch et permettre à l'utilisateur de sélectionner la source des nouvelles.




Source link