Slide 1

Slide 1 text

2025/02/27 pixiv AppNight / atomic pixivίϛοΫͰͷXcode16ରԠ

Slide 2

Slide 2 text

atomic • 2024೥4݄৽ଔೖࣾ • AndroidΤχδχΞͱͯ͠ೖࣾ • ൒೥લʹAndroid࿮ͰAppNightొஃ • ݱࡏ • pixivίϛοΫ෦ iOSΤϯδχΞ

Slide 3

Slide 3 text

ΞδΣϯμ • Xcode16ʹ্͛Δ໨త • ൃੜͨ͠໰୊ͱରԠ • ؾΛ͚͓ͭͯ͘ͱྑ͍͜ͱ

Slide 4

Slide 4 text

ͳͥXcode16ʹ্͛Δͷ͔ʁ

Slide 5

Slide 5 text

ͳͥXcode16ʹ্͛Δʁ • ྫ೥௨ΓͰ͋Ε͹ɺ2025೥4݄͔Β͸Xcode16ͰϏϧυͨ͠ΞϓϦͰͳ ͍ͱετΞʹެ։Ͱ͖ͳ͘ͳΔ • 2025೥4݄Ҏ߱ɺApp Store ConnectʹΞοϓϩʔυ͢ΔΞϓϦ͸iOS 18ɺ iPadOS 18ɺtvOS 18ɺvisionOS 2ɺ·ͨ͸watchOS 11ʹରԠͨ͠SDKͰϏϧυ͢Δ ඞཁ͕͋Γ·͢ɻ • https://developer.apple.com/jp/news/?id=utw4yhtp

Slide 6

Slide 6 text

ͳͥXcode16ʹ্͛Δʁ • App Storeʹެ։͍ͯ͠ͳͯ͘΋ϝϦοτ͕͋Δ • Swift6͕࢖͑ΔΑ͏ʹͳΔ • SwiftUI Previewͷվળ • Ϗϧυ଎౓ͷߴ଎Խ • https://developer.apple.com/jp/videos/play/wwdc2024/10135/

Slide 7

Slide 7 text

ରԠํ๏

Slide 8

Slide 8 text

खॱ • Xcode16.x ΛΠϯετʔϧ͠Ϗϧυ • αϙʔτ͍ͯ͠Δ֤OSͰಈ࡞֬ೝ • ໰୊͕ൃੜͨ͠Օॴͷमਖ਼

Slide 9

Slide 9 text

ൃੜͨ͠໰୊ • λϒόʔͷҐஔ͕ҧ͏ • Ϟʔμϧͷ৭ͱαΠζ͕ҧ͏ • CollectionView͕ಛఆͷಈ࡞ͰΫϥογϡ͢Δ • ςΩετ಺ϦϯΫ͕ಈ࡞͠ͳ͍

Slide 10

Slide 10 text

λϒόʔͷҐஔ͕ҧ͏

Slide 11

Slide 11 text

λϒόʔͷҐஔ͕ҧ͏໰୊΁ͷରԠ • iPadOS18Ͱλϒόʔ্͕ʹҠಈͨ͠ ैདྷ iPadOS18

Slide 12

Slide 12 text

λϒόʔͷҐஔ͕ҧ͏໰୊΁ͷରԠ • iPadOS18͔Β࢓༷͕มߋ͞Εͨ https://developer.apple.com/documentation/uikit/elevating-your-ipad-app-with-a-tab-bar-and-sidebar#overview

Slide 13

Slide 13 text

λϒόʔͷҐஔ͕ҧ͏໰୊΁ͷରԠ • ํ਑ᶃ ৽͍͠λϒόʔͷUIʹ߹ΘͤͯɺσβΠϯΛ࡮৽ • ϝϦοτɿࠓޙ͸৽UI͕ओྲྀʹͳΔͱࢥΘΕΔ • σϝϦοτɿ΄΅શͯͷը໘ʹӨڹ͠ɺίετ͕େ͖͍ • ํ਑ᶄ iPadOS18Ͱ΋ैདྷ௨ΓͷUIʹͳΔΑ͏ʹରԠ • ϝϦοτɿํ਑ᶃΑΓ͸ίετ͕খ͍͞ • σϝϦοτɿઌԆ͹͍ͯ͠͠Δ͚ͩͰɺ͍ͣΕ৽UIʹରԠ͢Δ͜ͱʹͳΓͦ͏

Slide 14

Slide 14 text

λϒόʔͷҐஔ͕ҧ͏໰୊΁ͷରԠ • ํ਑ᶃ ৽͍͠λϒόʔͷUIʹ߹ΘͤͯɺσβΠϯΛ࡮৽ • ϝϦοτɿࠓޙ͸৽UI͕ओྲྀʹͳΔͱࢥΘΕΔ • σϝϦοτɿ΄΅શͯͷը໘ʹӨڹ͠ɺίετ͕େ͖͍ • ํ਑ᶄ iPadOS18Ͱ΋ैདྷ௨ΓͷUIʹͳΔΑ͏ʹରԠ • ϝϦοτɿํ਑ᶃΑΓ͸ίετ͕খ͍͞ • σϝϦοτɿઌԆ͹͍ͯ͠͠Δ͚ͩͰɺ͍ͣΕ৽UIʹରԠ͢Δ͜ͱʹͳΓͦ͏

