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
AppIntentsの用途 - AppleのGPT元年
Search
notoroid
June 22, 2024
Programming
1
150
AppIntentsの用途 - AppleのGPT元年
WWDC24 でのアプリ内のApp Intentsの用途が強化された点についての説明。Intentsで使用するentityをSpotlight検索の検索対象に加えることができるようになる。
notoroid
June 22, 2024
Tweet
Share
More Decks by notoroid
See All by notoroid
Xcodeショートカット 2025年版
notoroid
0
30
ZIPでくれ - Apple謹製 geocoding/ reverse geocoding
notoroid
0
52
WeatherKit iOS18 update - お天気の更新
notoroid
0
49
Privacy manifests - Appleと開発コミュニティ
notoroid
1
210
とっさのAutoLayout - Rewind autolayout
notoroid
0
96
UVC(USB video class)と マルチプラットフォーム - UVC support by Apple multiplatform
notoroid
0
330
SwiftUIむけに 整理された状態監視 Observation
notoroid
0
730
よせあつめSwift - Swift5.9
notoroid
1
660
Transferable - SwiftUI ドキュメントアプリ
notoroid
2
430
Other Decks in Programming
See All in Programming
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
0
210
ARA Ansible for the teams
kksat
0
150
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
760
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
570
Pulsar2 を雰囲気で使ってみよう
anoken
0
240
Unity Android XR入門
sakutama_11
0
160
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
340
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
2
470
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
48
17k
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
2024年のWebフロントエンドのふりかえりと2025年
sakito
3
250
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
7
670
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
74
9.2k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
BBQ
matthewcrist
87
9.5k
Docker and Python
trallard
44
3.3k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Building Your Own Lightsaber
phodgson
104
6.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Transcript
"QQ*OUFOUTͷ༻్ "QQMFͷ(15ݩ ೳొཁ !OPUPSPJE J1IPOFΞϓϦ։ൃऀ݄
͢༰ w "QQ*OUFOUT֓ཁ w ΞϓϦ্ͷ"QQ*OUFOUTద༻ൣғ
͞ͳ͍༰ w FYUFOUJPOͰͷ*OUFOU w 'JMF&OUJUZ w $POUSPMXJEHFU
͓ w ͏͋͢͡88%$ w "QQ*OUFOUTͷഎܠ w "QQ*OUFOUTͷ৽ػೳ
ࣗݾհ w J1IPOFΞϓϦ։ൃऀ 9!OPUPSPJE w ΞϓϦ։ൃऀྺ ʙ w
ΞϓϦ࡞࢛ͬͯੈل ౸ୡ w झຯήʔϜ ࣹਆܦ͕ਰ͑ͱͷർΕ͕ൈ͚ͳ͍
͏͋͢͡88%$
88%$ ։࠵͞Ε·ͨ͠
৽͍͠ϋʔυΣΞൃද͕ ͳ͔ͬͨͷ͕ऐ͍͠
جௐߨԋͷ༰ ബຯ͔ͩͬͨʜ
جௐߨԋͱ͍͑
None
͏͋͢͡
None
"QQMF*OUFMMJHFODFհ༰ʹ ৽ػೳؚ͕·Ε͍ͯͨͷͰ 04͝ͱͷհ͕ബຯͩͬͨ
04Ͱڞ௨Խ͞Εͨػೳͱͯ͠ "QQ*OUFOUTΛ͍ͬͯΔͷ͕ଟ͍
"QQ*OUFOUTʹ͍ͭͯઆ໌
"QQ*OUFOUTͷഎܠ
"QQ*OUFOUTొͷഎܠͱͳͬͨ ͷͷ4JSJͷొ
ԻφϏήʔγϣϯγεςϜ w 4JSJࣾΛ"QQMF͕ങऩ w J04͔Βొ w J1IPOF4͔Βར༻Մೳ w J04͔Β4JSJ,JUͱͯ͠αʔυ ύʔςΟʔʹެ։
4JSJ
4JSJͷαʔυύʔςΟʔରԠ શͯͷΞϓϦʹ։͔Ε͍ͯΔ w 4JSJ,JUެ։લ͔Β"QQMF͕ԻφϏήʔγϣϯʹରԠͯ͠΄͍͠αʔϏεΛબΜͰ͍ͨ w ܾࡁ w ϥΠυγΣΞ w ϑʔυσϦόϦʔ
w ֤छφϏήʔγϣϯ 04ʹΞϓϦͷػೳ͕౷߹͞ΕͯࠔΒͳ͍ΞϓϦͦ͏ଟ͘ͳ͍
4JSJͷಛ ԻೝࣝͰݎ࣮ʹಈ࡞͢ΔൣғͰ༏ल w ΞϓϦ͕ఏڙ EPOBUF ͢ΔจݴͷΈ࣮ߦͰ͖Δ w 04ͷΩʔϫʔυݕࡧػೳ 4QPUMJHIU ͷػೳΛ౷߹
w ΞϓϦ໊ͷݕࡧ w ϝʔϧͳͲͷݕࡧ
4JSJͷಈ࡞ᶃ ֎෦ΤΫεςϯγϣϯͰಈ࡞ ઃఆϑΝΠϧ 04͕ΞϓϦʹؚ·Ε͍ͯΔ֦ுػೳΛ֬ೝɻ ֦ுػೳͷઃఆ JOGPQMJTU Λ֬ೝ͠4JSJͰݺͼ ग़͠ՄೳͳػೳΛ04͕ཧɻ
͠Β͘4JSJΛӡ༻ͯ͠ "QQMFߟ͑ͨ
ΞϓϦ͕ಈ࡞͍ͯ͠ͳ͍ͱ ΞϓϦͷػೳΛ4JSJʹఏڙͰ͖ͳ͍ͷͰ
4JSJͷಈ࡞ᶄ ಈ࡞தΞϓϦ͔Βػೳఏڙ ॳظԽλΠϛϯά ΞϓϦ͕ىಈதʹ04ʹ4JSJ͕ݺͼग़ ͠ՄೳͳػೳΛఏڙ͢Δɻ ىಈ %POBUF
"QQMFߟ͑ͨ
04ʹΞϓϦ͕ػೳΛఏڙ͢Δ Έͷ༻్ʹ͑ΔͷͰ
֦ுػೳΛଞͷ༻్ʹద༻ Οδοτͷઃఆ
4JSJ,JU͔Β"QQ*OUFOUT 4XJGUઐ༻ͷϑϨʔϜϫʔΫʹมߋ 0CKFDUJWF$ 9DPEFੜ 4XJGU 4JSJ,JU $VTUPN*OUFOU ʙ 4XJGUHFOFSJD
4XJGU ରԠݴޠ ϘΠϥʔϓϨʔτ ίʔυରࡦ "QQ*OUFOUT ʙ μΠΞϩάੜ 4XJGU6* 4UPSZCPBSE6*,JU"QQ,JU ΤϯςΟςΟ ఆٛ ઃఆϑΝΠϧϕʔε ίʔυϕʔε
"QQ*OUFOUTͷద༻ൣғ &YUFOTJPOͱΞϓϦੜڞଘ "QQ*OUFOUT &YUFOTJPO ΞϓϦ w4JSJTIPSUDVU w8JEHFUDPO fi HSBUJPO wΞΫγϣϯ
wίϯτϩʔϧ w"QQMFQFODJMQSPͷγϣʔ τΧοτ w4JSJTIPSUDVU
"QQ*OUFOUTͷద༻ൣғ &YUFOTJPOͱΞϓϦੜڞଘ "QQ*OUFOUT &YUFOTJPO ΞϓϦ w1SPT wΞϓϦ͕ىಈ͠ͳͯ͘ಈ࡞ w$POT wΞϓϦͱͷσʔλڞ༗ʹ "QQ(SPVQ,FZDIBJO͕ඞ
ཁ w1SPT wΞϓϦͷ๛ͳใ͕ར༻Մ ೳ wΞΫγϣϯରॲ͕༰қ w$POT wΞϓϦΛىಈ͠ͳ͍ͱఏҊ͕ ߋ৽͞Εͳ͍
"QQ*OUFOUTͷ৽ػೳ
"QQ*OUFOUTͷഎܠΛ આ໌͢Δ͚ͩͰई
"QQMF"QQ*OUFOUTͷઆ໌ʹ ۤ࿑͍ͯ͠ΔΑ͏Ͱ
w IUUQTEFWFMPQFSBQQMFDPN WJEFPTQMBZ XXED w ΞϓϦͷίΞػೳ͕ΞϓϦʹ͓ ͞·͍ͬͯΔͷར༻ऀͷମݧΛ ଛͳ͍ͬͯΔ͜ͱΛड़্ͨͰ "QQ*OUFOUTΛͬͨղܾखஈΛ આ໌
w αϯϓϧίʔυͷ·· #SJOHZPVSBQQ`TDPSFGFBUVSFTUP VTFSTXJUI"QQ*OUFOUT88%$ 7JEFPT"QQMF%FWFMPQFS
ͷηογϣϯ༰ʹ ໟ͕ੜ͑ͨఔ
ຊ໋ͪ͜Β
w IUUQTEFWFMPQFSBQQMFDPN WJEFPTQMBZ XXED w "QQ*OUFOUTΛͬͨ৽ػೳΛઆ ໌ w ͷαϯϓϧίʔυ༗Γ 8IBU`TOFXJO"QQ*OUFOUT
88%$7JEFPT"QQMF %FWFMPQFS
"QQ*OUFOUTͷ৽ػೳ w 4JSJͷγϣʔτΧοτͰར༻Ͱ͖ΔFOUJUZΛ4QPUMJHIUݕࡧʹొͰ͖Δ w "QQMFଆͰ༻్͚ͷ*OUFOUTςϯϓϨʔτΛ૿Ճ༧ఆ
*OUFOUTͱ&OUJUZ ҙਤͱଘࡏ ʓʓΛ։͍͍ͯͩ͘͞ɻ ˚˚Λ։͍͍ͯͩ͘͞ɻ *OUFOUT" *OUFOUT# (SPVQ *UFN *UFN *UFN
*OUFOUTʹ͢ύϥϝʔλʔͱ ͯ͠FOUJSZΛ͢͜ͱ͕Ͱ͖ Δɻ άϧʔϓάϧʔϓͷΞΠς ϜͳͲΛͤΔܗʹม͢Δ ͚ͩɻ ˚˚ΛબΜͰ։͘ɻ *OUFOUT$
৽ػೳᶃ&OUJUZΛ4QPUMJHIUʹొՄೳʹ 4JSJܦ༝Ͱ4QPUMJHIUݕࡧʹؚΊΔ͜ͱ͕Մೳ (SPVQ *UFN *UFN *UFN 4QPUMJHIU 4QPUMJHIUͰݕࡧͨ݁͠ՌΛλοϓͨ͋͠ͱʹΞϓϦ Ͱ։͘߹ɺ&OUJUZ͝ͱʹ0QFO*OUFOUʹ४ͨ͡ *OUFOUΛ༻ҙ͢Δɻ
ΞϓϦͰ4QPUMJHIUݕࡧ ͢Ͱʹ࣮ݱࡁΈ
w IUUQTEFWFMPQFSBQQMFDPN XXED w "QQ*OUFOUTܦ༝Ͱఏڙ͞Εͨ FOUJUZݕࡧ༻ͷύϥϝʔλʔΛ Ճ w J04͔Β͋ͬͨػೳʹ͍ͭʹ٭ ޫ͕͋ͨΔ
4VQQPSUTFNBOUJDTFBSDIXJUI $PSF4QPUMJHIU88%$ 7JEFPT"QQMF%FWFMPQFS
J04·Ͱͷ*OUFOUT&OUJUJFT
J04·Ͱͷ*OUFOUT&OUJUJFT
༻్͚ͷ*OUFOUTςϯϓϨʔτ ਪΛޮ͔ͤΔͨΊͷࢪ࡞ w "QQMF"QQMF*OUFMMJHFODFରԠͰͰ͖Δ͜ͱΛ૿͢ඞཁʹഭΒΕ͍ͯΔ w ༻్ 4DIFNF Λఆٛ͢Δ͜ͱͰ w 04ଆ͕*OUFOU༻్ΛѲͰ͖Δ
w ΞϓϦଆͰͷ࣮Λ؆ܿԽͰ͖Δ
৽ػೳᶄ༻్͚ͷ*OUFOUTςϯϓϨʔτ .BLJOH:PVS"QQT'VODUJPOBMJUZ"WBJMBCMF5P4JSJ"TTJTUBOU4DIFNBT&YBNQMF"QQ*OUFOUT"MCVN"MCVN*OUFOUTTXJGU @AssistantIntent(schema: .photos.createAlbum) struct CreateAlbumIntent: AppIntent { var name:
String @Dependency var library: MediaLibrary func perform() async throws -> some ReturnsValue<AlbumEntity> { let album = try await library.createAlbum(with: name) return .result(value: album.entity) } } 1IPUPTͷΞϧόϜΛ࡞
!"TTJTUBOU*OUFOU w *OUFOUTʹࢦఆͰ͖ΔϚΫϩ w 4DIFNFʹج͍ͮͨ*OUFOUTͷ࣮Λߦ͏ w 04ଆʹ*OUFOU͕ԿͰ͋Δ͔ͷώϯτΛఏڙ w TDIFNFͲͷυϝΠϯ ൣᙝ
ʹؚ·Εͨಈ࡞ͳͷ͔Λنఆ͢Δ w ྫTZTUFN QIPUPT NBJM w ݄ݱࡏυϝΠϯTZTUFN QIPUPT NBJMͷΈ
·ͱΊ w"QQMFϚϧνϓϥοτϑΥʔϜઓུ͕ޭΛ͠"QQMF*OUFMMJHFODF Λల։͠Α͏ͱ͍ͯ͠·͢ w04ʹΞϓϦػೳΛఏڙ EPOBUF Έͱͯ͠"QQ*OUFOUT͕උ͞ Ε͍ͯ·͢ w"QQMF"QQMF*OUFMMJHFODFͷ׆༻ʹඞཁͳΞϓϦͷใΛ"QQ *OUFOUTΛ༻ͯ͠Ҿ͖ग़ͦ͏ͱ͍ͯ͠·͢ w"QQMFͷҙਤ͕ޭ͢Δ͔ͬͨ͜ͱͰ͋Γ·ͤΜ͕ɺΞϓϦ
Ͱݕࡧػೳར༻Ͱ͖ͦ͏Ͱ͢
ࢀߟ w 8IBU`TOFXJO"QQ*OUFOUT 88%$7JEFPT"QQMF %FWFMPQFS w #SJOHZPVSBQQ`TDPSFGFBUVSFT UPVTFSTXJUI"QQ*OUFOUT 88%$7JEFPT"QQMF %FWFMPQFS
w 4VQQPSUTFNBOUJDTFBSDIXJUI $PSF4QPUMJHIU88%$ 7JEFPT"QQMF%FWFMPQFS w #SJOHZPVSBQQUP4JSJ 88%$7JEFPT"QQMF %FWFMPQFS w $PSF4QPUMJHIUc"QQMF %FWFMPQFS%PDVNFOUBUJPO