VIPER-Arkitektur til iOS-projekt med simpelt demoeksempel.

Rest API bruges i projektet

REST API’er bruges ofte i mobilapplikationer, sociale netværkswebsteder, mashup-værktøjer og automatiserede forretningsprocesser. REST-stilen lægger vægt på, at interaktioner mellem klienter og tjenester forbedres ved at have et begrænset antal operationer. Ved hjælp af dette link, der er nævnt nedenfor, forsøger vi at hente json-data.

Skærm 1- Notice-Module: Når du åbner appen, får du resultatet af notifikationslisten, der indeholder notice-title, notice-brief, notice-filesource, som hentes ved hjælp af Alamofire ved hjælp af denne notice-api.

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

Skærm 2- Movie-Module: Hvis du klikker på et af elementerne i listen i tabellen, vil du skubbe til en anden movie-view-controller, som indeholder billede, titel og brief, som er hentet ved hjælp af Alamofire ved hjælp af denne movie-api.

Movie-Module-API:

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

Podfile:

I podfilen har vi inkluderet Alamofire til at kalde rest apis, AlamofireImage til at indlæse billeder i tableView og AlamofireObjectMapper til at mappe modellen eller enheden.

AppConstants.swift

NoticeModel.swift

Entity layer giver en model, som interaktøren bruger til at skabe objekter fra de hentede data. Entity er sandsynligvis det enkleste element i en VIPER-struktur. En vigtig ting at bemærke er, at Entity er forskellig fra Data Access Layer, som skal håndteres af Interactor. Her bruger vi object mapper til at mappe svaret JSON-objektet og MODEL-objektet.

NoticeProtocol.swift

Vi bruger protokoller til at definere de metoder, som en modulkomponent kan kalde fra andre komponenter på det samme modul. Vi kan ganske enkelt sige, at protokoller bruges til at kommunikere mellem de forskellige lag .

NoticePresenter.swift

NoticeInteractor.swift

Interactoren er den vigtigste integrerede sektion, hvor al forretningslogin befinder sig. Vi opretter en instans af InteractorToPresenterProtocol for at sende succes- eller fejlsvaret kom gennem API’erne til Presenter.

NoticeViewController.swift

NoticeViewController viser kun de data i tableView, der kom gennem API-svaret. Her implementerer vi PresenterToViewProtocol som udvidelse for at modtage de data, der kom gennem præsentatoren. Og vi opretter instansen af presenter:ViewToPresenterProtocol til netværks-API-opkald.

NoticeRouter.Swift

Routerlaget er ansvarlig for wireframing af applikationen som f.eks. at skifte mellem de forskellige skærme. I dette projekt sker routing, når appen lanceres første gang. Så inde i AppDelegate’s ‘didFinishLaunchingWithOptions’ kaldes routerens createModule()-funktion, som returnerer et modul. UIWindow-klassen viser derefter visningen af dette modul.

AppDelegate.swift

I AppDelegate opretter vi blot instansen af UINavigationViewController ved at videregive NoticeViewController-instansen og indstille denne UINavigationView Controller som root view controller.

Kloner eller download venligst hele projektet fra GITHUB. Og endelig tillykke, du har lært det grundlæggende i VIPER. Happy Coding. Hvis du finder denne artikel er nyttig, så glem ikke at dele, anbefale og klappe.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.