Slide 1

Slide 1 text

iPhone Dev Sapporo / 2025-02-02 iPhone Dev Sapporo Server Side Swift ࣮ફϨϙʔτ 2024೥ʹҊ݅Ͱ࠾༻ͯ͠ݟ͑ͨ՝୊ͱՄೳੑ 2025-02-02

Slide 2

Slide 2 text

iPhone Dev Sapporo / 2025-02-02 ࣗݾ঺հ ੁݪ ༞ – X : @yusuga_ – mixi2 : @yusuga – ߹ಉձࣾϐίε: ୅දࣾһ – גࣜձࣾΏΊΈ: iOS ςοΫϦʔυ –

Slide 3

Slide 3 text

iPhone Dev Sapporo / 2025-02-02 Server Side Swift ͱ͸ Swift ݴޠ͸ Linux Λαϙʔτ͍ͯ͠Δ – ͭ·ΓɺLinux ্ͰͷίϯύΠϧɺ࣮ߦɺ։ ൃ͕ՄೳͰ͋ΓɺLinux Ͱಈ࡞͢Δαʔόʔ αΠυΞϓϦέʔγϣϯ΍ίϚϯυϥΠϯ πʔϧΛੜ੒Ͱ͖Δ –

Slide 4

Slide 4 text

iPhone Dev Sapporo / 2025-02-02 Server Side Swift ͱ͸ Server Side Swift Ͱ API αʔόʔΛ։ൃ͢Δͱ͍ ͏͜ͱ͸ɺLinux ্Ͱ API αʔόʔͱͯ͠ಈ࡞͢Δ ࣮ߦՄೳϑΝΠϧΛੜ੒͢Δ͜ͱΛࢦ͢ – 1 macOS Ͱಈ࡞͢Δ࣮ߦՄೳϑΝΠϧΛੜ੒͢Δ͜ͱ΋ՄೳͰ͕͢ɺαʔόͰಈ͔͢ࡍʹ macOS ͷΠϯελϯε͕ߴ ͘ɺDocker ্ʹߏஙͰ͖ͳ͍ͳͲͷσϝϦοτ͕͋ΔͨΊɺΘ͟Θ͟ macOS Λબ୒͢Δέʔε͸গͳ͍ͱࢥΘΕ· ͢ 1.

Slide 5

Slide 5 text

iPhone Dev Sapporo / 2025-02-02 Α͋͘Δ࣭໰

Slide 6

Slide 6 text

iPhone Dev Sapporo / 2025-02-02 Q. Server Side Swift ͬͯ୭͕࢖͍ͬͯ Δͷʁ

Slide 7

Slide 7 text

iPhone Dev Sapporo / 2025-02-02 Q. Server Side Swift ͬͯ୭͕࢖͍ͬͯ Δͷʁ A. ୭΋࢖͍ͬͯ·ͤΜʂʂʂʢաݴʣ

Slide 8

Slide 8 text

iPhone Dev Sapporo / 2025-02-02 Q. Server Side Swift ͬͯ୭͕࢖͍ͬͯΔͷʁ 2015 ೥ʹ Swift ͕ OSS ͰϦϦʔε͞Εͯɺ2016 ೥ʹ IBM ͕ Kitura ΛϦϦʔεͯ͠࿩୊ʹͳ͍ͬͯͨ – 2020 ೥ʹ IBM ʹΑΔ Kitura ͷ։ൃΛऴྃ͠ɺͦͷ ޙͷ։ൃ͸ OSS ͕ओಋ – ୭΋࢖͍ͬͯͳ͍͸աݴ͔΋Ͱ͕͢ɺ࠷ۙͷ࠾༻ࣄྫ ΋΄ͱΜͲฉ͔ͳ͘ͳͬͨͷͰɺ2025 ೥ 2 ݄࣌఺Ͱ ͸ྲྀߦ͍ͬͯΔͱ͸ݴ͑ͳ͍ঢ়گ –

Slide 9

Slide 9 text

iPhone Dev Sapporo / 2025-02-02 Q. Server Side Swift ͬͯ୭͕࢖͍ͬͯΔͷʁ ެʹΘ͔͍ͬͯΔେن໛ͳ࠾༻ࣄྫ͸ Amazon Prime Video – Amazon ࣾ੡ͷ Λ࢖༻͍ͯ͠Δ – smoke-framework 1 2024 ೥ʹ v3.0.0 ͕ϦϦʔε͞Ε͍ͯΔͨΊɺ·ͩ ࢖༻͞Ε͍ͯΔͱਪ࡯Ͱ͖Δ – The SmokeFramework has been written and is maintained by a team within PrimeVideo at Amazon. This framework allows us to run a number of micro services written in Swift on ECS/Fargate. 1.

