Rest API usato nel progetto
REST API è spesso usato in applicazioni mobili, siti web di social networking, strumenti mashup e processi di business automatizzati. Lo stile REST enfatizza che le interazioni tra i clienti e i servizi sono migliorate avendo un numero limitato di operazioni. Utilizzando questo link che sono menzionati di seguito stiamo cercando di recuperare i dati json.
Schermo 1- Avviso-Modulo: Quando si apre l’applicazione si otterrà il risultato dell’elenco degli avvisi contenente notice-title, notice-brief, notice-filesource che viene recuperato utilizzando Alamofire usando questa notice-api.
Notice-Module-API: https://api.myjson.com/bins/1bsqcn/
Screen 2- Movie-Module: Se si fa clic su uno qualsiasi degli elementi della lista della tabella si passa a un altro movie-view-controller che contiene immagine, titolo e breve che viene recuperato utilizzando Alamofire utilizzando questo movie-api.
Movie-Module-API: https://api.myjson.com/bins/1h87n6
Podfile:
Nel podfile abbiamo incluso Alamofire per chiamare rest apis, AlamofireImage per caricare le immagini nella tableView e AlamofireObjectMapper per mappare il modello o entità.
AppConstants.swift
NoticeModel.swift
Il livello Entity fornisce un modello che gli interactor usano per creare oggetti dai dati recuperati. L’entità è probabilmente l’elemento più semplice all’interno di una struttura VIPER. Una cosa importante da notare è che l’Entity è diversa dal Data Access Layer, che dovrebbe essere gestito dall’Interactor. Qui, usiamo l’object mapper per mappare l’oggetto JSON della risposta e l’oggetto MODEL.
NoticeProtocol.swift
Utilizziamo i protocolli per definire i metodi che un componente del modulo può chiamare da altri componenti dello stesso modulo. Semplicemente possiamo dire che i protocolli sono usati per comunicare tra i diversi livelli.
NoticePresenter.swift
NoticeInteractor.swift
Interactor è la sezione principale integrale dove risiede tutto il login aziendale. Creiamo un’istanza di InteractorToPresenterProtocol per inviare la risposta di successo o di errore arrivata attraverso le API a Presenter.
NoticeViewController.swift
NoticeViewController mostra solo i dati nella tableView che sono arrivati attraverso la risposta API. Qui implementiamo il PresenterToViewProtocol come estensione per ricevere i dati arrivati attraverso il presentatore. E creiamo l’istanza di presenter:ViewToPresenterProtocol per le chiamate API di rete.
NoticeRouter.Swift
Il livello di routing è responsabile del wireframing dell’applicazione come il cambiamento tra le diverse schermate. In questo progetto il routing avviene al primo lancio dell’applicazione. Quindi all’interno di ‘didFinishLaunchingWithOptions’ di AppDelegate viene chiamata la funzione createModule() del router che restituisce un modulo. La classe UIWindow mostra quindi la vista di quel modulo.
AppDelegate.swift
In AppDelegate, creiamo semplicemente l’istanza di UINavigationViewController passando l’istanza di NoticeViewController e impostiamo questo UINavigationView Controller come root view controller.
Per favore clona o scarica l’intero progetto da GITHUB. E infine, congratulazioni per aver imparato le basi di VIPER. Felice codifica. Se trovate questo articolo utile, non dimenticate di condividere, raccomandare e applaudire.