Slide 15

Slide 15 text

• λϒͷཁૉΛίϐʔͨ͠λϒόʔΛ࡞੒͢Δ • طଘͷλϒόʔ͸ඇදࣔʹɺΞΠςϜ΍ߴ͞Λίϐʔͨ͠λϒόʔΛaddSubView͢Δ iPadOS18Ͱ΋ैདྷ௨Γͷλϒόʔʹ͢Δ

Slide 16

Slide 16 text

• ஫ҙ఺ • UITabBarController෇ଐͷTabBarͰ͸ͳ͘ɺࣗલͰ༻ҙͨ͠UITabBarͰ͋Δ • Πϝʔδͱͯ͠͸ը໘ʹͨͩViewΛ৐͚ͬͯΔ͚ͩ • Safe areaΛߟྀͯ͋͛͠ͳ͍ͱεΫϩʔϧͷߴ͞ܭࢉ͕ζϨͯ͠·͏ iPadOS18Ͱ΋ैདྷ௨Γͷλϒόʔʹ͢Δ

Slide 17

Slide 17 text

• ͋͘·ͰҰ࣍ରԠͰ͋Γɺ࠷ऴతʹ͸৽λϒόʔʹ߹Θ͍ͤͯ͘༧ఆ • ৽λϒόʔʹରԠ͍ͯ͠Δ࣮ྫ΋গͳ͍ͷͰ༷ࢠΛݟ͍ͨ ࠓޙͷํ਑

Slide 18

Slide 18 text

ϞʔμϧͷαΠζ͕มΘͬͨ

Slide 19

Slide 19 text

ϞʔμϧͷαΠζ͕มΘͬͨ໰୊΁ͷରԠ • ൃੜͨ͠ࣄ৅

Slide 20

Slide 20 text

ϞʔμϧͷαΠζ͕มΘͬͨ໰୊΁ͷରԠ • ݪҼ • modalPresentationStyleΛࢦఆ͠ͳ͍৔߹ʹɺࣗಈͰબ୒͞ΕΔstyle ͕.pageSheet͔Β.formSheetʹมߋ͞Ε͍ͯͨ • ରԠ • ໌ࣔతʹstyleΛࢦఆ͢Δ

Slide 21

Slide 21 text

CollectionViewͰΫϥογϡ͕ൃੜ

Slide 22

Slide 22 text

CollectionViewͰΫϥογϡ͕ൃੜͨ͠໰୊΁ͷ ରԠ • cellForItemAt಺Ͱจࣈม׵͢Δͱ͍͏ॏΊͷॲཧΛ࣮ߦ͍ͯͨ͠ՕॴͰ Ϋϥογϡ͕ൃੜ͢ΔΑ͏ʹͳͬͨ • ςΩετΛදࣔ͢Δͨͼʹจࣈม׵Λߦͳ͍ͬͯͨͷͰɺࣄલʹม׵ ͓͖ͯ͠࠶ར༻͢ΔΑ͏ʹͨ͠

Slide 23

Slide 23 text

hitTestͰTextView͕λοϓͰ͖ͳ͘ ͳͬͨ

Slide 24

Slide 24 text

hitTestͰTextView͕λοϓͰ͖ͳ͍໰୊΁ͷରԠ • TextViewΛλοϓͯ͠΋hitTestͰUITextView͕ؼͬͯ͜ͳ͍ • super.hitTest(point, with: event)ͰฦΔ஋ • iOS18Ͱ͸UIView • iOS17Ͱ͸TextView

Slide 25

Slide 25 text

hitTestͰTextView͕λοϓͰ͖ͳ͍໰୊΁ͷରԠ • ViewHierarchyͰ֬ೝ͢ΔͱTextViewͷߏ଄͕มΘ͍ͬͯͨ iOS17 iOS18

Slide 26

Slide 26 text

hitTestͰTextView͕λοϓͰ͖ͳ͍໰୊΁ͷରԠ • औಘ͞ΕͨUIView͕TextViewͷsubViewʹؚ·Ε͍ͯΔ͔Ͳ͏͔Λ൑ఆ ͠ɺؚ·Ε͍ͯͨΒTextViewΛฦ͢Α͏ʹͨ͠

Slide 27

Slide 27 text

ؾΛ͚͓ͭͯ͘ͱྑ͍͜ͱ

Slide 28

Slide 28 text

ؾΛ͚͓ͭͯ͘ͱྑ͍͜ͱ • ࠷ॳͷಈ࡞֬ೝ͚ͩͰ͸ɺશͯͷ໰୊ʹؾ͔ͮͳ͍ • ରԠ͙ͯ͢͠ϦϦʔεͰ͸ͳ͘ɺ·ͣ͸։ൃ؀ڥʹೖΕͯɺଞͷ࡞ۀΛ ͭͭ͠όά͕ͳ͍͔֬ೝ͢Δ • 2ि͙ؒΒ͍ݟ͓ͯ͘ͱ҆৺ • ։ൃ؀ڥͰࢼݧಋೖ͢Δظؒ΋ؚΊͯɺରԠ࣌ظΛߟ͑Δ