投稿日:

    カテゴリー 技術 / デザイン / 制作

    「SwiftUI向けのアーキテクチャを作る」

    はじめに

    こんにちは、制作部のタムです。
    iOSアプリの開発に参画して10年が経ちます。
    今回はSwiftUIとSwiftUI向けのアーキテクチャについてお話をします。

    SwiftUIとは

    – 2019年はWWDCでSwiftUIが公開された新しい技術です。
    – Apple系プラットフォームのUI(ユーザーインターフェース)に関して、これまで以上に簡単に構築することができるUIフレームワークです。
    – SwiftUIの対応OSは、iOS13以降のデバイス、開発ツールとしてはXcode11以降が必須です。
    – SwiftUIでは、Swiftを利用してすべてのAppleプラットフォーム向けに、できるだけ少ないコードでAppを構築できます。
    1つにまとまったツールとAPIを使用するだけで、あらゆるAppleデバイス向けに優れたユーザー体験を提供できます。
    (Apple develop page : https://developer.apple.com/jp/xcode/swiftui/)

    – SwiftUIの登場により、iOSのアプリ開発が変わっていくと思います。
    – もちろん、会社の中でもSwiftUIでiOSアプリを開発に使っています。

    SwiftUI向けのアーキテクチャ

    VIPERアーキテクチャとはMVC、MVP、MVVM、Flux・・・などと同じくアーキテクチャパターンの一つです。

    「VIPER」は以下となります。
    – V :「View」は画面要素を管理するクラス。
    – I :「Interactor」は外部データの取得・更新(バックエンドからAPIで情報を取得するサーバーなど)。
    – P :「Presenter」は「View」と「Interactor」をブリッジする役目で、「Interactor」にデータ取得等の処理を依頼し、「View」に結果を返します。
    – E :「Entity」はアプリのデータモデルです。
    – R :「Router」は画面遷移を担います。

    次の記事では、Viewの実装から画面遷移までを行う処理をSwiftUIアプリに対応させる方法についてVIPERアーキテクチャを使って説明します。
    VIPERアーキテクチャの例 – アプリの入り口