VIPER-Architecture for iOS project with simple demo example.

Rest API used in the project

REST API は、モバイルアプリケーション、ソーシャルネットワークの Web サイト、マッシュアップ ツール、自動ビジネス プロセスで頻繁に使用されます。 REST スタイルでは、クライアントとサービス間のインタラクションは、限られた数の操作によって強化されることが強調されています。

Screen 1- Notice-Module このリンクを使用して、私たちは json データを取得しようとしています。 アプリを開くと、通知タイトル、通知概要、通知ファイルソースが含まれる通知リスト結果が表示されます。 https://api.myjson.com/bins/1bsqcn/

Screen 2- Movie-Module: テーブルリストの項目をクリックすると、このムービー API を使用して Alamofire で取得した画像、タイトル、概要を含む別のムービービューコントローラにプッシュされます。 https://api.myjson.com/bins/1h87n6

Podfile:

Podfileには、残りのAPIを呼び出すAlamofire、テーブルビューに画像をロードするAlamofireImage、モデルやエンティティをマッピングするAlamofireObjectMapperが含まれています。

AppConstants.swift

NoticeModel.swift

Entity layerは、取得したデータからオブジェクトを生成するのにインタラクタが使用するモデルを提供しています。 EntityはVIPER構造体の中で最もシンプルな要素です。 重要なことは、エンティティはデータアクセス層とは異なり、インターアクターが扱うべきものであるということです。 ここでは、オブジェクトマッパーを使用して、レスポンスのJSONオブジェクトとMODELオブジェクトをマッピングします。

NoticeProtocol.swift

モジュールコンポーネントが同じモジュール上の他のコンポーネントから呼び出すことができるメソッドを定義するために、プロトコルを使用します。 簡単に言うと、プロトコルは異なるレイヤー間の通信に使われます。

NoticePresenter.swift

NoticeInteractor.swift

Interactor はすべてのビジネスログインが存在する主要な統合されたセクションです。 InteractorToPresenterProtocolのインスタンスを作成し、APIから送られてきた成功やエラーのレスポンスをPresenterに送ります。

NoticeViewController.swift

NoticeViewController にはAPIのレスポンスを受信したテーブルビューデータのみを表示します。 ここでは、拡張機能としてPresenterToViewProtocolを実装し、プレゼンターから送られてきたデータを受信するようにしています。

NoticeRouter.Swift

ルーター層は、異なる画面間の切り替えなどアプリケーションのワイヤーフレームを担当しています。 このプロジェクトでは、ルーティングはアプリが初めて起動したときに発生します。 そこで、AppDelegate の ‘didFinishLaunchingWithOptions’ 内で、ルーターの createModule() 関数が呼ばれ、モジュールが返されます。

AppDelegate.swift

AppDelegateでは、NoticeViewControllerインスタンスを渡してUINavigationViewControllerインスタンスを生成し、このUINavigationView Controllerをルートビューコントローラに設定するだけだ。 最後に、VIPERの基本を習得されたことをお祝いします。 それではまた。 もし、この記事が役に立ったなら、共有、推薦、拍手をお願いします。

コメントを残す

メールアドレスが公開されることはありません。