Skip to content

Commit

Permalink
update README
Browse files Browse the repository at this point in the history
  • Loading branch information
p-x9 committed Mar 15, 2023
1 parent fb3061f commit 2f3510f
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
43 changes: 43 additions & 0 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,49 @@ try AppContainer.standard.cleanContainer(uuid: uuid)
try AppContainer.standard.reset()
```

### 通知(Notification)
コンテナ切り替え時に通知を受け取ることができます。
厳密に、切り替え前および切り替え後に行いたい処理を追加する場合は、後述するdelegateを使用してください。

- containerWillChangeNotification
コンテナ切り替え前
- containerDidChangeNotification
コンテナ切り替え後
### 委譲(Delegate)
Delegateを使用して、コンテナの切り替え時に、任意の処理を追加することができます。
以下の順で処置が行われます。

``` swift
// `activate`メソッドが呼び出される

// ↓↓↓↓↓↓↓↓↓↓


func appContainer(_ appContainer: AppContainer, willChangeTo toContainer: Container, from fromContainer: Container?) // Delegate(コンテナ切り替え前)

// ↓↓↓↓↓↓↓↓↓↓

// コンテナの切り替え処理(ライブラリ)

// ↓↓↓↓↓↓↓↓↓↓

func appContainer(_ appContainer: AppContainer, didChangeTo toContainer: Container, from fromContainer: Container?) // Delegate(コンテナ切り替え後)
```

このライブラリでは複数のdelegateを設定できるようになっています。
以下のように追加します。
```swift
AppContainer.standard.delegates.add(self) // selfがAppContainerDelegateに準拠している場合
```
弱参照で保持されており、オブジェクトが解放された場合は自動で解除されます。
もし、delegateの設定を解除したい場合は以下のように書きます。
```swift
AppContainer.standard.delegates.remove(self) // selfがAppContainerDelegateに準拠している場合
```

### AppContainerUI
AppContainerを扱うためのUIを提供しています。
SwiftUIおよびUIKitに対応しています。
#### SwiftUI
```swift
import AppContainerUI
Expand Down
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,48 @@ Specifically, the DEFAULT container will be enabled and all other AppContainer-r
try AppContainer.standard.reset()
```

### Notification
You can receive notifications when switching containers.
If you want to add additional processing to be done strictly before and after the switch, use delegate as described below.

- containerWillChangeNotification
Before container switching
- containerDidChangeNotification
After container change

### Delegate
Delegate can be used to add optional processing when switching containers.
The actions are performed in the following order.

``` swift
// the `activate` method is called

// ↓↓↓↓↓↓↓↓↓↓


func appContainer(_ appContainer: AppContainer, willChangeTo toContainer: Container, from fromContainer: Container?) // Delegate(before container switch)

// ↓↓↓↓↓↓↓↓↓↓

// Container switching process (library)

// ↓↓↓↓↓↓↓↓↓↓

func appContainer(_ appContainer: AppContainer, didChangeTo toContainer: Container, from fromContainer: Container?
```

This library allows multiple delegates to be set.
Add the following.

```swift
AppContainer.standard.delegates.add(self) // if self is AppContainerDelegate compliant
```
It is held in a weak reference and will be automatically released when the object is freed.
If you want to unset the delegate, write the following.
```swift
AppContainer.standard.delegates.remove(self) // if self conforms to AppContainerDelegate
```

### AppContainerUI
#### SwiftUI
```swift
Expand Down

0 comments on commit 2f3510f

Please sign in to comment.