Slide 10

Slide 10 text

iPhone Dev Sapporo / 2025-02-02 Q. Server Side Swift ͬͯ୭͕࢖͍ͬͯΔͷʁ ΧϯϑΝϨϯε͸։࠵͞Ε͍ͯΔ –

Slide 11

Slide 11 text

iPhone Dev Sapporo / 2025-02-02 Q. αʔόΛ Swift Ͱ࡞Δҙຯ͋Δͷʁ

Slide 12

Slide 12 text

iPhone Dev Sapporo / 2025-02-02 Q. αʔόΛ Swift Ͱ࡞Δҙຯ͋Δͷʁ A. ҙຯ͸ͳ͍Ͱ͢ʂʂʂʢաݴʣ

Slide 13

Slide 13 text

iPhone Dev Sapporo / 2025-02-02 Q. αʔόΛ Swift Ͱ࡞Δҙຯ͋Δͷʁ TypeScriptʢNode.jsʣ, Ruby, PHP, Go ͳͲɺ ͢Ͱʹαʔό։ൃͱ࣮ͯ͠੷͕͋Δ΋ͷ͕ଟ͘ ଘࡏ͢ΔͷʹɺΘ͟Θ͟ Swift Λબ୒͢Δҙຯ ͸ͳ͍Ͱ͢ʂ – ྫ͑͹ޙൃͷ Rust ͕αʔό։ൃͰ͋·Γීٴ ͍ͯ͠ͳ͍ײ͡ʹࣅ͍ͯΔͷ͔΋͠Ε·ͤΜ –

Slide 14

Slide 14 text

iPhone Dev Sapporo / 2025-02-02 Q. Swift ͩͱύϑΥʔϚϯε͕͍͍ɺ ίʔϧυελʔτ͕࣌ؒ୹͍ɺϝϞϦ҆ શɺܕ҆શɺNull ҆શͱ͔ϝϦοτ͋Δ ͔Β͍͍Μ͡Όͳ͍ʁ1 ΠϯλϓϦλͳ͠ɺJIT ͳ͠ɺGC ͳ͠ 1.

Slide 15

Slide 15 text

iPhone Dev Sapporo / 2025-02-02 Q. Swift ͩͱύϑΥʔϚϯε͕͍͍ɺ ίʔϧυελʔτ͕࣌ؒ୹͍ɺϝϞϦ҆ શɺܕ҆શɺNull ҆શͱ͔ϝϦοτ͋Δ ͔Β͍͍Μ͡Όͳ͍ʁ A. ͦΕΛ௒͑ΔσϝϦοτ͕ଟ͍Ͱ ͢ʂʂʂ

Slide 16

Slide 16 text

iPhone Dev Sapporo / 2025-02-02 Server Side Swift ͷσϝϦοτ ଞݴޠͱൺֱͯ͠ѹ౗తʹ։ൃऀਓޱ͕গͳ͍ – ࠾༻͍ͯ͠Δձ͕ࣾͳ͍ͷͰҾ͖ܧ͕͗ࠔ೉ – ΤίγεςϜ͕ൃల్্ – ϚΠφʔͳͷͰ SDK ͕ͳ͍͜ͱ͕ଟ͍ – Ϗϧυ͕࣌ؒಛʹ͔͔Δ –

Slide 17

Slide 17 text

iPhone Dev Sapporo / 2025-02-02 Q. ͳͥ Server Side Swift Λ΍Δͷʁ

Slide 18

Slide 18 text

iPhone Dev Sapporo / 2025-02-02 Q. ͳͥ Server Side Swift Λ΍Δͷʁ A. ΍Γ͍͔ͨΒͰ͢ʂʂʂ

Slide 19

Slide 19 text

