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
開発を加速する共有Swift Package実践
Search
elmetal
PRO
August 29, 2024
Programming
0
1k
開発を加速する共有Swift Package実践
elmetal
PRO
August 29, 2024
Tweet
Share
More Decks by elmetal
See All by elmetal
Designing DocC for Clarity and Beauty
elmetal
PRO
0
47
SwiftUI Viewの責務分離
elmetal
PRO
2
360
サイボウズiOSアプリのマルチモジュール 2024
elmetal
PRO
0
76
Resolve Nested ObservableObject issues in Observation
elmetal
PRO
0
300
ObservationSallowDive
elmetal
PRO
1
320
「サイボウズ Office」 の iOSアプリをリニューアルした話 / Renewal "Cybozu Office" iOS App
elmetal
PRO
0
640
Overview Of Swiftc
elmetal
PRO
1
330
社会人からのスキルアップ戦略
elmetal
PRO
0
970
ScrumMasterから見るScrumの姿
elmetal
PRO
1
2k
Other Decks in Programming
See All in Programming
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
220
Using AI Tools Around Software Development
inouehi
0
1.2k
CursorはMCPを使った方が良いぞ
taigakono
0
140
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
2
630
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
240
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
380
生成AIで日々のエラー調査を進めたい
yuyaabo
0
620
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
280
Go1.25からのGOMAXPROCS
kuro_kurorrr
1
780
Perplexity Slack Botを作ってAI活用を進めた話 / AI Engineering Summit プレイベント
n3xem
0
670
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
200
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Side Projects
sachag
455
42k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Into the Great Unknown - MozCon
thekraken
39
1.9k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Raft: Consensus for Rubyists
vanstee
140
7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Fireside Chat
paigeccino
37
3.5k
Site-Speed That Sticks
csswizardry
10
650
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
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