Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bring your app’s core features to users with App Intents とか App Intents 関連の要約
Search
Ryomm
June 27, 2024
Technology
1
170
Bring your app’s core features to users with App Intents とか App Intents 関連の要約
@2024.06.26 Swift愛好会スピンオフ WWDC24セッション要約会
Ryomm
June 27, 2024
Tweet
Share
More Decks by Ryomm
See All by Ryomm
クソアプリハッカソン
ryomm
0
100
万年筆のスゝメ
ryomm
0
91
Other Decks in Technology
See All in Technology
モノリスから小さなシステムへ / Chatworkシステム移行の現在地と今後について@開発生産性カンファレンス
tanakayuki
0
550
生成 AI の評価方法
asei
8
1k
Lernen durch Schmerzen! Mit Reinforcement Learning selbstlernende Systeme entwickeln
joergneumann
0
210
AI が奏でる新たな音楽体験 ~生成AIで音楽を作って楽しもう~
shimy
0
130
スクラムエッセンス導入3ヶ月のチームに起きた変化
hacomono
PRO
1
120
CentOS 7サポート終了直前!次はどうする?
koedoyoshida
1
200
Next.js の fetch 拡張とキャッシュ機構の違いを理解する
ryo_manba
3
550
OODAふりかえり 何って…ただ毎スプリント、違うふりかえり手法を採用してるだけだが? / Retrospectives with OODA
kakehashi
12
2.5k
Oracle Modern Data Platform Reference Architecture (Autonomous Data Warehouse編)
oracle4engineer
PRO
0
490
よりアジャイルに向かう道のりとして、中止していたスクラムイベントを復活したら100Lの汗を流した話 / Reviving Scrum Events
kakehashi
2
160
やさしいITを目指すために
ishity__
0
290
「開発生産性を上げる改善」って儲かるの?に答えられるようにする / Is development productivity profitable?
i35_267
18
6k
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
246
12k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
359
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
The Invisible Customer
myddelton
115
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Product Roadmaps are Hard
iamctodd
PRO
46
10k
Designing for Performance
lara
603
67k
It's Worth the Effort
3n
180
27k
Building Adaptive Systems
keathley
33
2k
The Art of Programming - Codeland 2020
erikaheidi
46
12k
Adopting Sorbet at Scale
ufuk
69
8.7k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Transcript
App Intentの要約でーす What’s newやるって言ってたんですけど、必要な前提知識が多かったのでこっちの動画をメインにしました。What’s newは添える程度です
Ryommです!KINTOテクノロジーズという会社でiOSアプリエンジニアをしてます! こういう場で話すの初めてで緊張がやばいので、やさしめにTwitter盛り上げよろしくお願いします!
今日は現地いった同僚にもらったお土産Tシャツ着てきました!ayy
App Intentsとは、iOS16で登場したフレームワークです 再利用可能な機能の基盤「Intent」を作成し、OS側が提供する体験とアプリが提供する機能を深く統合することができるようになります。
アプリは一つの箱ととらえることができる ユーザは作業を行うために1つのアプリだけでなく、いくつかのアプリをまたぐ必要がある時もあります アプリが持つものを表示したり実行するには、それぞれのアプリに入る必要があります 他のアプリからはアクセスできないので、今いる箱を出て、別の箱に移動しないといけない =アプリを切り替える必要がある 例えば、今流している曲の歌詞が読みたいなと思った時、 ミュージックで曲名を確認して、それをSafariで検索する、 というように2つのアプリを開く必要があります。 これはショートカットを使えばシームレスに実行することができますよね? このようにデバイスが箱の中身=アプリのコア機能を理解できて、簡単にアクセスできるようになると、ユーザはシームレスな作業が行えるようになります
これを実現するにはApp Intentフレームワークを導入します
Shortcutを例に取りましたが、App Intentを使って実現できる体験は他にも、Spotlight、Widgetやアクションボタン、ライブアクティビティ、Apple PencilのSqueeze、そしてApple Intelligence、Controlsなどがあります。 これを使うと、それぞれのアプリが提供する機能をパーソナライズして、ユーザはアプリの機能をより自分の行動に沿った使い方をできるようになります。するとアプリを使い続ける可能性も上がるます。ユーザにとってもデベロッパーにとっても嬉しいですね!
App Intent自体は機能ではなく、機能を構築するための共通の基盤です。 App Intentが行う責務としては2つあり、 アプリのコア機能などをシステム側が理解できるように、外部に公開する アクションを実行し、完了したことを呼び出し元に伝える通信する こうすることで、アプリは実装に集中することができます 1つのシステムの機能に対応するためにApp Intentを作ったら、同じコードで他の機能へ展開することができます
App Intentにおいて重要な3つのトップレベルの概念があります。 Intents: 実行するアクション Entities: オブジェクト App shortcuts: アプリのコア機能をパッケージしたもの Intentsが動詞、Entitiesが名詞、そしてApp
shortcutsが文、という関係性です。 App Intentを作成すると、デフォルトでショートカットアプリのアクションとして表示されます。 このショートカットアクションがIntentです。
(4分超えてたら)一応実装方法についてもまとめたんですが、時間がないので飛ばします。あとで資料を上げるので、そちらを参照するか、ビデオを見るかしてください〜 これはAppIntentの実装ですね〜 (4分超えてなかったら) では実装方法について軽く触れます。 ビデオではもっと詳細に説明されてましたが、要約なので主要キャストだけ取り上げます。 まず、AppIntentに準拠した構造体を定義します title: アクションの名前(必須) func perform()
実行するアクションを定義(必須) この2つは必須です。 パラメータを渡すこともできます。これがEntityです。
Building the code ΫΤϦ(ඞਢ) AppEntityΛܧঝ(ඞਢ) ࣝผࢠ(ඞਢ) λΠϓͱσʔλͷදࣔ (ඞਢ) ϓϩύςΟ(≠ύϥϝʔλ)
What’s new in App Intent (super summary) IndexedEntity Transferable →
Meet Transferable ( WWDC22 ) IntentFile FileEntity Universal links URLRepresentableEntity URLRepresentableEnum URLRepresentableIntent Developer improvements UnionValue Generated titles Framework improvements
引用元のビデオとドキュメントです 日本語だとSiriの要約をされていた堤さんの記事がたくさん出てくるので、そちらを見てください!
Apple Intelligenceの登場で、App Intent に対応するのは基本人権になりつつあるなと感じました。 一つ対応すればかなり使い回しが効くので、コスパは高いと思います。 要約したビデオもそうですが、この機会にApp Intent対応してくれや!という圧を感じてましたw 中々ビジネス職から要望が出てこなそうな機能なので、エンジニア側から提案してプッシュしていかねば!と思いました。 以上、ありがとうございました!