iPhone Dev Sapporo / 2025-02-02 Server Side Swift ͷڧ͍ͯ͋͛ΒΕΔϝϦοτ ϑϩϯτΤϯυͱόοΫΤϯυͷ྆ํΛಉҰݴޠͷ Swift Ͱॻ͘͜ͱͰશମͷ։ൃޮ཰Λ্͕Δ͜ͱΛظ଴ – ʢ։ൃऀͷ਺͕શવҧ͍·͕͢ʣNode.js Λ࠾༻͢Δϝ Ϧοτͱಉ༷ – swift-openapi-generator Ͱͷίʔυੜ੒΍ɺڞ௨ͷఆٛΛ ϥΠϒϥϦԽ͢Δ͜ͱͰಉҰͷఆٛΛ࢖༻Մೳ – ಛʹαʔόଆ͕ Null ҆શͰ͸ͳ͍ݴޠͩͱۤ࿑͢Δ͜ ͱ΋ଟ͍ –

Slide 20

Slide 20 text

iPhone Dev Sapporo / 2025-02-02 Q. ͳͥ Server Side Swift Λ΍Δͷʁ ݸਓతͳཧ༝ͱͯ͠͸ɺSwift ͳΒݎ࿚Ͱอ कੑ͕ߴ͘ɺόά͕গͳ͍ϓϩμΫτΛ࡞Ε Δͱ৴͍ͯ͡Δ͔ΒͰ͢ʂ – 1 ଞݴޠͱͷൺֱͱ͔༏ྼͷ࿩Ͱ͸ͳ͍Ͱ͢ 1.

Slide 21

Slide 21 text

iPhone Dev Sapporo / 2025-02-02 ։ൃํ๏

Slide 22

Slide 22 text

iPhone Dev Sapporo / 2025-02-02 ։ൃํ๏ ௨ৗͷ iOS ։ൃͱಉ༷ʹ Xcode Λ࢖༻ͯ͠ɺ λʔήοτΛ macOS ʹ࣮ͯ͠ߦՄೳͳόΠφ ϦΛੜ੒ʢexecutableTargetʣ͠·͢ – ୤ .xcodeproj – Package.swift Ͱ։ൃ – VSCode Ͱ΋։ൃՄೳ –

Slide 23

Slide 23 text

iPhone Dev Sapporo / 2025-02-02 ։ൃํ๏ UI ࣮૷͔Βղ์͞ΕΔ – ը໘͕ͳ͍ͷͰ iOS ։ൃ͔Β SwiftUI / UIKit ͷ࣮૷͕ͳ͘ͳͬ ͯɺϏδωεϩδοΫ͚ͩΛ࣮૷͢ ΔΠϝʔδ –

Slide 24

Slide 24 text

iPhone Dev Sapporo / 2025-02-02 ։ൃํ๏ iOS ͷόʔδϣϯΞοϓରԠ͔Βղ์͞ΕΔ – Linux Ͱಈ͔͢ͷͰ iOS ʹґଘ͍ͯ͠ͳ͍ – Swift ͷόʔδϣϯͷΈҙࣝ͢Δ – Vapor ͱ͍͏ Server Side Swift Λߏங͢ΔϑϨʔϜ ϫʔΫΛ࢖༻͢Δ͜ͱͰɺશମͷઃܭʢιϑτ΢ΣΞ ΞʔΩςΫνϟʣ͕͢Ͱʹఆ·͍ͬͯΔঢ়ଶ͔Βε λʔτ͢ΔͷͰɺΤϯυϙΠϯτͷ࣮૷ʹूதͰ͖Δ –

Slide 25

Slide 25 text

iPhone Dev Sapporo / 2025-02-02 Vapor ͱ͸ ಡΈํ: ἖͍͐ͺʔɺ΂ʔͺʔ – 2016 ೥ 1 ݄͔Β։ൃ͞Ε͍ͯΔ Server Side Swift Λߏங͢ΔϑϨʔϜϫʔΫ – IBM ͷ Kitura ͱಉ࣌ظ – Swift ConcurrencyɺSwift Testing ͳͲ৽͍͠ػ ೳ΋͔ͬ͠Γαϙʔτ͞Ε͍ͯΔ –

Slide 26

Slide 26 text

iPhone Dev Sapporo / 2025-02-02 Vapor ͱ͸ ͦͷଞͷީิ ϥΠϒϥϦ ঢ়گ Kitura IBM ͕։ൃऴྃͨ͠ޙ͸ɺOSS ͷίϛϡχςΟͰϝϯς͞ΕͯΔ Perfect 2019 ೥ࠒҎ߱͸େ͖ͳΞοϓσʔτ͕ݟΒΕͳ͍ Smoke Amazon ࣾ੡ɺPrime Video Ͱ࠾༻ Hummingbird Vapor ͱಉ༷ʹ 2024 ೥࣌఺Ͱ΋։ൃ͕׆ൃͳܰྔͳϑϨʔϜϫʔΫ

