Vous n'êtes pas connecté. Connexion
|
|
Amosse EDOUARD > TP MVVM
TP MVVMDe $1Table des matières
ObjectifsCréer une application Android permettant de gérer des articles de presse à partir d'un web service (https://newsapi.org/) Fonctionnalités
Etape 2: Mettre en place les composants nécessaires respectant l'architecture ci-dessus.Activity principal: HomeActivity Fragments: ArticlesFragment, ArticleDetailFragment Layouts: home_activity, articles_list_fragment, articlet_detail_fraggment ViewModels: ArticlesViewModel Repository: ArticleRepository Data Source: LocalDataSource, RemoteDataSource
Activity/Fragment
Layouts
Repository Modifier le Repository en y ajoutant une méthode permettant de récupérer la liste des articles via le web service a. Créer une data class (Article) modélisant les articles ..... b. Ajouter les dépendances de Retroit //dependances retrofit c. Créer une d'interface pour modéliser les actions du web service (contenant les actions du web service) interface ArticleService { d. Créer une instance de Retroit Modifier la classe RemoteDataSource class RemoteDataSource { e. Modifier le Repository class Repository { f. Modifier le ViewModel pour récupérer la liste des articles class MyViewModel : ViewModel() { g. Modifier le fragment ArticlesFragment pour charger la liste des articles et observer les changements sur la liste des articles. class ArticlesListFragment: Fragment() { h. Pour l'instant, afficher la liste des articles dans la console. Lancer l'application et vérifier que la liste des articles est affichée dans la console. Si vous avez suivi à la lettre ce qui est décrit dans le TP, l'application crash au runtime; bon courage pour fixer cette erreur :) Kidding, il manque la permission Internet, il suffit de l'ajouter dans le Manifest. Recompiler et vérifier que la liste des articles s'affichent dans la console ! Oops, ca crash encore ! C'est normal car on lancé les requêtes HTTP sur le thread principal de l'application, ce n'est pas bien de faire ça ! Pour l'instant, on va utiliser un thread secondaire; on fera plus proprement dans la prochaine séance ! Modifier la méthode loadData du VM : fun loadData() { Etape 3: Afficher la liste des articles dans un RecyclerViewa. Créer un layout modélisant l'affichage des items dans le recycler view <?xml version="1.0" encoding="utf-8"?> b. Créer un Adapter class ArticleAdapter : RecyclerView.Adapter<ArticleAdapter.ViewHolder>() { c. Afficher les données dans le RecyclerView ..... override fun onViewCreated(view: View, savedInstanceState: Bundle?) { d. Compiler et tester !
Etape 4: Afficher le détail des articles
- Quand l'utilisateur clique sur un item de la liste, afficher la vue de détail en lui passant en paramètre l'article selectionné !
- Modifier la vue de détail pour afficher les informations de l'article selectionné.
Etape 5: On peut faire mieux :)Modifier l'interface pour la rendre un peu plus jolie ! - Utiliser les cardview pour afficher les items de la liste (https://material.io/develop/android/components/material-card-view/) - aller on va faire comme sur Google news ! - Ajouter quelques options (favori, like, share) - Enrichir la vue de détail en affichant: l'auteur de l'article (nom + photo), la source, l'image de l'article et un bouton perttant de voir le contenu complet dans un navigateur externe !
Mots clés:
|
Powered by MindTouch Deki Open Source Edition v.8.08 |