$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
開発を加速する共有Swift Package実践
Search
elmetal
PRO
August 29, 2024
Programming
0
1.2k
開発を加速する共有Swift Package実践
elmetal
PRO
August 29, 2024
Tweet
Share
More Decks by elmetal
See All by elmetal
Generating DocC with AI
elmetal
PRO
0
44
A Swift Way to Blog
elmetal
PRO
0
130
Designing DocC for Clarity and Beauty
elmetal
PRO
0
79
SwiftUI Viewの責務分離
elmetal
PRO
2
450
サイボウズiOSアプリのマルチモジュール 2024
elmetal
PRO
0
110
Resolve Nested ObservableObject issues in Observation
elmetal
PRO
0
360
ObservationSallowDive
elmetal
PRO
1
350
「サイボウズ Office」 の iOSアプリをリニューアルした話 / Renewal "Cybozu Office" iOS App
elmetal
PRO
0
690
Overview Of Swiftc
elmetal
PRO
1
370
Other Decks in Programming
See All in Programming
Developing static sites with Ruby
okuramasafumi
0
320
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
410
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
5
720
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
1.7k
AIコーディングエージェント(Gemini)
kondai24
0
270
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
120
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
170
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
630
Cap'n Webについて
yusukebe
0
150
Cell-Based Architecture
larchanjo
0
140
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
580
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
230
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
38k
Thoughts on Productivity
jonyablonski
73
5k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
We Have a Design System, Now What?
morganepeng
54
7.9k
How STYLIGHT went responsive
nonsquared
100
6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
170
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
410
A Soul's Torment
seathinner
1
2k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.7k
Transcript
։ൃΛՃ͢Δ ڞ༗4XJGU1BDLBHF࣮ફ J04%$+BQBOEBZ5SBDL% FMNFUBM$ZCP[V *OD JPTEDE
"CPVUNF J04"QQ %FWFMPQFS ڝഅ ରઓήʔϜ ҭࣇ ෳνʔϜͷ ٕज़ࢧԉ JPTEDE
!FM@NFUBM@
αΠϘζʹ͍ͭͯ JPTEDE
νʔϜϫʔΫ͋;ΕΔ ࣾձΛΔ JPTEDE
αΠϘζʹ͍ͭͯ J04ΞϓϦ (BSPPO αΠϘζ0 ff i DF LJOUPOF αΠϘζͰෳͷϓϩμΫτΛ։ൃ͍ͯ͠·͢
JPTEDE
ಋೖ JPTEDE
ڞ༗4XJGU1BDLBHF࣮ફ ಋೖ (BSPPO αΠϘζ0 ff i DF LJOUPOF
(BSPPO αΠϘζ0 ff i DF LJOUPOF ڞ༗1BDLBHF JPTEDE
ڞ༗4XJGU1BDLBHF࣮ફ τʔΫͷྲྀΕ ڞ༗1BDLBHF։ൃͷܦҢ ڞ༗1BDLBHF։ൃମ੍ɾϓϩηε ࣮Ͱେࣄʹͨ͠ϙΠϯτ ڞ༗1BDLBHFͷಋೖޮՌ JPTEDE
ڞ༗1BDLBHF։ൃͷܦҢ JPTEDE
(BSPPO ίϯςΩετ ։ൃ։࢝࣌ظ αΠϘζ0 ff i DF LJOUPOF
JPTEDE
(BSPPO ίϯςΩετ ڞ༗1BDLBHF։ൃ։࢝࣌Ͱͷར༻ٕज़ αΠϘζ0 ff i DF LJOUPOF 3Y4XJGU
6*,JU 4XJGU6* 4XJGU6* 5$" JPTEDE
(BSPPO ίϯςΩετ ར༻ٕज़։ൃ։࢝࣌ظͷࠩҟ͔Βڞ௨෦ͦΕͧΕͰ࠶࣮ αΠϘζ0 ff i DF LJOUPOF ڞ௨෦
࠶࣮ ࠶࣮ ࠶࣮ JPTEDE
(BSPPO ίϯςΩετ ࠶࣮ͷίετ αΠϘζ0 ff i DF LJOUPOF ࠶࣮ίετ
࠶࣮ίετ ࠶࣮ίετ JPTEDE
Ҏલͷ࣮Λࢀߟʹ࠶࣮ ࣮͕ࢄҳ αΠϘζ 0 ffi DF LJOUPOF ࣮L ࣮0
(BSPPO ࣮( JPTEDE
(BSPPO Ҏલͷ࣮Λࢀߟʹ࠶࣮ ෛ࠴͕֦ࢄ αΠϘζ 0 ffi DF LJOUPOF ෛ࠴
ෛ࠴ ෛ࠴ ࣮L ࣮0 ࣮( JPTEDE
Ҏલͷ࣮Λࢀߟʹ࠶࣮ ٕज़ελοΫͷΞϯϚον αΠϘζ 0 ffi DF LJOUPOF 3Y4XJGU 6*,JU
4XJGU6* 4XJGU6* 5$" (BSPPO JPTEDE
ෳछྨͷෛ࠴ ίʔυཧղΛ્ αΠϘζ 0 ffi DF LJOUPOF ෛ࠴ ෛ࠴
࣮L ࣮0 JPTEDE
ڞ༗1BDLBHF։ൃܾఆ ڞ༗1BDLBHFͰಉ࣌ʹղܾΛਤΔ ࣮ͷࢄҳ ࠶࣮ίετ ίʔυཧղ્ ղܾ ڞ༗1BDLBHF ෛ࠴ͷ֦ࢄ ղܾ
ղܾ ղܾ JPTEDE
ڞ༗1BDLBHF։ൃମ੍ɾϓϩηε JPTEDE
*OOFS4PVSDFϓϥΫςΟεΛ׆༻͢Δ ڞ༗1BDLBHFͷ։ൃӡ༻ํ JPTEDE
ڞ༗1BDLBHFͷ։ൃӡ༻ํ *OOFS4PVSDFͷఆٛ ৫ͱ͍͏ݶΒΕͨڥʹ͓͍ͯɺιϑτΣΞ։ൃʹ ͓͚ΔΦʔϓϯιʔεͷݪଇͱϓϥΫςΟεΛ׆༻͢Δ͜ͱ *OOFS4PVSDF$PNNPOT JPTEDE
։ൃମ੍ ֓ཁ 0XOFS $POUSJCVUPS $POUSJCVUPS 6TFS 6TFS JPTEDE
։ൃମ੍ ֤ϩʔϧͷ׆ಈ 0XOFS $POUSJCVUPS 6TFS w 7FSΛ࡞Δ w ։ൃΛओಋ͢Δ
w ҙࢥܾఆ͢Δ w *TTVFΛཱͯΔ w QBUDIΛॻ͘ w %JTDVTTJPOʹࢀՃ͢Δ w 1BDLBHFΛར༻͢Δ JPTEDE
ڞ༗1BDLBHFͷӡ༻ *OOFS4PVSDFϓϥΫςΟεͷ׆༻ ڞ༗1BDLBHF 1VMM3FRVFTU *TTVF 3FQPTJUPSZ JPTEDE
ڞ༗1BDLBHFͷӡ༻ มߋͷऔΓࠐΈ αΠϘζ0 ff i DF LJOUPOF -BUFTU ڞ༗1BDLBHF
EJ f EJ f EJ f JPTEDE
ڞ༗1BDLBHFͷಋೖࢧԉ .PC1SPHSBNNJOHͷ׆༻ /BWJHBUPS 0XOFS %SJWFS 6TFS /BWJHBUPS $POUSJCVUPS 6TFS
.PC1SPHSBNNJOH JPTEDE
ٕज़తҙࢥܾఆϓϩηε "SDIJUFDUVSF%FDJTJPO3FDPSE "%3 Ͱٞ (JU)VC%JTDVTTJPOTΛར༻ ෳͷબࢶΛൺֱ 8IZͱڞʹܾఆΛهࡌ JPTEDE
ٕज़తҙࢥܾఆϓϩηε "SDIJUFDUVSF%FDJTJPO3FDPSEͰٞ ఏҊ ࡞ ঝೝ 0XOFS $POUSJCVUPS 0XOFS 3FWJFX
JPTEDE
࣮Ͱେࣄʹͨ͠ϙΠϯτ JPTEDE
ڞ༗1BDLBHFͰୡ͍ͨ͜͠ͱ Ռͷεέʔϧ JPTEDE
ࣾϥΠϒϥϦͷ੍ ೖࣾޙͰͳ͍ͱΞΫηεͰ͖ͳ͍ ڞ༗1BDLBHF JPTEDE
࣮Ͱେࣄʹͨ͠ϙΠϯτ ੍Λݮ͠εέʔϧΛॿ͚ΔͨΊʹ 4XJGU6*ʹೃછΉ"1* ߴ͍UFTUBCJMJUZ υΩϡϝϯτͷపఈ JPTEDE
ڞ༗1BDLBHF 4XJGU6*ʹೃછΉ"1* ΤίγεςϜͱ౷߹͞Εͨ"1*Λͭ͘Δ 4XJGU6* 4XJGUFDPTZTUFN JPTEDE
4XJGU6*ʹೃછΉ"1* ΤίγεςϜͱ౷߹͞Εͨ"1*Λͭ͘Δ struct ContentView: View { var body: some
View { WebViewReader { proxy in WebView() .onAppear { proxy.load(request: URLRequest(url: URL(string: "https://www.example.com")!)) } } .padding() } } WebUI is a Swift package that provides WKWebView wrapped by SwiftUI. WebUI JPTEDE
4XJGU6*ʹೃછΉ"1* ΤίγεςϜͱ౷߹͞Εͨ"1*Λͭ͘Δ https://github.com/cybozu/WebUI WebUI is a Swift package that
provides WKWebView wrapped by SwiftUI. WebUI JPTEDE
ߴ͍UFTUBCJMJUZ ҆৺ɾ҆શͳίϯτϦϏϡʔτ ҆৺ ڞ༗1BDLBHF 1VMM3FRVFTU ҆શ JPTEDE
ߴ͍UFTUBCJMJUZ όάεέʔϧ͢Δ αΠϘζ0 ff i DF LJOUPOF ڞ༗1BDLBHF #VH
#VH #VH JPTEDE
υΩϡϝϯτͷపఈ υΩϡϝϯτΛ௨ͯ͡ର͢Δ %PD$ ڞ༗1BDLBHF %FWFMPQFS 6TFS JPTEDE
ڞ༗1BDLBHFͷಋೖޮՌ JPTEDE
ڞ༗1BDLBHFͷಋೖޮՌ ίʔυཧ ϩδοΫͷ44P5 ஔ͖͑ͷՃ ΞϓϦίʔυͷ্࣭ JPTEDE
ίʔυཧ ΞϓϦίʔυͷେ෯ݮ JPTEDE
ίʔυཧ ίʔυߏͷΛղফ ෛ࠴ͷղফ ґଘάϥϑͷཧ ίʔυཧ JPTEDE
ஔ͖͑ͷՃ 3Y4XJGU4XJGU6*Ҡߦ LJOUPOF 3Y4XJGU 6*,JU .PEVMF" 3Y4XJGU 6*,JU .PEVMF#
LJOUPOF 1BDLBHF" 1BDLBHF$ 1BDLBHF# 4XJGU6* JPTEDE
ϩδοΫͷ4JOHMF4PVSDFPG5SVUI ϩδοΫͷ҆શͳ࠶ར༻ αΠϘζ0 ff i DF LJOUPOF ར༻ ར༻
ڞ༗1BDLBHF 44P5 JPTEDE
ΞϓϦίʔυͷ্࣭ ࣮ྫͷఏࣔʹΑΔ҉ͷୡ ܗ͕ఏࣔ͞ΕΔͱநԽͷ౸ୡ͕ΘΔ ϐΧιʮڇʯ JPTEDE
4VNNBSZ JPTEDE
4VNNBSZ ڞ༗1BDLBHFͰ՝ղܾ "1*XJUI8IPMFOFTT 5FTUBCJMJUZ %PDVNFOU ։ൃͰॏࢹͨ͠ཁૉ *OOFS4PVSDFϓϥΫςΟεͷ׆༻ JPTEDE
2" JPTEDE
͋Γ͕ͱ͏͍͟͝·ͨ͠ JPTEDE