Slide 27

Slide 27 text

iPhone Dev Sapporo / 2025-02-02 Vapor ͱ͸ 2024 ೥຤࣌఺Ͱ͸ Vapor, Hummingbird, Smoke ͷ͕̏ͭ༗ྗީิ – ࠷΋पลϥΠϒϥϦ͕ॆ࣮͍ͯͨ͠ Vapor Λ࠾༻ʂ –

Slide 28

Slide 28 text

iPhone Dev Sapporo / 2025-02-02 ։ൃ࣮੷

Slide 29

Slide 29 text

iPhone Dev Sapporo / 2025-02-02 2024 ೥຤ʹ࣮ࡍʹ։ൃ࣮ͨ͠੷ ޻਺͸2ਓ݄ఔ౓ – BFF (Backend for Frontend) ͱͯ͠ઃܭͨ͠ API αʔό Ͱɺ8 ͭͷΤϯυ ϙΠϯτΛఏڙ – BFF ͔Β͸ 4 ͭͷόοΫΤϯυαʔϏεͱ API ࿈ܞ – OAuthʢAuth0ʣ, Basic ೝূ – ΞφϦςΟΫεʢDataDogʣ – swift-openapi-generator Ͱ Client ͱ Server ͷίʔυΛੜ੒ – DB ͳ͠ – AWS Fargate ্ͷ Docker ίϯςφͰಈ࡞ –

Slide 30

Slide 30 text

iPhone Dev Sapporo / 2025-02-02 ྑ͔ͬͨͱ͜Ζͱ ಘΒΕͨ஌ݟ

Slide 31

Slide 31 text

iPhone Dev Sapporo / 2025-02-02 Linux Ͱಈ࡞Մೳ Docker ͕࢖༻Մೳ – CI Ͱ Linux Πϯελϯεʢ͍҆ʂʣ͕ ࢖༻Ͱ͖Δ –

Slide 32

Slide 32 text

iPhone Dev Sapporo / 2025-02-02 εςʔτϨε͔ͭɺ෭࡞༻Λ࣋ͨͳ͍ߏ଄͕ڧ੍͞ Εɺઃܭํ਑͕໌֬ʹͳΔ API ͸ҟͳΔϢʔβ͔ΒϦΫΤετ͞ΕΔͨΊɺҟ ͳΔϦΫΤετؒͰঢ়ଶΛڞ༗͢Δ΂͖Ͱ͸ͳ͍ ͷͰඞͣεςʔτϨεʢΦϯϝϞϦͷϓϩύςΟ Λ࣋ͨͳ͍ʣʹ͠ɺ෭࡞༻ʢ֎෦ͷϓϩύςΟʹ Αͬͯಈ࡞͕มΘΔʣ͕ͳ͍Α͏ʹ͢Δඞཁ͕͋ Δ –

Slide 33

Slide 33 text

iPhone Dev Sapporo / 2025-02-02 ݺٵΛ͢ΔΑ͏ʹ Unit Tests Λॻ͘ ಈ࡞֬ೝΛ౎౓ curl Λ͢Δͷ͸खؒ͗͢Δͷ Ͱɺࣗવͱಈ࡞֬ೝ == Unit Tests ͱͳΔ – ͦͷ݁ՌɺςετΛؤுͬͯॻ͜͏ͱҙࣝ͸͠ ͍ͯͳ͔͚ͬͨͲɺೲ඼࣌ͷίʔυΧόϨοδ ͸ 88% ͩͬͨ – 1 αʔόͷํʹฉ͍ͨΒଞݴޠͩͱ 60 % ͘Β͍ͱ͍͏ҰྫΛฉ͖·ͨ͠ʢ※΋ͪΖΜਓͱ؀ڥʹΑΔʣ 1.

Slide 34

Slide 34 text

iPhone Dev Sapporo / 2025-02-02 Vapor ͷ Middleware ͷઃܭ͕ૉ੖Β͠ ͘ɺ֤ϩδοΫΛૄ݁߹ʹ͠΍͍͢ Middleware ͸֤ϦΫΤετͷ௚લͱ ௚ޙʹԿΒ͔ͷॲཧΛૠೖͰ͖ΔΠ ϝʔδ –

