VIPER-arkitektur för iOS-projekt med enkelt demoexempel.

Rest API som används i projektet

REST API:er används ofta i mobilapplikationer, webbplatser för sociala nätverk, mashup-verktyg och automatiserade affärsprocesser. REST-stilen betonar att interaktionen mellan klienter och tjänster förbättras genom att ha ett begränsat antal operationer. Med hjälp av den här länken som nämns nedan försöker vi hämta json-data.

Screen 1- Notice-Module: När du öppnar appen kommer du att få resultatet av notislistan som innehåller notice-title, notice-brief, notice-filesource som hämtas med Alamofire med hjälp av detta notice-api.

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

Screen 2- Movie-Module: Om du klickar på någon av punkterna i listan kommer du till en annan film-view-controller som innehåller bild, titel och kortfattad information som hämtas med Alamofire med hjälp av detta movie-api.

Movie-Module-API: ”Det är en film-modul som är en del av ett API som innehåller en bild, en titel och en kortfattad information: https://api.myjson.com/bins/1h87n6

Podfile:

I podfilen har vi inkluderat Alamofire för att anropa övriga apis, AlamofireImage för att läsa in bilder i tableView och AlamofireObjectMapper för att mappa modellen eller enheten.

AppConstants.swift

NoticeModel.swift

Entitetslagret tillhandahåller en modell som interaktören använder för att skapa objekt från hämtade data. Entiteten är förmodligen det enklaste elementet i en VIPER-struktur. En viktig sak att notera är att Entity skiljer sig från Data Access Layer, som ska hanteras av Interactor. Här använder vi object mapper för att mappa svaret JSON-objektet och MODEL-objektet.

NoticeProtocol.swift

Vi använder protokoll för att definiera de metoder som en modulkomponent kan anropa från andra komponenter i samma modul. Enkelt uttryckt kan vi säga att protokoll används för att kommunicera mellan de olika lagren.

NoticePresenter.swift

NoticeInteractor.swift

Interactor är den huvudsakliga integrerade sektionen där all verksamhetsinloggning finns. Vi skapar en instans av InteractorToPresenterProtocol för att skicka framgångs- eller felsvaret som kom via API:erna till Presenter.

NoticeViewController.swift

NoticeViewController visar endast data i tableView som kom via API-svaret. Här implementerar vi PresenterToViewProtocol som ett tillägg för att ta emot de data som kom via presentatorn. Och vi skapar en instans av presenter:ViewToPresenterProtocol för nätverks-API-samtal.

NoticeRouter.Swift

Routerskiktet är ansvarigt för wireframing av applikationen, t.ex. för att byta mellan de olika skärmarna. I det här projektet sker routing när appen startas första gången. Så inuti AppDelegate’s ”didFinishLaunchingWithOptions” anropas routerns funktion createModule() som returnerar en modul. UIWindow-klassen visar sedan visningen av den modulen.

AppDelegate.swift

I AppDelegate skapar vi bara en instans av UINavigationViewController genom att överlämna instansen av NoticeViewController och ställa in den här UINavigationView Controllern som rotvyns controller.

Klona eller ladda ner hela projektet från GITHUB. Och slutligen, grattis du har lärt dig grunderna i VIPER. Lycka till med kodningen. Om du tycker att den här artikeln är användbar, glöm inte att dela, rekommendera och klappa.

Lämna ett svar

Din e-postadress kommer inte publiceras.