Swift 18 SwiftUI Architecture

> ar·chi·tect
? a person who is qualified to design buildings and to plan and supervise their construction.
? a person who designs hardware, software, or networking applications and services of a specified type for a business or other organization.
~ Greek arkhitektōn, from arkhi- ‘chief’ + tektōn ‘builder’.

完成されたSwiftUIアフリはhierarchical方法で組み合わせた複数のComponentで構成されます。一番基本的なSwiftUIアプリがどうやって構成するかを理解することが有用です。今度の章にはApp,Scene,View要素について勉強してみましょう。

# 18.1　SwiftUI アプリHierarchy structure
此れは簡単なSwiftUIのアプリ構造です。
![Screenshot 2023-11-02 at 1.35.06 PM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3513806/cb95fc29-45ef-1d45-07f5-45cdb5df4fbe.png)
アプリと図に説明されているAppのElementsを区別する事が必要です。mobile Deviceで　設置して実行するSoftware Application Programeを`アプリ`だと言います。今度の章にはこのアプリと写真のAppElementを全部呼び出します。混乱を避けるために完了し、設置されて実行しているアプリをApplicaitonと言う用語を使うのに対し、AppElementは`app`で指し示します。

# 18.2 App 
> Apply
? 1.make a formal application or request. /2. be applicable or relevant.
? 3. put or spread  on a surface/4. give one's full attention to a task
~  Latin applicare ‘fold, fasten to’, from ad- ‘to’ + plicare ‘to fold’.

｀App｀Objectは SwiftUI Application Structure 内で一番上位ElementでApplicaitonの実行中の各instanceのstartおよびlifecycleを処理します。
また、AppElementではApplicationのuserInterfaceを構成する多様なSceneを管理する役目をしまする*Applicationには一つのAppInstanceを含まれます。*

# 18.3 Scene
> Scene
? the place where an incident in real life or fiction occurs or occurred.
? a sequence of continuous action in a play, movie, opera, or book.
~ mid 16th century (denoting a subdivision of a play, or (a piece of) stage scenery): from Latin scena, from Greek skēnē ‘tent, stage’.

各SwiftUI Applicationには**一つ以上のScence**が含まれています。此れはapplication user interfaceのSectionまたはAreaを現れます。*IOSとWatchOSは一般的にdevice画面全体*を占める窓の形をとります。反面、*MacOSおよびIpadOSで実行されるSwiftUIApplicaitonは複数*のSceneで構成される可能性があります。例えば、異なるSceneで表示するContextで該当するlayoutが含まれる事ができます。

SwiftUIにはApplicationProgramを設計する時には使用できる**前にbuildされたSceneターフが**含まれています。その中で*最も一般的なのはWindowGroupとDocumentGroupです。*SceneをGroup化して**自身なりのUserPrefrenceScene**を作る事もできます。

# 18.4 View
> view 
? the ability to see something or to be seen from a particular place.
? a particular way of considering ; typically of attractive natural scenery
~ Anglo-Norman French vieue, feminine past participle of veoir ‘see’

Viewはbutton,Label,TextFieldと同じuserInterfaceの*視覚的要素を構成する基本的なBuilding block*です。*各Sceneでは*Application User Interface Sectionを構成するViewの*hierarchicalSturctureが含まれます*。
ViewはTextViewまたはButtonと同じ*個別視覚的要素とか方のViewを管理するContainer形をとる事*ができます。例え、VStackViewはVerticalLayoutでsubViewを表示される様に設計しました。
SwiftUIと共に提供されるView**以外にも**SwiftUIApplicationを開発する*使用者定義View*を生成します。この様な使用者指定ViewはApplication ProgramのuserInterfaceよ要求事項を満たすために、該当Viewの模様および動作に対する使用者指定と共に他のViewGroupで構成されます。
![Screenshot 2023-11-03 at 4.40.14 PM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3513806/e25b4308-f357-4235-e728-687c67e07b10.png)
# 要約
Swift UI Applicationはhieracheically構成されます。この構造の一番上にはApplicationのStartわよびライフサイクル担当するAppInstanceがあります。
一つ以上のSubSceneInstanceにはApplication使用者interfaceを構成するViewInstanceのHierachyが含まれています。事ようなSceneはWindowGroupsと同じSwiftUI基本Sceneターフの中で派生するとか使用者定義で救出することができます 

IOSまたはwatchOSでApplicationは一般的に全体Displayを占める窓の形状を取る一つのSceneを含まれます。だがMacOsまたはIpadOSではApplicationProgramは複数のSceneInstanceで構成されることができますし、どど同時に表示されるとかTapInterfaceで共にGroup化される別途の窓で表示されます。