Slide 35

Slide 35 text

iPhone Dev Sapporo / 2025-02-02 ྫ: Vapor Ͱ API ϦΫΤετΛॲཧ͢ΔྲྀΕ ࣮ߦॱ ϨΠϠʔ ॲཧ಺༰ 1 Middleware OAuth ͷೝূೝՄΛ֬ೝ 2 Middleware ΤϯυϙΠϯτͷॲཧʹඞཁͳґଘΛ DI ͢Δ 3 Controller ΤϯυϙΠϯτͷ࣮૷ 4 Middleware ϩάΛऔΔ 5 Middleware throw ͞ΕͨΤϥʔΛΤϥʔϨεϙϯεʹม׵͢Δ 1 OAuth ͕ෆཁͳ৔߹͸ɺಛఆͷΤϯυϙΠϯτͷΈ OAuth ͷ Middleware Λద༻͠ͳ͍Α͏ରԠ 1.

Slide 36

Slide 36 text

iPhone Dev Sapporo / 2025-02-02 API ϦΫΤετΛड͚Δଆͷؾ͕࣋ͪΘ͔ͬͨ ྫ͑͹ɺOAuth Λ࢖ͬͨϦΫΤετͰΫϥΠΞϯ τ͕ access_token Λ෇༩ͨ͠৔߹ɺͦΕॲཧ͢Δ αʔόଆͷೝূɾೝՄͷ࢓૊Έ͕۩ମతʹΘ͔ ΓɺAPI ϦΫΤετΛॲཧ͢ΔྲྀΕͷղ૾౓্͕ ͕ͬͨ – ࣗ෼͕े෼ʹ஌͍ͬͯΔݴޠͰ࣮ࡍʹ࣮૷ͯ͠ಘ ΒΕΔ஌ݟ͸େ͖͍ –

Slide 37

Slide 37 text

iPhone Dev Sapporo / 2025-02-02 ۤ࿑ͨ͠ͱ͜Ζ

Slide 38

Slide 38 text

iPhone Dev Sapporo / 2025-02-02 Foundation framework ͷࠩ෼͕͋Δ iOS ΍ macOS ։ൃͰ࢖༻͍ͯ͠Δ Foundation framework ͸ Objective-C ϥϯλΠϜʹґଘ͍ͯ͠ Δ෦෼͕͋ΔͨΊ Linux Ͱ͸࢖༻͕Ͱ͖ͳ͍ – ͦͷͨΊ Linux Ͱ͸ OSS ͷ swift-corelibs- foundation Λ࢖༻͞ΕΔ͕ɺҰ෦·ͩະ࣮૷ͷ API ͕͋Δ –

Slide 39

Slide 39 text

iPhone Dev Sapporo / 2025-02-02 Foundation framework ͷࠩ෼͕͋Δ swift-corelibs-foundation ͸ Foundation ͱಉ໊͡લۭؒΛ ͍࣋ͬͯΔͷͰ macOS Ͱ։ൃ͍ͯ͠Δ࣌ʹ͸ಛʹҙࣝ͸ ͠ͳͯ͘ࡁΉ – ͨͩ͠ɺޡͬͯ swift-corelibs-foundation Ͱ࣮૷͞Ε͍ͯ ͳ͍ API Λ࢖༻͍ͯ͠Δͱ Linux ͰϏϧυΤϥʔʹͳΔͷ Ͱɺ஫ҙ͢Δඞཁ͕͋Δ – macOS ͩͱ Foundation ͕࢖ΘΕΔͷͰϏϧυ͕௨Δͷ Ͱؾ෇͖ͮΒ͍ –

Slide 40

Slide 40 text

iPhone Dev Sapporo / 2025-02-02 Foundation framework ͷࠩ෼͕͋Δ ۩ମతʹࠔͬͨҰྫͱͯ͠ String Catalog ͕࢖༻Ͱ͖ ͳ͔ͬͨ – ݪҼ͸ swift-corelibs-foundation ʹ LocalizedStringResource ͷఆ͕ٛͳ͍ͨΊ – SwiftUI ͱͷ݁ͼ͖͕ͭڧ͍ API Ͱ͕͢ɺ࢓૊Έ্ ͸ LocalizedStringResource ͕͋Ε͹ಈ͔ͤΔ͸ͣ – ࠷ऴతʹ͸ Localizable.strings Λ࢖༻ͨ͠ –

