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 Ap...
Search
Ryomm
June 27, 2024
Technology
1
490
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
110
万年筆のスゝメ
ryomm
0
100
Other Decks in Technology
See All in Technology
SSMRunbook作成の勘所_20241120
koichiotomo
3
160
Lexical Analysis
shigashiyama
1
150
アプリエンジニアのためのGraphQL入門.pdf
spycwolf
0
100
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
110
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
1
290
『Firebase Dynamic Links終了に備える』 FlutterアプリでのAdjust導入とDeeplink最適化
techiro
0
140
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
420
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
2
230
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
220
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
0
190
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Language of Interfaces
destraynor
154
24k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Building Your Own Lightsaber
phodgson
103
6.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
How to Ace a Technical Interview
jacobian
276
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
GitHub's CSS Performance
jonrohan
1030
460k
The Pragmatic Product Professional
lauravandoore
31
6.3k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
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 中々ビジネス職から要望が出てこなそうな機能なので、エンジニア側から提案してプッシュしていかねば!と思いました。 以上、ありがとうございました!