VIPER-Architecture pour projet iOS avec exemple de démonstration simple.

Rest API utilisée dans le projet

Les API REST sont souvent utilisées dans les applications mobiles, les sites Web de réseautage social, les outils de mashup et les processus commerciaux automatisés. Le style REST met l’accent sur le fait que les interactions entre les clients et les services sont améliorées en ayant un nombre limité d’opérations. En utilisant ce lien qui sont mentionnés ci-dessous, nous essayons de récupérer les données json.

Écran 1- Notice-Module : Lorsque vous ouvrez l’application, vous obtenez le résultat de la liste des avis contenant notice-title, notice-brief, notice-filesource qui est récupéré par Alamofire en utilisant cette notice-api.

Notice-Module-API : https://api.myjson.com/bins/1bsqcn/

Module d’écran 2- Film : Si vous cliquez sur l’un des éléments de la liste de la table, vous pousserez vers un autre movie-view-controller qui contient l’image, le titre et la brève qui est récupérée par Alamofire en utilisant ce movie-api.

Movie-Module-API : https://api.myjson.com/bins/1h87n6

Podfile:

Dans le podfile nous avons inclus l’Alamofire pour appeler les rest apis, l’AlamofireImage pour charger les images dans le tableView et l’AlamofireObjectMapper pour mapper le modèle ou l’entité.

AppConstants.swift

NoticeModel.swift

La couche entité fournit un modèle que l’interacteur utilise pour créer des objets à partir des données récupérées. L’entité est probablement l’élément le plus simple à l’intérieur d’une structure VIPER. Une chose importante à noter est que l’Entité est différente de la couche d’accès aux données, qui doit être gérée par l’Interacteur. Ici, nous utilisons un mappeur d’objets pour mapper l’objet JSON de la réponse et l’objet MODEL.

NoticeProtocol.swift

Nous utilisons des protocoles pour définir les méthodes qu’un composant de module peut appeler depuis d’autres composants sur le même module. Simplement, nous pouvons dire que les protocoles sont utilisés pour communiquer entre les différentes couches .

NoticePresenter.swift

NoticeInteractor.swift

L’Interactor est la section intégrale principale où réside tout le login métier. Nous créons une instance de InteractorToPresenterProtocol pour envoyer la réponse de succès ou d’erreur est venu par les APIs au Presenter.

NoticeViewController.swift

NoticeViewController montre seulement les données dans le tableView qui est venu par la réponse des APIs. Ici, nous implémentons le PresenterToViewProtocol comme extension pour recevoir les données provenant du presenter. Et nous créons l’instance de presenter:ViewToPresenterProtocol pour les appels d’APIs réseau.

NoticeRouter.Swift

La couche de routage est responsable du wireframing de l’application comme le changement entre les différents écrans. Dans ce projet, le routage se produit lors du premier lancement de l’application. Ainsi, à l’intérieur de la fonction ‘didFinishLaunchingWithOptions’ de AppDelegate, la fonction createModule() du routeur est appelée et renvoie un module. La classe UIWindow montre alors la vue de ce module.

AppDelegate.swift

Dans AppDelegate, on crée juste l’instance de UINavigationViewController en passant l’instance de NoticeViewController et on définit ce UINavigationView Controller comme contrôleur de vue racine.

Veuillez cloner ou télécharger l’ensemble du projet sur GITHUB. Et enfin, félicitation vous avez appris les bases de VIPER. Bon codage. Si vous trouvez cet article est utile s’il vous plaît n’oubliez pas de partager, recommander et clap.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.