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
pixivコミックでのXcode16対応
Search
atomic
February 27, 2025
Technology
0
63
pixivコミックでのXcode16対応
2025/02/27に行われたAppNightの登壇資料です
atomic
February 27, 2025
Tweet
Share
More Decks by atomic
See All by atomic
新卒AndroidエンジニアがOJTで学んだこと
atomic928
0
120
Other Decks in Technology
See All in Technology
内製化を加速させるlaC活用術
nrinetcom
PRO
2
130
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
340
依存パッケージの更新はコツコツが勝つコツ! / phpcon_nagoya2025
blue_goheimochi
3
200
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
290
スキルだけでは満たせない、 “組織全体に”なじむオンボーディング/Onboarding that fits “throughout the organization” and cannot be satisfied by skills alone
bitkey
0
160
データベースの負荷を紐解く/untangle-the-database-load
emiki
1
460
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
350
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
8
3.4k
「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly
i35_267
4
800
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
580
日経のデータベース事業とElasticsearch
hinatades
PRO
0
210
Share my, our lessons from the road to re:Invent
naospon
0
130
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Designing for Performance
lara
604
68k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Optimizing for Happiness
mojombo
376
70k
Into the Great Unknown - MozCon
thekraken
35
1.6k
GitHub's CSS Performance
jonrohan
1030
460k
Six Lessons from altMBA
skipperchong
27
3.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Invisible Side of Design
smashingmag
299
50k
Transcript
2025/02/27 pixiv AppNight / atomic pixivίϛοΫͰͷXcode16ରԠ
atomic • 20244݄৽ଔೖࣾ • AndroidΤχδχΞͱͯ͠ೖࣾ • લʹAndroidͰAppNightొஃ • ݱࡏ •
pixivίϛοΫ෦ iOSΤϯδχΞ
ΞδΣϯμ • Xcode16ʹ্͛Δత • ൃੜͨ͠ͱରԠ • ؾΛ͚͓ͭͯ͘ͱྑ͍͜ͱ
ͳͥXcode16ʹ্͛Δͷ͔ʁ
ͳͥXcode16ʹ্͛Δʁ • ྫ௨ΓͰ͋Εɺ20254݄͔ΒXcode16ͰϏϧυͨ͠ΞϓϦͰͳ ͍ͱετΞʹެ։Ͱ͖ͳ͘ͳΔ • 20254݄Ҏ߱ɺApp Store ConnectʹΞοϓϩʔυ͢ΔΞϓϦiOS 18ɺ iPadOS
18ɺtvOS 18ɺvisionOS 2ɺ·ͨwatchOS 11ʹରԠͨ͠SDKͰϏϧυ͢Δ ඞཁ͕͋Γ·͢ɻ • https://developer.apple.com/jp/news/?id=utw4yhtp
ͳͥXcode16ʹ্͛Δʁ • App Storeʹެ։͍ͯ͠ͳͯ͘ϝϦοτ͕͋Δ • Swift6͕͑ΔΑ͏ʹͳΔ • SwiftUI Previewͷվળ •
ϏϧυͷߴԽ • https://developer.apple.com/jp/videos/play/wwdc2024/10135/
ରԠํ๏
खॱ • Xcode16.x ΛΠϯετʔϧ͠Ϗϧυ • αϙʔτ͍ͯ͠Δ֤OSͰಈ࡞֬ೝ • ͕ൃੜͨ͠Օॴͷमਖ਼
ൃੜͨ͠ • λϒόʔͷҐஔ͕ҧ͏ • Ϟʔμϧͷ৭ͱαΠζ͕ҧ͏ • CollectionView͕ಛఆͷಈ࡞ͰΫϥογϡ͢Δ • ςΩετϦϯΫ͕ಈ࡞͠ͳ͍
λϒόʔͷҐஔ͕ҧ͏
λϒόʔͷҐஔ͕ҧ͏ͷରԠ • iPadOS18Ͱλϒόʔ্͕ʹҠಈͨ͠ ैདྷ iPadOS18
λϒόʔͷҐஔ͕ҧ͏ͷରԠ • iPadOS18͔Β༷͕มߋ͞Εͨ https://developer.apple.com/documentation/uikit/elevating-your-ipad-app-with-a-tab-bar-and-sidebar#overview
λϒόʔͷҐஔ͕ҧ͏ͷରԠ • ํᶃ ৽͍͠λϒόʔͷUIʹ߹ΘͤͯɺσβΠϯΛ৽ • ϝϦοτɿࠓޙ৽UI͕ओྲྀʹͳΔͱࢥΘΕΔ • σϝϦοτɿ΄΅શͯͷը໘ʹӨڹ͠ɺίετ͕େ͖͍ • ํᶄ
iPadOS18Ͱैདྷ௨ΓͷUIʹͳΔΑ͏ʹରԠ • ϝϦοτɿํᶃΑΓίετ͕খ͍͞ • σϝϦοτɿઌԆ͍ͯ͠͠Δ͚ͩͰɺ͍ͣΕ৽UIʹରԠ͢Δ͜ͱʹͳΓͦ͏
λϒόʔͷҐஔ͕ҧ͏ͷରԠ • ํᶃ ৽͍͠λϒόʔͷUIʹ߹ΘͤͯɺσβΠϯΛ৽ • ϝϦοτɿࠓޙ৽UI͕ओྲྀʹͳΔͱࢥΘΕΔ • σϝϦοτɿ΄΅શͯͷը໘ʹӨڹ͠ɺίετ͕େ͖͍ • ํᶄ
iPadOS18Ͱैདྷ௨ΓͷUIʹͳΔΑ͏ʹରԠ • ϝϦοτɿํᶃΑΓίετ͕খ͍͞ • σϝϦοτɿઌԆ͍ͯ͠͠Δ͚ͩͰɺ͍ͣΕ৽UIʹରԠ͢Δ͜ͱʹͳΓͦ͏
• λϒͷཁૉΛίϐʔͨ͠λϒόʔΛ࡞͢Δ • طଘͷλϒόʔඇදࣔʹɺΞΠςϜߴ͞Λίϐʔͨ͠λϒόʔΛaddSubView͢Δ iPadOS18Ͱैདྷ௨Γͷλϒόʔʹ͢Δ
• ҙ • UITabBarControllerଐͷTabBarͰͳ͘ɺࣗલͰ༻ҙͨ͠UITabBarͰ͋Δ • Πϝʔδͱͯ͠ը໘ʹͨͩViewΛ͚ͬͯΔ͚ͩ • Safe areaΛߟྀͯ͋͛͠ͳ͍ͱεΫϩʔϧͷߴ͞ܭࢉ͕ζϨͯ͠·͏ iPadOS18Ͱैདྷ௨Γͷλϒόʔʹ͢Δ
• ͋͘·ͰҰ࣍ରԠͰ͋Γɺ࠷ऴతʹ৽λϒόʔʹ߹Θ͍ͤͯ͘༧ఆ • ৽λϒόʔʹରԠ͍ͯ͠Δ࣮ྫগͳ͍ͷͰ༷ࢠΛݟ͍ͨ ࠓޙͷํ
ϞʔμϧͷαΠζ͕มΘͬͨ
ϞʔμϧͷαΠζ͕มΘͬͨͷରԠ • ൃੜͨ͠ࣄ
ϞʔμϧͷαΠζ͕มΘͬͨͷରԠ • ݪҼ • modalPresentationStyleΛࢦఆ͠ͳ͍߹ʹɺࣗಈͰબ͞ΕΔstyle ͕.pageSheet͔Β.formSheetʹมߋ͞Ε͍ͯͨ • ରԠ • ໌ࣔతʹstyleΛࢦఆ͢Δ
CollectionViewͰΫϥογϡ͕ൃੜ
CollectionViewͰΫϥογϡ͕ൃੜͨ͠ͷ ରԠ • cellForItemAtͰจࣈม͢Δͱ͍͏ॏΊͷॲཧΛ࣮ߦ͍ͯͨ͠ՕॴͰ Ϋϥογϡ͕ൃੜ͢ΔΑ͏ʹͳͬͨ • ςΩετΛදࣔ͢ΔͨͼʹจࣈมΛߦͳ͍ͬͯͨͷͰɺࣄલʹม ͓͖ͯ͠࠶ར༻͢ΔΑ͏ʹͨ͠
hitTestͰTextView͕λοϓͰ͖ͳ͘ ͳͬͨ
hitTestͰTextView͕λοϓͰ͖ͳ͍ͷରԠ • TextViewΛλοϓͯ͠hitTestͰUITextView͕ؼͬͯ͜ͳ͍ • super.hitTest(point, with: event)ͰฦΔ • iOS18ͰUIView •
iOS17ͰTextView
hitTestͰTextView͕λοϓͰ͖ͳ͍ͷରԠ • ViewHierarchyͰ֬ೝ͢ΔͱTextViewͷߏ͕มΘ͍ͬͯͨ iOS17 iOS18
hitTestͰTextView͕λοϓͰ͖ͳ͍ͷରԠ • औಘ͞ΕͨUIView͕TextViewͷsubViewʹؚ·Ε͍ͯΔ͔Ͳ͏͔Λఆ ͠ɺؚ·Ε͍ͯͨΒTextViewΛฦ͢Α͏ʹͨ͠
ؾΛ͚͓ͭͯ͘ͱྑ͍͜ͱ
ؾΛ͚͓ͭͯ͘ͱྑ͍͜ͱ • ࠷ॳͷಈ࡞֬ೝ͚ͩͰɺશͯͷʹؾ͔ͮͳ͍ • ରԠ͙ͯ͢͠ϦϦʔεͰͳ͘ɺ·ͣ։ൃڥʹೖΕͯɺଞͷ࡞ۀΛ ͭͭ͠όά͕ͳ͍͔֬ೝ͢Δ • 2ि͙ؒΒ͍ݟ͓ͯ͘ͱ҆৺ • ։ൃڥͰࢼݧಋೖ͢ΔظؚؒΊͯɺରԠ࣌ظΛߟ͑Δ