VIPER-Architektur für iOS-Projekt mit einfachem Demo-Beispiel.

Im Projekt verwendete REST-API

REST-APIs werden häufig in mobilen Anwendungen, Social-Networking-Websites, Mashup-Tools und automatisierten Geschäftsprozessen verwendet. Der REST-Stil betont, dass die Interaktion zwischen Clients und Diensten durch eine begrenzte Anzahl von Operationen verbessert wird. Über den unten genannten Link versuchen wir, die json-Daten abzurufen.

Screen 1- Notice-Module: Wenn Sie die App öffnen, erhalten Sie das Ergebnis der Benachrichtigungsliste, die Notice-Title, Notice-Brief, Notice-Filesource enthält, die mit Alamofire unter Verwendung dieser Notice-Api abgerufen wird.

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

Bildschirm 2-Film-Modul: Wenn Sie auf ein Element der Tabellenliste klicken, werden Sie zu einem anderen Movie-View-Controller weitergeleitet, der Bild, Titel und Kurzbeschreibung enthält, die über Alamofire mit dieser Movie-API abgerufen werden.

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

Podfile:

In das Podfile haben wir Alamofire zum Aufruf von Rest-Api’s, AlamofireImage zum Laden von Bildern in die TableView und AlamofireObjectMapper zum Mappen des Modells oder der Entität eingebunden.

AppConstants.swift

NoticeModel.swift

Die Entitätsschicht stellt ein Modell zur Verfügung, das der Interaktor verwendet, um Objekte aus den abgerufenen Daten zu erstellen. Die Entität ist wahrscheinlich das einfachste Element innerhalb einer VIPER-Struktur. Wichtig ist, dass sich die Entitätsschicht von der Datenzugriffsschicht unterscheidet, die vom Interaktor bearbeitet werden sollte. Hier verwenden wir Object Mapper, um das Antwort-JSON-Objekt und das MODEL-Objekt zu mappen.

NoticeProtocol.swift

Wir verwenden Protokolle, um die Methoden zu definieren, die eine Modulkomponente von anderen Komponenten desselben Moduls aufrufen kann. Einfach gesagt, Protokolle werden verwendet, um zwischen den verschiedenen Schichten zu kommunizieren.

NoticePresenter.swift

NoticeInteractor.swift

Interactor ist der wichtigste integrale Abschnitt, in dem sich die gesamte Geschäftsanmeldung befindet. Wir erstellen eine Instanz von InteractorToPresenterProtocol, um die Erfolgs- oder Fehlerantwort, die über die APIs kommt, an Presenter zu senden.

NoticeViewController.swift

NoticeViewController zeigt nur die Daten in der tableView, die über die APIs Antwort kam. Hier implementieren wir das PresenterToViewProtocol als Erweiterung, um die Daten zu empfangen, die durch den Presenter kommen. Und wir erstellen die Instanz von Presenter:ViewToPresenterProtocol für Netzwerk-API-Aufrufe.

NoticeRouter.Swift

Die Router-Schicht ist für das Wireframing der Anwendung verantwortlich, z.B. für den Wechsel zwischen den verschiedenen Bildschirmen. In diesem Projekt geschieht das Routing beim ersten Start der Anwendung. Daher wird innerhalb der AppDelegate-Funktion ‚didFinishLaunchingWithOptions‘ die createModule()-Funktion des Routers aufgerufen, die ein Modul zurückgibt. Die Klasse UIWindow zeigt dann die Ansicht dieses Moduls an.

AppDelegate.swift

In AppDelegate erstellen wir einfach die Instanz von UINavigationViewController, indem wir die NoticeViewController-Instanz übergeben und diesen UINavigationView-Controller als Root-View-Controller festlegen.

Bitte klonen oder laden Sie das gesamte Projekt von GITHUB herunter. Und zum Schluss, herzlichen Glückwunsch, Sie haben die Grundlagen von VIPER gelernt. Happy Coding. Wenn Sie diesen Artikel hilfreich finden, vergessen Sie bitte nicht, ihn zu teilen, zu empfehlen und zu beklatschen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.