Slide 41

Slide 41 text

iPhone Dev Sapporo / 2025-02-02 ΤϥʔϋϯυϦϯάपΓͷઃܭʹۤ࿑ αʔόͰ͸࠷ऴతʹ੒ޭͳΒ 200, 300ܥɺΤϥʔͳΒ400, 500 ܥΛϨεϙϯεͰฦ͢ – ΤϥʔΛ catch ͯ͠ 400, 500ܥʹϨεϙϯεʹม׵͢Δඞཁ ͕͋Δ – Vapor ͷΤϥʔϋϯυϦϯάͱɺswift-openapi-generator ͷΤ ϥʔϋϯυϦϯάͷ͕̎ͭ͋ΓɺͲͷํ๏Λ૊Έ߹ΘͤΔͷ͕ ϕετͳͷ͔Λ໛ࡧ͕͔͔ͯ࣌ؒͬͨ͠ – ࣗ෼ͷதͰͷϕετϓϥΫςΟε͸Ͱ͖ͨͷͰهࣄʹ͠·͢ –

Slide 42

Slide 42 text

iPhone Dev Sapporo / 2025-02-02 ͦͷଞ ΠϯϑϥपΓͷߏங͸ API αʔόͱ͸ҟͳΔ஌͕ࣝ͞Βʹඞཁ – Terraform, IAM, Route 53, ECS, Fargate... – ϩάग़ྗͷϑΥʔϚοτɺ؀ڥม਺ͷ؅ཧͳͲαʔόͱͯ͠ͷ ϕετϓϥΫςΟε͕͋Δ – Ϗϧυ͕͔͔࣌ؒΔ – ಈతܕ෇͚ݴޠ vs ੩తܕ෇͚ݴޠͱߟ͑ͨͱ͖ʹҰ֓ʹϏ ϧυ͕͔͔࣌ؒΔ͜ͱ͸ѱͰ͸ͳ͍͕ɺϦϦʔεʹ͕͔࣌ؒ ͔Δͷ͸ετϨεΛײ͡Δγʔϯ͸͋Δ –

Slide 43

Slide 43 text

iPhone Dev Sapporo / 2025-02-02 ղফͨ͠ෆ҆

Slide 44

Slide 44 text

iPhone Dev Sapporo / 2025-02-02 ղফͨ͠ෆ҆ Server Side Swift ͸ Go ͳͲͷίϯύΠϧ͢Δݴޠͱ ಉ༷ʹωΠςΟϒίʔυͰ࣮ߦͰ͖Δ࣮ߦՄೳϑΝΠ ϧΛੜ੒ͯ͠ɺͦΕΛಈ͔͚ͩ͢ͳͷͰɺSwift Λಈ͔ ͨ͢ΊʹԿ͔ಛघͳ؀ڥΛ༻ҙ͢ΔΘ͚Ͱ͸ͳ͘Ұൠ తͳ Linux ্Ͱಈ͔͢͜ͱ͕Մೳ – 1 Swift ϥϯλΠϜ͸Ϗϧυ࣌ʹ --static-swift-stdlib Ͱ੩తϦϯΫ͍ͯ͠ΔͷͰɺ୯Ұͷ࣮ߦՄೳϑΝΠϧΛ ubuntu Ͱಈ ͔͍ͤͯ·͢ 1.

Slide 45

Slide 45 text

iPhone Dev Sapporo / 2025-02-02 ղফͨ͠ෆ҆ ௨ৗͷ API αʔόΛ࣮૷͢ΔͨΊʹඞཁͳ΋ͷ͸Ұ௨ Γἧ͍ͬͯΔͷͰɺࠓճ͘Β͍ͷཁ݅Ͱͷ࣮૷ͰࠔΔ ͜ͱ͸΄ͱΜͲͳ͔ͬͨʂ – ORM: PostgreSQL, MySQL, SQLite, MongoDB – Redis – JWT – Crypto –

Slide 46

Slide 46 text

iPhone Dev Sapporo / 2025-02-02 ࠓޙͷ՝୊

Slide 47

Slide 47 text

