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
1.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
57
SwiftUI Viewの責務分離
elmetal
PRO
2
410
サイボウズiOSアプリのマルチモジュール 2024
elmetal
PRO
0
89
Resolve Nested ObservableObject issues in Observation
elmetal
PRO
0
320
ObservationSallowDive
elmetal
PRO
1
330
「サイボウズ Office」 の iOSアプリをリニューアルした話 / Renewal "Cybozu Office" iOS App
elmetal
PRO
0
660
Overview Of Swiftc
elmetal
PRO
1
340
社会人からのスキルアップ戦略
elmetal
PRO
0
990
ScrumMasterから見るScrumの姿
elmetal
PRO
1
2k
Other Decks in Programming
See All in Programming
TDD 実践ミニトーク
contour_gara
0
140
AWS Serverless Application Model入門_20250708
smatsuzaki
0
120
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
490
Webinar: AI-Powered Development: Transformiere deinen Workflow mit Coding Tools und MCP Servern
danielsogl
0
160
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
150
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
1k
ワープロって実は計算機で
pepepper
2
1.4k
A Gopher's Guide to Vibe Coding
danicat
0
170
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
210
サーバーサイドのビルド時間87倍高速化
plaidtech
PRO
0
430
Honoアップデート 2025年夏
yusukebe
1
840
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
51k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Designing Experiences People Love
moore
142
24k
How STYLIGHT went responsive
nonsquared
100
5.7k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Git: the NoSQL Database
bkeepers
PRO
431
65k
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