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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
elmetal
PRO
August 29, 2024
Programming
0
1.3k
開発を加速する共有Swift Package実践
elmetal
PRO
August 29, 2024
Tweet
Share
More Decks by elmetal
See All by elmetal
Generating DocC with AI
elmetal
PRO
0
55
A Swift Way to Blog
elmetal
PRO
0
150
Designing DocC for Clarity and Beauty
elmetal
PRO
0
98
SwiftUI Viewの責務分離
elmetal
PRO
2
470
サイボウズiOSアプリのマルチモジュール 2024
elmetal
PRO
0
120
Resolve Nested ObservableObject issues in Observation
elmetal
PRO
0
390
ObservationSallowDive
elmetal
PRO
1
360
「サイボウズ Office」 の iOSアプリをリニューアルした話 / Renewal "Cybozu Office" iOS App
elmetal
PRO
0
710
Overview Of Swiftc
elmetal
PRO
1
380
Other Decks in Programming
See All in Programming
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
200
Claude Code、ちょっとした工夫で開発体験が変わる
tigertora7571
0
200
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
550
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
390
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
240
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
120
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
480
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
3
1.4k
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
330
Ruby x Terminal
a_matsuda
7
580
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
210
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
290
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Chasing Engaging Ingredients in Design
codingconduct
0
130
Building the Perfect Custom Keyboard
takai
2
710
The Spectacular Lies of Maps
axbom
PRO
1
580
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
220
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
380
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
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