iPhone Dev Sapporo / 2025-02-02 ؅ཧը໘ͷ࡞੒ ؅ཧը໘ͷ࡞੒͸ Vapor ͸௚઀αϙʔτ͍ͯ͠ ͳ͍ – Vapor ͷυΩϡϝϯτʹ͸ Leaf ͱ͍͏ςϯϓ ϨʔτݴޠΛ࢖͏͜ͱͰಈతͳ HTML ϖʔδΛ ੜ੒͢Δํ๏͕Ҋ಺͞Ε͍ͯΔ – ·ͩࢼ͍ͯ͠ͳ͍ͷͰࠓ౓৮ͬͯΈΔ –

Slide 48

Slide 48 text

iPhone Dev Sapporo / 2025-02-02 ґଘ͢ΔαʔϏε͕ Swift ͷ SDK Λఏڙ͍ͯ͠ͳ͍έʔε ͕͋Δ ʓʓͱ͍͏ SDK Λ࢖ͬͯ˚˚Λͯ͠ཉ͍͠ͱݴΘΕͨ৔ ߹ʹ SDK ͕ಋೖͰ͖ͳͯ͘ཁ݅Λຬͨ͢ͷ͕೉͘͠ͳΔ Մೳੑ͕͋Δ – Datadog ͸ Swift ͷ SDK ͕ଘࡏ͕ͯ͢͠͞ͱײͨ͡ – 1 େ఍͸ API Λୟ͚ͩ͘ͱ͔ͳͷͰͦ͜·Ͱ৺഑͸͍Βͳ ͍ͱ͸ࢥ͍ͭͭɺ͋Γͦ͏ͩͳͱݒ೦ – ࠷ऴతʹ͸ Datadog Agent Λ Sidecar ίϯςφͱͯ͠ಈ͔ͨ͠ͷͰ SDK ͸ೖΕͳ͔ͬͨ 1.

Slide 49

Slide 49 text

iPhone Dev Sapporo / 2025-02-02 ґଘ͢ΔαʔϏε͕ Swift ͷ SDK Λఏڙ͍ͯ͠ͳ͍έʔε͕͋Δ ݴޠ αϙʔτঢ়گ C, Objective-C, C++ ωΠςΟϒͰαϙʔτ Rust, Go C ޓ׵ͷϥΠϒϥϦͱͯ͠ίϯύΠϧͯ͠࢖༻ Python, JS Process ܦ༝Ͱ࣮ߦʢ͍͚Δͷ͔…ʁʣ Java swift-javaʢ2024೥9݄ެ։ʣ ͸ C ܥͱಉ༷ʹωΠςΟϒͰ૬ޓʹݺͼग़ͤΔ͜ͱ໨ ࢦ͍ͯ͠Δ ࠓޙͷ Swift ͷ૬ޓӡ༻ੑʢInteroperabilityʣʹظ଴ʁ –

Slide 50

Slide 50 text

iPhone Dev Sapporo / 2025-02-02 Server Side Swift Λ ීٴ͢Δʹ͋ͨͬͯͷ໰౴ू

Slide 51

Slide 51 text

iPhone Dev Sapporo / 2025-02-02 Q. Ҿ͖ܧ͕͗ࠔ೉͚ͩͲͲ͏͢Δͷʁ

Slide 52

Slide 52 text

iPhone Dev Sapporo / 2025-02-02 Q. Ҿ͖ܧ͕͗ࠔ೉͚ͩͲͲ͏͢Δͷʁ A. Ͳ͏ߟ͑ͯ΋ Server Side Swift ͕ αʔό։ൃͷ೼ݖΛऔΔ͜ͱ͸ͳ͍ͷ Ͱɺ͕ͦ͜໰୊ʹͳΔͳΒ࠾༻͠ͳ͍ํ ͕͍͍Ͱ͢ʂʂʂ

Slide 53

Slide 53 text

iPhone Dev Sapporo / 2025-02-02 Q. ։ൃऀ͕ू·ΓͮΒ͍͚ͲͲ͏͢Δ ͷʁ

Slide 54

Slide 54 text

iPhone Dev Sapporo / 2025-02-02 Q. ։ൃऀ͕ू·ΓͮΒ͍͚ͲͲ͏͢Δ ͷʁ A. ू·Βͳ͍ͳΒɺ࠾༻͠ͳ͍ํ͕͍͍ Ͱ͢ʂʂʂ

Slide 55

Slide 55 text

iPhone Dev Sapporo / 2025-02-02 Q. ʓʓݴޠͱൺֱͯ͠Ͳ͏ͳͷʁ

Slide 56

Slide 56 text

