Journaling Suggestoins APIの概説
iOS17.2よりApple公式の日記アプリ「Journal」が利用できるようになりました。
Journalは写真、ビデオ、録音した音声、場所などを使って、日常のありふれた瞬間や特別な出来事を詳しく記録して書き留めることができます。
そして、アプリリリースと同時にJounaling Suggestions APIも公開されました。
日記のような個人的な文章を書くアプリなどを開発している個人・企業もiPhone内にある情報を同じように利用できるようになります。
今回は、APIの概要をざっくり検証していこうと思います。
概要
Journaling Suggestions APIは、ピッカーのインターフェースを提供します。
ピッカーには、訪れた場所、つながりのある人、ライブラリにある写真、繰り返し再生している曲など、その人の人生で起こった個人的な出来事が表示されます。
例えば、日記アプリは、選択された提案に関する新しい日記エントリの開始を表示するために詳細を使用します。
対応OSは以下の通りです。
- iOS17.2+
- iPadOS 17.2+
- Mac Catalyst 17.2+
導入方法
Journaling Suggestionsフレームワークは、コード署名にこのエンタイトルメントがないアプリにはJournalingSuggestionsPickerを表示できません。
XcodeでJournaling Suggestions機能を有効にしEntitlimentsを追加することで、アプリにこの権限を追加しましょう。
使い方
struct ContentView: View {
var body: some View {
JournalingSuggestionsPicker { {
Text("提案を表示")
} onCompletion: { suggestion in
print(suggestion.title) // 自動的に提案されたタイトルの利用が可能
print(suggestion.date) // 提案されたイベントが行われる時間の範囲 (DateInterval)
}
}
}
onCompletion
で主ときできるJournalingSuggestion
からはtitle
とdate
が取得でき、その他選択したコンテンツに応じて、
suggestionPhotos = await suggestion.content(forType: JournalingSuggestion.Photo.self)
のようにしてアクセスできます。
取得できる型は様々です。
型 | 説明 |
---|---|
Photo | 撮影日を含む、個人のライブラリからの画像 |
Workout | 消費カロリー、走行距離、走行ルート、平均心拍数、開始時刻と終了時刻、ワークアウトの種類のアイコンなど、その人が完了したワークアウトに関する情報 |
Contact | 連絡先に登録されている人物とのやり取り。その人物の名前や連絡先の写真などが含まれる |
Location | その人が訪れた場所。名前、周辺の都市、地理座標(あれば)が含まれる |
Song | アーティスト名、アルバム名、アルバムアートワークなど。 |
Podcast | 番組、アーティスト、エピソード、関連アートワークなど、その人が再生するポッドキャストに関する情報。 |
Video | 撮影日など、その人のライブラリにあるビデオ |
LivePhoto | 撮影日を含む、その人のライブラリからのライブ写真を表す画像と短いビデオ |
MotionActivity | アクティビティのアイコンを含む、iPhoneのモーションイベントで人が歩いた歩数 |
最後に
ここまで色々見てきて、Xcodeで確認しようとしていたのですが、筆者の環境(Xcode15.2beta)で Simulator 15.2 iOS 17.2に対してJournalingSuggestions
が利用できず、下記のような対応が必要でした。
#if canImport(JournalingSuggestions)
import JournalingSuggestions
#endif
また、iOS17.2にアップデートした実機では利用できました。
はじめは写真アプリのハイライトがいくつか提案されていたのですが、一度選択してしまうと表示されなくなってしまうようです。
そして、それらがなくなってしまうと提案はそれ以上出てくることなく、下記スクリーンショットのままどうすることもできません。
開発環境などのような想定がないと、開発を効率的に進めていくのは難しいのではないかと感じます。
意気揚々と解説を書き始めたのですが、実践投入するには時期尚早のようですね。
これらの使用に関して知見のある方がいらっしゃれば教えていただけると幸いです。
ありがとうございました。
Discussion