VIPER-Architecture for iOS project con semplice esempio dimostrativo.

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.