Upgrade to Pro — share decks privately, control downloads, hide ads and more …

New_features_in_Xcode26.3_to_Xcode26.4.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 New_features_in_Xcode26.3_to_Xcode26.4.pdf

2026年4月5日 札幌iPhone開発懇談会プレゼンテーション資料

Avatar for notoroid

notoroid

April 04, 2026

More Decks by notoroid

Other Decks in Programming

Transcript

  1. ࣗݾ঺հ w J1IPOFΞϓϦ։ൃऀ 9!OPUPSPJE  w ΞϓϦ։ൃऀྺ ʙ  w

    ΞϓϦ࡞࢛ͬͯ൒ੈل 8JOEPXTΞϓϦʙJ04  w झຯ͸ήʔϜ ൓ࣹਆܦ͕ਰ͑ͱ໨ͷർΕ͕ൈ͚ͳ͍  w ࠷ۙ༡ΜͩήʔϜ w θϧμͷ఻આϒϨεΦϒβϫΠϧυ48FEJUJPO
  2. 9DPEFͷΤʔδΣϯτػೳ $-* NDQͱͷൺֱ w ϑΝΠϧఴ෇΍΍Γ௚͠ػೳ౥ࡌ w $-*ϕʔεͰग़དྷΔ͜ͱͷ౿ऻ w ϑΝΠϧ಺ͷίϯςΩετΛ!ͰࢦఆՄೳ w

    "*ΤʔδΣϯτͷਪ࿦͕ڧྗ͗ͯ͢!Ͱ໌ࣔ͢Δඞཁੑ͕௿Լ w ϓϩδΣΫτ಺ͷϑΝΠϧૢ࡞͸"*ͱ઀ଓ͍ͯ͠ΔͬΆ͍ w "QQMFۘ੡ͷNDQͷΑ͏ͳಈ͖͕Մೳ w ϓϩδΣΫτ಺ͷૢ࡞Λ"*ʹఏڙ͍ͯ͠ΔΘ͚Ͱͳ͍ w "*ΤʔδΣϯτ͕QZUIPOΛݺͼग़ͯ͠ϓϩδΣΫτઃఆ QSPKFDUQCYQSPK Λௐ͍ࠪͯ͠Δ
  3. 4XJGU͕ϦϦʔε 9DPEFʹಉࠝ 88%$Ͱ༧ࠂ͞Ε͍ͯͨػೳ͕ར༻Մೳʹ w ݴޠ w $ݴޠͱͷޓ׵ੑ !D ɺ04૊ΈࠐΈ޲͚ͷػೳڧԽ w

    ඪ४ϥΠϒϥϦ w 4XJGU಺಺෦දهؔ਺Λ௚઀ݺͼग़͠Մೳʹ w 4XJGU1. ύοέʔδϚωʔδϟʔؔ܎  w ΧελϜςϯϓϨʔτΛ࢖༻Մೳʹ ελʔτΞοϓςϯϓϨʔτ༻్  w 4XJGU5FTUJOH w ςετʹը૾ఴ෇Մೳʹ αʔυύʔςΟଞͰ࣮ݱͰ͖͍ͯͨ΋ͷΛ"QQMFۘ੡ʹ  w ςετؔ܎ͷ͞·͟·ͳػೳڧԽ    ݴޠ ඪ४ϥΠϒϥϦ 4XJGU1. 4XJGU5FTUJOH
  4. ,FZ1BUIͷએݴͱ࢖༻ํ๏ import UIKit class SampleManager { let urlHome = URL(string:

    "https://irimasu.com")! let urlUvc = URL(string: "https://irimasu.com/uvc-usb-video-class-support-by-apple- multiplatform")! let urlObservation = URL(string: "https://irimasu.com/swiftui-observation")! let defaultColor: UIColor = .darkGray let colors: [UIColor] = [.red, .green, .blue, .yellow, .orange, .purple, .brown, .cyan, .magenta, .black, .white] } let sampleManager = SampleManager() // KeyPathΛએݴ let keyPathUrl: KeyPath<SampleManager, URL> = \.urlHome // SampleManagerͷURLܕͷΈ༗༻ let url = sampleManager[keyPath: keyPathUrl] // KeyPathΛએݴ var keyPathColor: KeyPath<SampleManager, UIColor> = \.colors[0] // ഑ྻͷཁૉΛࢦఆՄೳ var color = sampleManager[keyPath: keyPathColor] keyPathColor = \.defaultColor // ܕ͕ಉ͡Ͱ͋Ε͹֨ೲՄೳ color = sampleManager[keyPath: keyPathColor]
  5. ੩తϓϩύςΟ΁ͷ,FZ1BUIαϙʔτ௥Ճ ࣗ෼ࣗ਎Λ໌ࣔ͢Δ৔߹ a<ϝλఆ໊ٛ5ZQF>Ωʔ໊\Ωʔ໊^ ϝλఆٛ DMBTT TUSVDU FOVN ಺Ͱ͸,FZ1BUIͷܕΛએݴʹ4FMG΋࢖༻Մೳ a4FMG5ZQFΩʔ໊ ,FZ1BUI͔Β஋Λࢀর͢Δʹ͸

    a<ϝλఆ໊ٛ>TFMG<഑ྻΩʔ໊> ,FZ1BUI͔Β஋Λࢀর͢Δ a<ϝλఆ໊ٛ>TFMG<഑ྻΩʔ໊> ϝλఆٛ DMBTT TUSVDU FOVN ಺Ͱ͸,FZ1BUI͔Β஋Λࢀর͢Δ a4FMGTFMG<഑ྻΩʔ໊>
  6. ੩తϓϩύςΟ΁ͷ,FZ1BUIྫ @MainActor class FooManager { static let shared = FooManager()

    let tintColor: UIColor = .tintColor } let keyPathSharedColor: KeyPath<FooManager.Type, UIColor> = \FooManager.Type.shared.tintColor let sharedColor = FooManager.self[keyPath: keyPathSharedColor]
  7. ੩తϓϩύςΟ΁ͷ,FZ1BUI࢖༻ྫ @MainActor class FooManager { static let shared = FooManager()

    let tintColor: UIColor = .tintColor } let keyPathSharedColor: KeyPath<FooManager.Type, UIColor> = \FooManager.Type.shared.tintColor let sharedColor = FooManager.self[keyPath: keyPathSharedColor] ੩తϓϩύςΟ΁ͷ,FZ1BUI࢖༻͸4XJGUݴޠͷ੔߹ੑΛ ߴΊ͍ͯΔ͔΋͠Εͳ͍͕ඞਢͷΑ͏ͳػೳʹݟ͑ͳ͍
  8. 4XJGU 8BTNͷαϯϓϧϖʔδ w 4JNQMF8FC #SJEHF+4)FMMP w IUUQTTJNQMFCSJEHFKTXFCBQQ w σόοάϩάΛϖʔδʹදࣔ w

    6OJU$POWFSUFS w IUUQTVOJUDPOWFSUFSFBECXFCBQQ w Թ౓ ˆ›' ม׵αϯϓϧ
  9. ࢀߟ OPUPSPJE4QFBLFS%FDL w 4XJGUͷ৽ػೳ88%$ϏσΦ"QQMF %FWFMPQFS w IUUQTEFWFMPQFSBQQMFDPNKQWJEFPT QMBZXXED w (FUUJOH4UBSUFEXJUI4XJGU4%,TGPS

    8FC"TTFNCMZcTXJGUPSH w IUUQTXXXTXJGUPSHEPDVNFOUBUJPO BSUJDMFTXBTNHFUUJOHTUBSUFEIUNM w 📓,FZ1BUIͷৄࡉʛ4XJGUɿ$BTF1BUIه๏ w IUUQT[FOOEFWLBCFZBCPPLT DBTFQBUIHVJEFWJFXFSBEWBODFE LFZQBUI w 4XJGU6* $PNCJOF'SBNFXPSL ,FZ1BUIݎݻ ͳؔ܎͔Β4XJGU6*΁ͷᮢ஋ΛԼ͛Δ4QFBLFS %FDL w IUUQTTQFBLFSEFDLDPNOPUPSPJETXJGUVJ DPNCJOFGSBNFXPSLLFZQBUIKJBOHV OBHVBOYJLBSBTXJGUVJIFGBMTFZV[IJXPYJB HFSV w 4XJGUͷ,FZ1BUIΛ࢖͍͜ͳ͢J042JJUB w IUUQTRJJUBDPN3ZVJUFNT DEEEEE ff D