VIPER-Arhitectură pentru proiectul iOS cu un exemplu demonstrativ simplu.

Rest API utilizat în proiect

REST API este adesea utilizat în aplicații mobile, site-uri web de rețele sociale, instrumente de mashup și procese de afaceri automatizate. Stilul REST pune accentul pe faptul că interacțiunile dintre clienți și servicii sunt îmbunătățite prin existența unui număr limitat de operații. Folosind acest link care sunt menționate mai jos, încercăm să preluăm datele json.

Screen 1- Notice-Module: Când deschideți aplicația veți obține rezultatul listei de notificări care conține notice-title, notice-brief, notice-filesource care este preluat cu ajutorul Alamofire folosind acest notice-api.

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

Screen 2- Movie-Module: Dacă faceți clic pe oricare dintre elementele din lista tabelului, veți fi împinși către un alt movie-view-controller care conține imaginea, titlul și rezumatul care este preluat prin Alamofire folosind acest movie-api.

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

Podfile:

În podfile am inclus Alamofire pentru a apela rest apis, AlamofireImage pentru a încărca imagini în tableView și AlamofireObjectMapper pentru a cartografia modelul sau entitatea.

AppConstants.swift

NoticeModel.swift

Stratul de entitate oferă un model pe care interactorul îl folosește pentru a crea obiecte din datele preluate. Entitatea este probabil cel mai simplu element din cadrul unei structuri VIPER. Un lucru important de observat este că Entitatea este diferită de stratul de acces la date, care ar trebui să fie gestionat de interactor. Aici, folosim mapperul de obiecte pentru a cartografia obiectul JSON de răspuns și obiectul MODEL.

NoticeProtocol.swift

Utilizăm protocoale pentru a defini metodele pe care o componentă de modul le poate apela de la alte componente din același modul. Pur și simplu putem spune că protocoalele sunt folosite pentru a comunica între diferitele straturi .

NoticePresenter.swift

NoticeInteractor.swift

Interactorul este secțiunea principală integrală în care rezidă toate datele de conectare a activității. Creăm o instanță a InteractorToPresenterProtocol pentru a trimite răspunsul de succes sau de eroare venit prin API-uri către Presenter.

NoticeViewController.swift

NoticeViewController afișează doar datele din tableView care au venit prin răspunsul API-urilor. Aici implementăm PresenterToViewProtocol ca extensie pentru a primi datele venite prin intermediul prezentatorului. Și creăm instanța de presenter:ViewToPresenterProtocol pentru apelurile API-urilor de rețea.

NoticeRouter.Swift

Capacul router este responsabil pentru structurarea aplicației, cum ar fi schimbarea între diferitele ecrane. În acest proiect, rutarea se întâmplă atunci când aplicația se lansează pentru prima dată. Astfel, în cadrul funcției „didFinishLaunchingWithOptions” a AppDelegate este apelată funcția createModule() a routerului, care returnează un modul. Clasa UIWindow afișează apoi vizualizarea acelui modul.

AppDelegate.swift

În AppDelegate, trebuie doar să creăm o instanță a UINavigationViewController prin trecerea instanței NoticeViewController și să setăm acest controler UINavigationView ca și controler de vizualizare rădăcină.

Vă rugăm să clonați sau să descărcați întregul proiect de pe GITHUB. Și în final, felicitări că ați învățat elementele de bază ale VIPER. Codare fericită. Dacă considerați că acest articol este util, vă rugăm să nu uitați să distribuiți, să recomandați și să aplaudați.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.