Today, I learned: SwiftUI Basic Architecture


今日は、SWIFTUIで使用するアーキテクチャを見てみましょう.
アーキテクチャを考慮して適用する理由は、次のとおりです.

  • コードの可読性を向上させる.

  • コードは変更しやすい.

  • 既存のコードに何かを簡単に追加できます.

  • コードのテストが容易です.
    また、個人的なアーキテクチャのメリットも提供します.
  • これらを3つのキーワードにまとめると、「モジュール性」、「拡張性」、「可読性」にまとめることができます.
    これは概念的な説明ではなく,SWIFTUIにどのように適用するかについての具体的な説明である.

    1. Problem


    私が考えている問題は次のように定義されています.
    SWIFTUIではどのように構造を分けますか?
    だから私は最小の再分割できない単位から始めたいと思っています.(類原子)
    SWIFTUIでアプリケーションを構成する場合、おおよそ3種類考えられます.(特定のパターンが適用されていない場合)
  • 画面View
  • データを計算するObservableObject(例えば、ViewModel)
  • データを定義するData Object
  • 問題を定義し、問題を解決する方法を指定した以上、コードを作成します.

    2. Solution


    Viewのコード.
    struct TodoListView: View {
        @StateObject private var todoObservableObject = TodoObservableObject()
        
        var body: some View {
            VStack {
                List(todoObservableObject.taskList) { task in
                    Text(task.name)
                        .foregroundColor(.black)
                        .font(.title2)
                }
            }
        }
    }
    観測対象コード.
    class TodoObservableObject: ObservableObject {
        @Published var taskList: [Task] = []
        
        init() {
            self.getTaskList()
        }
        
        func getTaskList() {
            taskList = [
                Task(name: "아침 5시에 기상"),
                Task(name: "이불정리"),
                Task(name: "아침 조깅"),
                Task(name: "TIL 작성")
            ]
        }
    }
    DataObjectコード.
    struct Task: Identifiable {
        let id = UUID()
        var name: String
    }
    フォルダ構成.

    3.整理


    ObservableObjectではなくView Modelのみの名前を付ける場合は、MVVMアーキテクチャモードとして構成されます.しかし、今回はobservableObjectをobservableObjectと命名し、最小の構成部品単位を理解しました.ここでコビネを編み始めたら、とても綺麗になるんでしょうね?^^
  • V: View/OO: ObservableObject/DO: DataObject
  • SWIFTUIの最小単位の3つのオブジェクト.
  • UIKITでは、Vとコントローラの機能はMVCとは異なる.
  • 読んでくれてありがとう.