iOSアプリで利用できるApple Intelligenceの機能について

:::note info
この記事は、[Fenrir Engineers](https://engineers.fenrir-inc.com/) のブログ内で投稿した記事の再掲です
:::

WWDC24で**Apple Intelligence**が発表されました。  
Apple IntelligenceとはAppleが独自で開発した人工知能システムです。文章の要約・音声認識・画像生成など、Apple Intelligenceを利用することで、AI技術を活用した便利な機能を数多く実現することができます。

Apple Intelligenceの機能はiOS 18、iPadOS 18、macOS Sequoiaで利用することができ、一部の機能はSDKとして提供されアプリと連携することができます。  
そこで、iOSアプリに組み込むことができるApple Intelligenceの機能について簡単にまとめてみました。

![AppleIntelligence.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555559/5afc2026-4770-ae33-a543-f4ea9b8afaf2.png)


# アプリと連携することができるApple Intelligenceの機能

iOS 18, iPadOS 18, macOS Sequoiaには以下の機能を利用するためのAPIがSDKに含まれており、アプリ内で利用することができます。   
(これ以外にも利用可能な機能はたくさんあると思いますが、ここではKeynoteで発表されていた内容について触れます)

- **Image Playground**
- **Writing Tools**
- **Siri**

## Image Playground

Image Playground APIを利用することで、AIを用いた画像生成の機能を簡単にアプリに取り込むことができます。以下の例のように、`.imagePlaygroundSheet()`をModifierとして呼び出すことでImage PlaygroundのViewをモーダル表示することができ、Image Playground Viewで生成した画像をアプリ内で扱えるようになります。

```swift
struct ProfileButtonView: View {

    var body: some View {
        Button {
            ...
        }
        .imagePlaygroundSheet(
            isPresented: $isImagePlaygroundPresented,
            concept: "Cat Watching Movies"
        ) { createdImageURL in
            do {
                // A place to store the new profile image.
                let finalURL = URL.documentsDirectory.appendingPathComponent("profilePicture_" + UUID().uuidString, conformingTo: fileType(createdImageURL))

                try FileManager.default.moveItem(at: createdImageURL, to: finalURL)
                createdAvatar = finalURL
            } catch {
                // Handle profile picture save error.
            }
        }
    }
}
```

![ImagePlayground.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555559/cf79fccf-0eb2-8f22-0e45-430b4714dca8.png)

※ Image Playground APIは記事執筆時点では公開されておらず、上記のコードはセッション内で登場した例になります。

## Writing Tools

Writing Toolsの機能を使うことで、入力した文章の校正や自動修正、表示中の文章の要約などを行うことができます。これらの機能は、UITextViewやWKWebViewなど標準のUIフレームワークを使っている場合、特別な対応を行わなくてもアプリ内で利用することができます。

TextViewのAPIには、Writing Toolsによる変換の開始・終了を通知するDelegateメソッドや、現在Writing Toolsによる変換が行われているかを返すプロパティが追加されます。これらを活用することで、Writing Toolsの処理中にユーザー操作をブロックしたり、入力内容のクラウド同期を文章の変換中は無効化したりできます。

```swift
func textViewWritingToolsWillBegin(_ textView: UITextView) {
    // Take necessary steps to prepare. For example, disable iCloud sync.
}

func textViewWritingToolsDidEnd(_ textView: UITextView) {
    // Take necessary steps to recover. For example, reenable iCloud sync.
}

if !textView.isWritingToolsActive {
    // Do work that needs to be avoided when Writing Tools is interacting with text view
    // For example, in the textViewDidChange callback, app may want to avoid certain things when Writing Tools is active
}
```

https://developer.apple.com/documentation/uikit/uitextviewdelegate/4436254-textviewwritingtoolswillbegin

https://developer.apple.com/documentation/uikit/uitextviewdelegate/4436253-textviewwritingtoolsdidend

https://developer.apple.com/documentation/uikit/uitextview/4436251-iswritingtoolsactive


## Siri

Apple Intelligenceにより、Siriの自然言語処理能力が大幅に向上しました。また、「これ・それ」などの代名詞も周辺のコンテキストから判断できるようになったので、今まで以上に自然な会話でSiriを利用することができます。

SiriKitやApp Intentsフレームワークを利用することで、進化したSiriをアプリに活かすことができます。Siriは複数のアプリを組み合わせたタスクを実行することにも向いているため、今後はよりシームレスなユーザー体験を実現することができるようになるでしょう。

https://developer.apple.com/documentation/sirikit/

https://developer.apple.com/documentation/appintents


# Apple Intelligence対応端末

Apple Intelligenceは、A17 Proチップを搭載したiPhone、もしくはM1以降のApple Siliconチップを搭載したiPadとMacで利用することができます。

※ 2024年6月時点では、このスペックに該当するiPhoneがiPhone 15 ProとiPhone 15 Pro Maxしかありません

![CompatibleDevice.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555559/23e921a6-9954-463f-0029-f689ddfaf238.png)



# Apple Intelligenceの利用開始時期

Apple Intelligenceは今年の秋に、iOS 18、iPadOS 18、macOS Sequoiaの一部の機能として利用できるようになります。なお、ここで提供されるApple Intelligenceはベータ版であるため、利用するためにはSiriとデバイスの言語設定を米国英語に設定する必要があります。

他の言語やプラットフォームに対応したものについては、来年にかけて追加される予定となっています。


# おわりに

Apple IntelligenceはWWDC24で発表された内容の中でも一番インパクトのあるものとなっており、Image Playground・Writing Tools・Siriなどのさまざまな機能をアプリから呼び出すことができるようになっています。ここで紹介した機能はほんの一部であり、今後Apple IntelligenceはiOSアプリのユーザー体験を大きく変えることになるでしょう。

実際に手元で動かせるようになるのはもう少し先ですが、Apple Intelligenceのベータ版が提供されたらまた色々触ってみたいと思います！


# 参考にしたセッション

https://developer.apple.com/jp/videos/play/wwdc2024/101/

https://developer.apple.com/jp/videos/play/wwdc2024/102/

https://developer.apple.com/jp/videos/play/wwdc2024/10223/

https://developer.apple.com/jp/videos/play/wwdc2024/10168/

https://www.apple.com/apple-intelligence/