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
未来大LT_2025.pdf
Search
Kaito Kudo
May 17, 2025
Technology
0
54
未来大LT_2025.pdf
Kaito Kudo
May 17, 2025
Tweet
Share
More Decks by Kaito Kudo
See All by Kaito Kudo
5分でわかる! VaporでAPI+DB構築
kaitokudou
0
79
Universal Linksの実装方法と陥りがちな罠
kaitokudou
1
420
iOSDC Japan 2022 スポンサーセッション
kaitokudou
0
1.8k
iOS勉強会資料
kaitokudou
0
100
App Storeにアプリをリリースした話
kaitokudou
0
42
Other Decks in Technology
See All in Technology
だいたい分かった気になる 『SREの知識地図』 / introduction-to-sre-knowledge-map-book
katsuhisa91
PRO
3
1.4k
RemoteFunctionを使ったコロケーション
mkazutaka
1
120
SOTA競争から人間を超える画像認識へ
shinya7y
0
520
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
150
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
480
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
150
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
1.8k
What's new in OpenShift 4.20
redhatlivestreaming
0
270
re:Inventに行くまでにやっておきたいこと
nagisa53
0
190
NLPコロキウム20251022_超効率化への挑戦: LLM 1bit量子化のロードマップ
yumaichikawa
3
480
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
150
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
360
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
890
Automating Front-end Workflow
addyosmani
1371
200k
A designer walks into a library…
pauljervisheath
209
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
Build your cross-platform service in a week with App Engine
jlugia
233
18k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Balancing Empowerment & Direction
lara
5
700
Transcript
SwiftͬͯεϚϗΞϓϦ։ൃઐ༻ʁ ͍͍͑ɺαʔόʔॻ͚·͢ʂ 2025/05/17 ͩͯ͜ະདྷେ×اۀΤϯδχΞ େLT2025 ͘Ͳ͔͍ 1
ࣗݾհ גࣜձࣾΏΊΈ/͘Ͳ͔͍ 2022/04ʹiOSΤϯδχΞͱͯ͠৽ଔೖࣾɻ ෭ۀͰFlutterΛͪΐͬͱͬͨΓɻ ݸਓ։ൃ ݮञࢧԉΞϓϦʮAlconʯ https://apps.apple.com/jp/app/alcon/id1571071417 ࡔಓάϧʔϓͷ८ྱΞϓϦʮͷ͗ϥϦʔʯ https://apps.apple.com/jp/app/ͷ͗ϥϦʔ/id6501994754 @kudokai00
@KaitoKudou 2
3
࣮SwiftͰ αʔόʔॻ͚ΔΜͰ͢ʂ 4
Ϟνϕʔγϣϯ • ͍׳Ε͍ͯΔ Swift ͰαʔόʔαΠυ։ൃͰ͖ͨΒ͍͍ΑͶ • Swift ͚ͩͰΞϓϦέʔγϣϯΛࣗྗͰ࡞Δ͜ͱ͕Մೳ • ձࣾͷઌഐ͕ॻ͍ͨ
Server Side Swift ͷهࣄΛಡΜͰڵຯ͕ग़ͨ 5
https://techbookfest.org/product/kdUdfz8a1KZQJZvJxRVu8V?productVariantID=3PtDPisanjt1xTD47yyVYK 6
https://techbookfest.org/product/kdUdfz8a1KZQJZvJxRVu8V?productVariantID=3PtDPisanjt1xTD47yyVYK 7
https://techbookfest.org/product/kdUdfz8a1KZQJZvJxRVu8V?productVariantID=3PtDPisanjt1xTD47yyVYK ॻ͍ͯ·͢ʂʂ 8
Server Side Swiftͱ • Swift ΛαʔόʔαΠυ։ൃʹ༻͢Δ͜ͱ • Vapor Hummingbird
ͷΑ͏ͳ Web ϑϨʔϜϫʔΫ͕ར༻͞ΕΔ • ϧʔςΟϯάɺσʔλϕʔε౷߹ɺϦΫΤετॲཧͳͲͷॏཁͳػೳ ͕ఏڙ͞ΕɺϏδωεϩδοΫͷ࣮ʹूதͰ͖Δ 9
10
Vaporͱ • Server Side SwiftͷදతͳϑϨʔϜϫʔΫ • Swift Ͱ Web ΞϓϦͷ
API ɺ HTTP αʔόʔͷߏங͕Մೳ • पลϥΠϒϥϦ͕͔ͳΓॆ࣮ - ORMʢFluentʣɺೝূʢJWTɾOAuthʣɺWebSocketͳͲ 11
ͳͥVaporͳͷ͔ • ݱࡏͰ։ൃ͕ΜʹߦΘΕ͍ͯΔ • Server Side SwiftͷϑϨʔϜϫʔΫͰελʔ͕ଟ͍ • υΩϡϝϯτ͕ॆ࣮ •
Swift Concurrencyʹ͔ͬ͠Γै 12
13
͔͜͜Β։ൃͷ͓ 14
Πϯετʔϧํ๏ • HomebrewͰΠϯετʔϧ • versionͷ֬ೝ 15
ϓϩδΣΫτͷ࡞ • ࠷খߏͰϓϩδΣΫτΛ࡞ • APIαʔόʔΛىಈ 16
ϓϩδΣΫτͷ࡞ XcodeͰϏϧυޙɺhttp://127.0.0.1:8080 ͰWebαʔόʔ͕ىಈ͢Δʂ 17
ϑΥϧμߏ 18
ϑΥϧμߏ ը૾ελΠϧγʔτͳͲͷ ֎෦ʹެ։͢ΔϑΝΠϧΛ ֨ೲ͢Δɻ FileMiddlewareΛ༗ޮʹ͢Δ ඞཁ͕͋Δɻ 19
ϑΥϧμߏ શͯͷιʔεϑΝΠϧ͕֨ೲ͞ΕΔɻ શͯͷϩδοΫ͕Sources/App ҎԼʹೖΔɻ 20
ϑΥϧμߏ ΞϓϦέʔγϣϯͷϩδοΫΛ·ͱΊ Δͷʹద͍ͯ͠Δɻ ϦΫΤετΛड͚औΓɺԿΒ͔ͷܗͰ ϨεϙϯεΛฦ͕ؔ͢ఆٛ͞ΕΔɻ 21
ϑΥϧμߏ ͜ͷϑΝΠϧʹɺroutes(_:) ؚ͕ؔ ·Ε͍ͯΔɻ ϧʔςΟϯάΛఆٛ͢Δɻ 22
JSONΛฦͯ͠ΈΔ 23
JSONΛฦͯ͠ΈΔ HTTPϝιου 24
JSONΛฦͯ͠ΈΔ ΤϯυϙΠϯτ 25
JSONΛฦͯ͠ΈΔ JSONͷkey/valueΛࣙॻͰఆٛ 26
JSONΛฦͯ͠ΈΔ εςʔλείʔυ200Ͱฦ٫͢ΔΑ͏ʹɺ Τϯίʔυ 27
JSONΛฦͯ͠ΈΔ JSONΛฦ͢ 28
JSONΛฦͯ͠ΈΔ XcodeͰϏϧυޙɺhttp://127.0.0.1:8080/json ͰҎԼ͕ग़ྗ͞ΕΔ🎉 29
ͨͬͨ͜Ε͚ͩʂ 30
͕ॻ͍ͨίʔυΛோΊͯΈΔ 31
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI • ެࣜΞϓϦͷಈ࡞͕͍ʂʂ Ϟνϕʔγϣϯ Έ • ެࣜαΠτΛεΫϨΠϐϯά • ֎෦APIΛ༻ •
Ϩεϙϯε5ؒΩϟογϡʹ٧ΊΔ 1ͭͷAPIʹ·ͱΊΔ 32
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI εΫϨΠϐϯά͢Δσʔλ ֎෦API͔Βऔಘ͢Δσʔλ 33
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI ΫϥΠΞϯτʹฦ͢σʔλ 34 AttractionBasicInfo + AttractionOperatingStatus Attraction
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI εΫϨΠϐϯάͰऔಘͨ͠σʔλΛ[AttractionBasicInfo]ʹม 35
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI ֎෦API͔Βऔಘͨ͠σʔλΛ[AttractionOperatingStatus]ʹม 36
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI σʔλΛ[Attraction]ʹ౷߹ 37
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI [Attraction]ΛΤϯίʔυ 38
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI ࣮ߦ݁Ռ🎉 39 http://127.0.0.1:8080/tokyo_disney_resort/tdl/attraction Ͱ࣮ߦ
ເͷࠃͷΞτϥΫγϣϯͪ࣌ؒAPI 40 ίʔυͷஔ͖ॴ https://github.com/KaitoKudou/TokyoDisneyResortAPI
·ͱΊ Vapor ͱ • Server Side Swift ͷදతͳϑϨʔϜϫʔΫ • ORM
ೝূͳͲͷपลϥΠϒϥϦॆ࣮ • Swift Concurrency ʹରԠ͍ͯ͠ΔͷͰɺΫϩʔδϟͰඇಉظॲཧΛॻ͘ඞཁͳ͠ Server Side Swift ͱ • Swift ΛαʔόʔαΠυͷ։ൃͰ༻͢Δ͜ͱ • Vapor Hummingbird ͷΑ͏ͳ Web ϑϨʔϜϫʔΫ͕ར༻͞ΕΔ 41
ࢀߟจݙ • https://techbookfest.org/product/kdUdfz8a1KZQJZvJxRVu8V? productVariantID=3PtDPisanjt1xTD47yyVYK • https://docs.vapor.codes/ja/getting-started/folder-structure/ • https://zenn.dev/yusuga/articles/dc601e1f67a0b7 • https://speakerdeck.com/satotakeshi/5fen-dewakaruserver-side-
swift-vaporfalsemei-li • https://www.swift.org/documentation/server/ 42