Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
iOSDC2025 みてねiOSアプリにおける バックグラウンドアップロード継続の挑戦
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
HikaruSato
September 20, 2025
Technology
2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSDC2025 みてねiOSアプリにおける バックグラウンドアップロード継続の挑戦
https://fortee.jp/iosdc-japan-2025/proposal/30a8ef80-5065-49e9-983a-3c26784f51f2
HikaruSato
September 20, 2025
More Decks by HikaruSato
See All by HikaruSato
映像変換サーバーなしで端末内でHLSを生成してライブ配信
hikarusato
0
340
TestFlightの ProvisioningProfileを使って、 InHouseライクなipaを作る
hikarusato
0
1.7k
AppStoreで最新バージョン以外のiOSアプリをDownloadする方法
hikarusato
22
10k
Other Decks in Technology
See All in Technology
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
360
Codex概要
ymiya55
0
500
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
300
Running Kotlin + Quarkus with Lambda
nealle
0
380
自主式軟體工廠
philipz
0
250
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
120
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
120
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.5k
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
3.3k
パッチ更新でterraform initが落ちた日
grimoh
1
120
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
330
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
0
300
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
7.2k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
540
Automating Front-end Workflow
addyosmani
1369
210k
Rails Girls Zürich Keynote
gr2m
96
14k
Navigating Weather and Climate Data
rabernat
0
550
Raft: Consensus for Rubyists
vanstee
142
7.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
Designing Experiences People Love
moore
143
24k
Transcript
©MIXI 1 ΈͯͶiOSΞϓϦʹ͓͚Δ όοΫάϥϯυΞοϓϩʔυܧଓͷઓ iOSDC 2025
©MIXI 2 ࣗݾհ • ࠤ౻ ޫ(Hikaru Sato) • גࣜձࣾMIXI ΈͯͶࣄۀຊ෦
• ՈΞϧόϜΈͯͶͷiOSΤϯδχΞ
©MIXI 3 ຊτʔΫͰ͢͜ͱ • ΈͯͶͱ • ڈ࣮ͨ͠όοΫάϥϯυΞοϓϩʔυʹ͍ͭͯ ◦ڈղܾͨ͠՝ ◦࠾༻ͨ͠ղܾҊ ◦ࠓޙΓ͍ͨ͜ͱ
• iOS26 SDKͷ׆༻ • ·ͱΊ
©MIXI 4 ΈͯͶͱ
©MIXI 5 ࢠͲͷࣸਅͱಈըΛՈʹڞ༗ͯ͠ίϛϡ χέʔγϣϯΛָͯ͠͠ΉεϚϗΞϓϦ
©MIXI 6 ࣸਅɾಈըΛɺແྉɾແ੍ݶʹڞ༗Ͱ͖Δ
©MIXI 7 • ΈͯͶʹ͓͍ͯʮࣸਅͱಈըΛՈʹڞ༗͢ ΔʯʢΞοϓϩʔυʣͱͯॏཁ • ʮΞοϓϩʔυମݧͷվળʯ͕ࠓճͷςʔϚ
©MIXI 8 ڈղܾͨ͠՝
©MIXI 9 • ը૾ɾಈըͷΞοϓϩʔυதʹόοΫάϥϯυભҠ͢ Δͱ30ඵͰΞοϓϩʔυ͕தஅ͞Εͯ͠·͏ ◦ iOSͷ beginBackgroundTask ͷ੍ݶ ◦
ͦͷͨΊΞοϓϩʔυதʹΞϓϦΛ։͖ଓ͚͍ͯΔඞཁ͕͋Δ ◦ ΈͯͶͰҰʹଟ͘ͷը૾ɾಈըΛΞοϓϩʔυ͢Δ͕͋ ΔͨΊɺ͜ͷ੍ݶͰΞοϓϩʔυ͕தஅ͞Ε͍͢ ՝
©MIXI 10 Ξοϓϩʔυதஅ͞Εͨ࣌
©MIXI 11 BGProcessingTaskͷ༷͕ΈͯͶͱ߹Θͳ͔ͬͨ • 1ճͷ࣮ߦ͕࣌ؒ5ఔ • ͍ಈըͷΞοϓϩʔυ͕ऴΘΒͳ͍ • ͕ΞΠυϧঢ়ଶ •
Ξοϓϩʔυྃޙͷ௨͕ਂʹඈΜͰ͠·͏ݒ೦ × ղܾҊ1 BGProcessingTask https://developer.apple.com/documentation/backgroundtasks/bgprocessingtask
©MIXI 12 • Widget ExtensionͷҰछͰ͋ΔͨΊΞϓϦଆͷॲཧΛܧଓ͢Δ͜ ͱͰ͖ͳ͔ͬͨ × ղܾҊ2 Live Activity
https://developer.apple.com/jp/design/human-interface-guidelines/live-activities
©MIXI 13 • ϓϩτλΠϓΛ࡞ͬͨͱ͜ΖUIʹPiPͷಈըૢ࡞ͷϘλϯ͕ग़ ͯ͠·͏͕όοΫάϥϯυ࣌Ξοϓϩʔυ͕ܧଓ͞Εͨ ◦ ղܾҊ3 ϐΫνϟΠϯϐΫνϟ ϓϩτλΠϓͷ࣌ͷUI
©MIXI 14 ࣮ࡍʹϦϦʔεͨ͠ػೳ
©MIXI 15 • ΞοϓϩʔυதͷόοΫάϥϯυભҠ࣌ʹUIViewΛϐΫ νϟΠϯϐΫνϟ(PiP)Ͱදࣔ͢Δ͜ͱͰΞοϓϩʔυΛܧ ଓ͢Δ ◦ ͜ͷػೳʮΈͯͶϓϨϛΞϜProʢ༗ྉϓϥϯʣʯݶఆ ◦ ຊػೳಛڐग़ئத
ϦϦʔεͨ͠ػೳ
©MIXI 16 • BGProcessingTaskҊ(ਂͷॆిதͷΞοϓϩʔυ)ͷࣾಈ࡞ ϨϏϡʔલʹͦͷҊ͕μϝͩͬͨ࣌ʹͲ͏͢Δ͔ΛਓͰ૬ஊ͠ ͍ͯͨ࣌ʹग़ͨΞΠσΞͷ̍ͭͩͬͨɻ ◦ ࢼ͠ʹPiPͰ࣮ͯ͠ΈͨΒόοΫάϥϯυ੍ݶΛಥഁͰ͖͍ͯͨ ◦ PiPͰదͳද͕ࣔͰ͖ͳ͔ͬͨΒదͳϩʔΧϧͷಈըΛPiPͰ࠶ੜ͠
͓ͯ͘ͳͲҊͱͯ͋ͬͨ͠ ղܾࡦ͕ੜ·Εͨഎܠ
©MIXI 17 Έ UIViewΛϏσΦ ϑϨʔϜΛදࣔ͢ΔΦϒδΣΫτ (AVSampleBufferDisplayLayer)ʹม͢Δ͜ͱͰPiPͰද͍ࣔͯ͠Δ
©MIXI 18 ࢀߟࢿྉ • uakihir0͞ΜͷGithubͷެ։ϥΠϒϥϦ ◦ https://github.com/uakihir0/UIPiPView • ϛϥςΟϒ͞Μͷ৴ίϝϯτόʔͷTech Blog
◦ https://tech.mirrativ.stream/entry/2021/11/26/114002 • iOSDC 2022 ͷTsuzukihashi͞ΜͷτʔΫ ◦ https://speakerdeck.com/tsuzuki817/dong-hua-dakeziyanai-ios- 15nopikutiyainpikutiyawoshi-tutehao-kinauiwobiao-shi-saseyou
©MIXI 19 ͔ͬͨ͠ͱ͜Ζ
©MIXI 20 • UIViewΛPiPͰදࣔ͢ΔͨΊͷ࣮ • όοΫάϥϯυભҠ࣌ʹࣗಈͰPiPΛ։࢝͢Δ •PiPͷUIͷදࣔ/੍ݶपΓ ͔ͬͨ͠ͱ͜Ζ
©MIXI 21 ͔ͬͨ͠ͱ͜Ζ UIViewΛPiPͰදࣔ͢ΔͨΊͷ࣮
©MIXI 22 ࣮ࣗମ͕͍͠ • UIViewΛϏσΦϑϨʔϜͷΦϒδΣΫτ(AVSampleBufferDisplayLayerɺ CMSampleBuffer)ʹม͢Δ࣮ • PiPΛ։࢝Ͱ͖ΔΑ͏ʹ͢ΔͨΊͷ݅ ◦ Capability
-> BackgroundModes -> Audio, AirPlay, and Picture in Picture ◦ AVAudioSession#setCategory(.playback) ͕ඞཁ • PiP͕։࢝͞Εͳͯ͘Τϥʔ͕ฦͬͯདྷͳ͍߹͕͋Δ • ࣮ৄࡉαϯϓϧίʔυࢀর ◦ https://github.com/HikaruSato/AutoPictureInPictureUIViewExample UIViewΛPiPͰදࣔ͢ΔͨΊͷ࣮
©MIXI 23 •PiPͷUIViewʹʮin picture in picture.ʯͷΑ͏ͳจݴ͕ೖΔ •͜ΕΛճආ͢ΔͨΊAVSampleBufferDisplayLayerΛ࣋ͭ UIView#alpha = 0ʹͯ͠ಁ໌ʹ͍ͯ͠Δ
࣮͕͔ͬͨ͠ͱ͜ΖͷҰྫ
©MIXI 24 ͔ͬͨ͠ͱ͜Ζ όοΫάϥϯυભҠ࣌ʹࣗಈͰPiP Λ։࢝͢Δ
©MIXI 25 •AVPictureInPictureController#canStartPictureInPictureAutomaticallyFromI nline = true ʢόοΫάϥϯυભҠ࣌ʹࣗಈͰPiPΛ։࢝ʣ͕ಈ࡞͢Δ ͕݅Θ͔Βͳͯ͘ࢼߦࡨޡͨ͠ ◦ ݅
▪ දࣔରͷAVSampleBufferDisplayLayer͕ඳը͞Ε͍ͯΔ ▪ όοΫάϥϯυભҠલʹAVPictureInPictureController ͕ॳظԽ͞Εͯ ͍Δ ▪ AVPictureInPictureSampleBufferPlaybackDelegateͷ pictureInPictureControllerIsPlaybackPaused(_:) Γ͕ false όοΫάϥϯυભҠ࣌ʹࣗಈͰPiPΛ։࢝͢Δ
©MIXI 26 extension XXX: AVPictureInPictureSampleBufferPlaybackDelegate { public func pictureInPictureController(_ pictureInPictureController:
AVPictureInPictureController, setPlaying playing: Bool) {} public func pictureInPictureControllerTimeRangeForPlayback(_ pictureInPictureController: AVPictureInPictureController) -> CMTimeRange { .init( start: .indefinite, // 30ʹηοτ duration: .init(seconds: 60 * 60 * 24 * 30, preferredTimescale: .init(1)) ) } public func pictureInPictureControllerIsPlaybackPaused(_ pictureInPictureController: AVPictureInPictureController) -> Bool { false // ˒canStartPictureInPictureAutomaticallyFromInline = true ʢόοΫάϥϯυભҠ࣌ʹࣗಈͰPiP͕։࢝͢ΔʣͷͨΊʹfalseʹ͢Δ } public func pictureInPictureController(_ pictureInPictureController: AVPictureInPictureController, didTransitionToRenderSize newRenderSize: CMVideoDimensions) {} public func pictureInPictureController(_ pictureInPictureController: AVPictureInPictureController, skipByInterval skipInterval: CMTime) async {} } AVPictureInPictureSampleBufferPlaybackDelegateͷίʔυ
©MIXI 27 • ϧʔτͷWindowʹPiPͷUIViewΛՃ͍ͯ͠Δ ◦ ΞοϓϩʔυதΞϓϦͷͲͷը໘͔ΒόοΫάϥϯυભҠͨ͠ͱ͖Ͱ PiPΛ։࢝͢ΔͨΊ όοΫάϥϯυભҠ࣌ʹࣗಈͰPiPΛ։࢝͢Δ PiPͷView Window
©MIXI 28 ͔ͬͨ͠ͱ͜Ζ PiPͷUIͷදࣔ/੍ݶपΓ
©MIXI 29 PiPͷUI
©MIXI 30 PiPͷUI • ࠷ऴతʹফͤͳ͔ͬͨ Ұ࣌ఀࢭϘλϯɺਐḿόʔɺ×ϘλϯɺΞ ϓϦΔϘλϯʢӈ্ʣͨ͠ • Ұ࣌ఀࢭϘλϯλοϓͯ͠Կ͠ͳ͍ ◦
ͦͷڍಈʹ͍ͭͯԿ͔ରࡦ͢Δ͔ͷ͕ٞ͋ͬͨϦϦʔεޙ ಛʹʹͳ͍ͬͯͳ͍
©MIXI 31 ਅͬࠇʹͳΔ • ϩοΫ͔Βղআͨ͠ͱ͖ʹPiPͷը໘͕ਅͬࠇʹͳΔ͜ͱ͕͋Δ • ͜ͷݱΛͰ͖Δ͚ͩආ͚ΔͨΊʹPiPͷը໘ߋ৽Λ࠷1ʹ1ճ ߦ͏Α͏ʹ͍ͯ͠Δ
©MIXI 32 ੍ݶ ଞΞϓϦͰPiPΛ։࢝͢ΔͱPiP͕ଞΞϓϦͷͷͰ্ॻ͖͞ΕͯΞοϓ ϩʔυ͕ࢭ·Δ
©MIXI 33 PiPͷόοΫάϥϯυΞοϓϩʔ υͰղܾͰ͖ͳ͔ͬͨ͜ͱ
©MIXI 34 ղܾͰ͖ͳ͔ͬͨ͜ͱ • ϩοΫதͷΞοϓϩʔυ ◦ PiPදࣔதʹϩοΫ͢ΔͱΞϓϦͷϓϩηε͕Ұ࣌ఀࢭঢ়ଶʹ ͳΔ ◦ ϩοΫΛղআ͢Δͱϓϩηε͕࠶։͢Δ͕ΞοϓϩʔυλΠ
ϜΞτͯ͠͠·͏ ◦ ϩοΫޙʹ͍ͭϓϩηε͕ࢭ·Δ͔ґଘ
©MIXI 35 AppleͷϨϏϡʔରࡦ
©MIXI 36 • ػೳΛ͑ͯઆ໌ͯ͠AppleͷϨϏϡʔʹग़͢͜ͱͰٸʹReject ͞Εͳ͍Α͏ʹରࡦΛͨ͠ ◦ PiP։࢝Ϣʔβʔͷૢ࡞Ͱ։࢝͢Δඞཁ͕͋ΓɺϓϩάϥϜతʹPiP։࢝͢Δͷ AppleͷϨ ϏϡʔͰReject͞ΕΔɺͱυΩϡϝϯτʹهࡌ͕͋Δ ▪
https://developer.apple.com/documentation/avkit/adopting-picture-in-picture-in-a-custom-player#Handle-User-Initiated- Requests ◦ Ϣʔβʔͷૢ࡞͕͏ը૾ɾಈըͷΞοϓϩʔυૢ࡞ޙόοΫάϥϯυભҠͰPiPΛ։͍࢝ͯ͠ Δ͕ͦΕ͕Appleͱͯ͠OKͳͷ͔Λ೦ͷҝɺ֬ೝ͢Δ͜ͱʹͨ͠ • ϨϏϡʔͳ͘௨ͬͨ AppleͷϨϏϡʔରࡦ
©MIXI 37 ֬ೝํ๏ App Store Connect → App Review ʹؔ͢Δใ
ʹPiPͷΞοϓϩʔυػೳʹͭ ͍ͯಈը͖Ͱઆ໌ͯ͠ਃͨ͠ͱ͜Ζɺಛʹͳ͘৹͕ࠪ௨ͬͨ
©MIXI 38 αϯϓϧίʔυ
©MIXI 39 αϯϓϧίʔυ • https://github.com/HikaruSato/ AutoPictureInPictureUIViewExample • UIViewͰPiPΛදࣔ͠όοΫάϥϯυભҠ࣌ʹPiP͕ ࣗಈͰ։࢝͢ΔΑ͏ʹͨ͠࠷খݶͷίʔυྔͷαϯϓϧ ίʔυ
©MIXI 40 αϯϓϧίʔυͷಈ࡞
©MIXI 41 ࠓޙΓ͍ͨ͜ͱ
©MIXI 42 iOS26 SDKͷ׆༻ ※Xcode26 RC x iOS26 RC Ͱݕূ
©MIXI 43 • iOS26 SDK(Xcode 26)ͰForegroundͰ։࢝Ͱ͖Δ BGContinuedProcessingTask͕όοΫάϥϯυλεΫͱͯ͠ WWDCͰൃද͞Εͨ ◦ https://developer.apple.com/documentation/backgroundtasks/performing-long-running-tasks-on-ios-and-ipados
◦ https://developer.apple.com/jp/videos/play/wwdc2025/227/ • ͜ͷػೳPiPͷΞοϓϩʔυʹ͔ͳΓࣅ͍ͯͨͷͰ׆༻Ͱ͖Δ͔ Λௐࠪͨ͠ iOS26 SDKͷ׆༻
©MIXI 44 BGContinuedProcessingTask ͱ • ϑΥΞάϥϯυͰ։࢝͞ΕɺඞཁʹԠͯ͡όοΫάϥϯυͰ ࣮ߦΛܧଓͰ͖ΔόοΫάϥϯυλεΫ • ਐߦঢ়گΛϥΠϒ ΞΫςΟϏςΟʹදࣔ͠ɺϢʔβʔඞཁʹԠ
ͯ͡ΩϟϯηϧͰ͖Δ https://developer.apple.com/documentation/backgroundtasks/bgcontinuedprocessingtask
©MIXI 45 BGContinuedProcessingTask Λར༻͢ΔϝϦοτ • PiPͷΞοϓϩʔυͰͰ͖ͳ͔ͬͨϩοΫதͷΞοϓ ϩʔυ͕Մೳ
©MIXI 46 BGContinuedProcessingTask Λར༻͢ΔσϝϦοτ • େ͖ͳσϝϦοτͳ͘ɺڧ͍ͯݴ͑ BGContinuedProcessingTaskͷUI੍ݶʹґଘ͢Δͱ͜Ζ
©MIXI 47 BGContinuedProcessingTaskͷUI
©MIXI 48
©MIXI 49 λεΫྃ࣌ • ྃ͢Δͱফ͑Δ
©MIXI 50 εςʔλεόʔʹ͠·ͬͨͱ͖ ը໘ϩοΫ
©MIXI 51 BGContinuedProcessingTaskͷUI • Title, SubtitleͷΈΧελϚΠζՄೳ • ࠨଆΞϓϦͷΞΠίϯɺӈଆਐḿදࣔ
©MIXI 52 BGContinuedProcessingTaskͷUI • completedUnitCount(ਐḿ) ͕ totalUnitCountʢ߹ܭʣʹୡ͢Δ ͱɺӈଆ͕νΣοΫϚʔΫʹͳΔ
©MIXI 53 BGContinuedProcessingTaskͷUI • จࣈ৭എܠ৭ࢦఆͰ͖ͳ͍ʢͱࢥΘΕΔʣ͕߹ʹΑͬͯݟ ͮΒ͍
©MIXI 54 BGContinuedProcessingTaskͷUI • όοΫάϥϯυλεΫΛεςʔλεόʔʹด·ͬͯΔ࣌ ੨͘ͳΔ
©MIXI 55 ࣮ํ๏
©MIXI 56 Background Modesͷࢦఆ͍Βͳ͍ ଞͷBackground TaskͱҧͬͯBackground Modesͷ Capabilityඞཁͳ͠ɻԼه͕͍Βͳ͍
©MIXI 57 plistΛઃఆ • plistʹBackground Task IdentifierΛొ͢Δඞཁ͕͋Δ ◦ ଞͷBackground Taskͱಉ༷
©MIXI 58 BGTaskScheduler.shared.register(forTaskWithIdentifier: taskIdentifier, using: nil) { task in //
ϝΠϯҎ֎ͷεϨουͰಈ࡞͢Δ let task = task as! BGContinuedProcessingTask task.expirationHandler = { /* γεςϜʹΑΓλεΫ͕Ωϟϯηϧ͞Εͨ࣌ͷॲཧ */ } task.progress.totalUnitCount = 100 // ྃ task.progress.completedUnitCount = 0 // ਐḿͷ for i in 1...100 { task.progress.completedUnitCount = Int64(i) // ਐḿΛߋ৽ task.updateTitle("Processing", subtitle: "xxx%") } task.updateTitle("Completed", subtitle: "") task.setTaskCompleted(success: isCompleted) } https://developer.apple.com/documentation/backgroundtasks/performing-long-running-tasks-on-ios-and-ipados όοΫάϥϯυλεΫొͷίʔυ
©MIXI 59 do { let request = BGContinuedProcessingTaskRequest(identifier: taskIdentifier, title:
"Start", subtitle: "") // .queue λεΫϦΫΤετΩϡʔʹՃ͞ΕɺޙͰ࣮ߦ͞ΕΔ͜ͱ͕͋Δ(default) // .fail λεΫϦΫΤετΛ͙͢ʹ࣮ߦͰ͖ͳ͍߹ʹΤϥʔʹͳΔ request.strategy = .queue if BGTaskScheduler.supportedResources.contains(.gpu) { request.requiredResources = .gpu // GPUΛར༻͍ͨ͠߹ʹηοτɻ } try BGTaskScheduler.shared.submit(request) } catch { print("Failed to submit request: \(error)") } https://developer.apple.com/documentation/backgroundtasks/performing-long-running-tasks-on-ios-and-ipados όοΫάϥϯυλεΫͷ࣮ߦґཔ
©MIXI 60 GPU͏߹ XcodeͷCapabilityͰBackground GPU AccessΛՃ͢Δ
©MIXI 61 ݕূͯ͠ΈͯΘ͔ͬͨ͜ͱ
©MIXI 62 ݕূͯ͠ΈͯΘ͔ͬͨ͜ͱ • completedUnitCount(ਐḿͷ) ͕Ұఆ࣌ؒͷ͏ͪʹมԽ͕ͳ͍ ͱϓϩηε͕ऴྃ͞ΕΔ ◦ ࢭ·Δ࣌ؒෆఆ ◦
ਐḿ͕Θ͔Βͳͯ͘ॲཧΛܧଓ͢ΔͨΊʹcompletedUnitCountΛ૿͢ ͳͲͷ͕ඞཁͳ߹͕͋Γͦ͏
©MIXI 63 ݕূͯ͠ΈͯΘ͔ͬͨ͜ͱ • iOS Simulator Ͱಈ࡞͠ͳ͍ ◦ https://developer.apple.com/documentation/backgroundtasks/bgtaskscheduler/error/code/ unavailable#Discussion
◦ Documentʹॻ͍ͯ͋Δ
©MIXI 64 ݕূͯ͠ΈͯΘ͔ͬͨ͜ͱ • Swift Language Version ͕ Swift 6
ͩͱ BGTaskScheduler.shared.submit()ͰΫϥογϡ͢Δ ◦ Xcode26 RC࣌Ͱ࠶ݱɻAppleʹόάϨϙʔτࡁΈ ◦ Swift 5 ͩͱΫϥογϡ͠ͳ͍
©MIXI 65 ݕূͯ͠ΈͯΘ͔ͬͨ͜ͱ • ॲཧதͷBGContinuedProcessingTask1ΞϓϦ1ͭ·Ͱ ◦ BGTaskScheduler.shared.submit()Ͱ৽ͨͳλεΫΛsubmitͯ͠ 2ͭ։࢝͞Εͳ͍ ◦ ॲཧதͷBGContinuedProcessingTask͕1Ͱ1ͭ·Ͱͳͷ͔
ະݕূɻ
©MIXI 66 ݕূͯ͠ΈͯΘ͔ͬͨ͜ͱ • ͷόοςϦʔ͕গͳ͍࣌தஅ͞Ε͍͢ ◦ Ϧιʔε੍ͳͲΛཧ༝ʹλεΫΛऴྃ͢Δ͜ͱ͋Δͱ͍͏هࡌDocumentʹॻ͍ͯ͋Δ ◦ https://developer.apple.com/documentation/backgroundtasks/ bgcontinuedprocessingtask#overview
©MIXI 67 ݕূͯ͠ΈͯΘ͔ͬͨ͜ͱ • ࣗͷݕূͰ iOS26 ਖ਼ࣜ൛ʹΞοϓσʔτޙ BGContinuedProcessingTask Λ։࢝Ͱ͖ͳ͘ͳͬͨ ◦
Developer ForumsͰ֬ೝத ◦ https://developer.apple.com/forums/thread/801126
©MIXI 68 ݕূʹར༻ͨ͠ίʔυ https://github.com/HikaruSato/ExampleBackgroundProcess • ݕূ༻ʹ৭ʑࢼͨ͠ͷͰ͋·Γ៉ྷͰͳ͍Ͱ͢
©MIXI 69 ΈͯͶͷΞοϓϩʔυʹΈࠐΉͳΒ... ࣮ࡍʹ࠾༻͢Δ͔Ͳ͏͔ܾ·͍ͬͯͳ͍
©MIXI 70 • ΞοϓϩʔυதͷόοΫάϥϯυભҠ࣌ʹ BGContinuedProcessingTaskΛར༻͍ͨ͠ ◦ PiPͷόοΫάϥϯυΞοϓϩʔυΛସ͍ͨ͠ ΈͯͶͷΞοϓϩʔυʹΈࠐΉͳΒ...
©MIXI 71
©MIXI 72 ·ͱΊ
©MIXI 73 ൺֱ UIViewͷPiP BGContinuedProcessingTask ࣮ͷ͢͠͞ ˚ ̋ ϩοΫதͷಈ࡞ ✖
̋ UIͷࣗ༝ ̋ ✖
©MIXI 74 ·ͱΊ • ϐΫνϟΠϯϐΫνϟʹΑΓiOSΞϓϦͰόοΫάϥ ϯυͰΞοϓϩʔυͰ͖ΔΑ͏ʹͳͬͨ ◦ ͨͩ͠ϩοΫதΞοϓϩʔυ͕ࢭ·Δ • iOS26
ͷ BGContinuedProcessingTask ͰͦΕղܾ ͦ͠͏
©MIXI 75 ҰॹʹʮੈքதͷՈͷ͜͜ΖͷΠϯϑϥʯΛͭ͘Γ·ͤΜ͔ʁ https://team.mitene.us/
©MIXI 76 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