iPhone Dev Sapporo / 2025-02-02 Q. ʓʓݴޠͱൺֱͯ͠Ͳ͏ͳͷʁ A. ಛघͳཁ͕݅ͳ͍ݶΓେࠩ͸ͳ͍ͷ ͰɺΘ͟Θ͟ Swift Λ࠾༻͢ΔϝϦοτ ͸͋Γ·ͤΜʂʂʂ

Slide 57

Slide 57 text

iPhone Dev Sapporo / 2025-02-02 Q. Server Side Swift ͰͪΌΜͱ࡞Γ੾ ΕΔͷʁ

Slide 58

Slide 58 text

iPhone Dev Sapporo / 2025-02-02 Q. Server Side Swift ͰͪΌΜͱ࡞Γ੾ ΕΔͷʁ A. Amazon Prime Video ͕ Server Side Swift Ͱ࡞Ε͍ͯΔ࣮੷͕͋ΔͷͰɺཧ ࿦্͸ͳΜͰ΋࡞ΕΔͱࢥ͍·͢ʂʂʂ ʢݸਓͷײ૝ʣ

Slide 59

Slide 59 text

iPhone Dev Sapporo / 2025-02-02 Q. Android ΤϯδχΞ͸ Server Side Kotlin ΍ Flutter Λ΍ͬͨΓͰ͖Δ͚ ͲɺiOS ΤϯδχΞͬͯ௵͕͖͔͠ͳ͍ ΑͶ

Slide 60

Slide 60 text

iPhone Dev Sapporo / 2025-02-02 Q. Android ΤϯδχΞ͸ Server Side Kotlin ΍ Flutter Λ΍ͬͨΓͰ͖Δ͚ ͲɺiOS ΤϯδχΞͬͯ௵͕͖͔͠ͳ͍ ΑͶ A. Swift Ҏ֎ͷίʔυΛॻ͖ͨ͘ͳ͍ͳ Β Server Side Swift ͕͋Γ·͢ʂʂʂ ʢޏ༻૑ग़ʣ

Slide 61

Slide 61 text

iPhone Dev Sapporo / 2025-02-02 Server Side Swift Λ΍ΔϞνϕʔγϣϯ ʮ΍Γ͍͔ͨΒ΍ΔʯҎ֎Ͱ Server Side Swift Λ΍ΔϞνϕʔγϣϯ͸ɺ ϑϩϯτΤϯυͱόοΫΤϯυΛಉҰݴޠʹͯ͠ɺ։ൃޮ཰޲্ʢظ ଴ʣɺอक։ൃΛ͢Δਓ਺ͷ࡟ݮ͘Β͍ͩͱࢥ͍·͢ – ϑϩϯτΤϯυ1໊ɺόοΫΤϯυ1໊ඞཁͳͱ͜ΖΛ1໊ʹͰ͖Δ – 1 ͨͩ͠ɺಉ࣌ʹҾ͖ܧ͗ࠔ೉ͱ͍͏σϝϦοτ΋͋ΔͷͰϏδωε্͸ෆ ར – ͍΍ɺϕϯμʔϩοΫΠϯͰ͖ͯٯʹϝϦοτ͔…ʁ – 1ਓͰड͚࣋ͭͱ͍͏ҙຯͰ͸ͳ͘ɺ޻਺͕2ഒ͔͔ͬͯ΋͍͍ͷͰ෺ཧతͳΤϯδχΞͷਓ਺ΛݮΒ͢͜ͱ͕Ͱ͖Δ 1.

Slide 62

Slide 62 text

iPhone Dev Sapporo / 2025-02-02 ·ͱΊ Server Side Swift ͷ։ൃ͸୯७ʹָ͔ͬͨ͠ͷ Ͱɺࠓޙ΋ྗΛೖΕͯऔΓ૊ΜͰ͍͘༧ఆͰ͢ʂ – ࠓ೥͸Server Side Swift Ҋ݅Λ૿΍͍͖͍ͯͨ͠ ͱࢥ͍ͬͯ·͢ͷͰɺ΋͠΋ྑ͍࿩΍͓ࠔΓ͝ͱ ͕͋Γ·ͨ͠Βੋඇ͓੠͕͚Լ͍͞ʂ –

Slide 63

Slide 63 text

iPhone Dev Sapporo / 2025-02-02 ͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

Slide 64

Slide 64 text

iPhone Dev Sapporo / 2025-02-02 Zenn