iPhone LED Dock Layout - log5r/simple-media-player GitHub Wiki
iPhone ã®åçããã¯ãš LED ããã
èšèšã®åç
§å
ã¯ãPR #16 ã® docs/iphone-layout.mdãå®è£
ã»æ€èšŒæ¥ã¯ 2026 幎 10 æ 3 æ¥ã䜿çšç°å¢ã¯ Xcode 27ã»Swift 6ãååæ€èšŒåŸã«ã仿§æžãšå®è£
ãã³ããã 9071417 ã«ä¿åããã
ç»é¢ã®åãæ¿ããšæ¢åæ©èœã®åå©çš
MainView ã¯ãiOS ã®ããã€ã¹çš®å¥ã iPhone ã®å Žåã«å°çšç»é¢ã衚瀺ãããiPad ãš macOS ã§ã¯ãæ¢åã®åå²ããã²ãŒã·ã§ã³ãšäžéšããã«ã䜿çšãããiPhone ã®ãã©ã€ãã©ãªãããã¬ã€ãªã¹ããããããªããæ€çŽ¢ãã¯ãããããã«ããã²ãŒã·ã§ã³ã¹ã¿ãã¯ãæã€ãã¢ã«ãã ã»ã¢ãŒãã£ã¹ãã»ãžã£ã³ã«ãéžã¶ãšããã®æ²äžèЧãžç§»åããã
iOS ã¢ããªã®ãã«ãèšå®ã§ UILaunchScreen ãçæãããçæããã Info.plist ãšã·ãã¥ã¬ãŒã¿ãŒã®ã¹ã¯ãªãŒã³ã·ã§ããã§ãäºæã¢ãŒãã®äžäžã®é»åž¯ããªããç»é¢å
šäœã䜿çšããããšã確èªããã
player.currentItem ãååšããéã¯ãtabViewBottomAccessory ã«åçäžã® Dock ã衚瀺ãããèæ¯ãšåœ¢ã¯æšæºã¢ã¯ã»ãµãªãŒã«ä»»ããæ²åã»çµéæéãšåçïŒäžæåæ¢ã»æ¬¡æ²ã®ãã¿ã³ãé
眮ãããæ²åãšæå»ã®ãã¿ã³ãã¿ãããããšãå
šç»é¢ã®åçããããéããæäœé å㯠44Ã44 pt 以äžãæäœéšã®éé㯠12 ptã2 è¡ãåãŸããªãæåãµã€ãºã§ã¯æå»ãç»é¢ããçç¥ããããèªã¿äžãå€ã«ã¯çç¥åã®æ²åãšæå»ãæ®ãã
ãããã®ããŒãžã¯ã衚瀺ããæè©ããæ å ±ããæ¬¡ã«åçãã® 4 ã€ããæ¬¡ã«åçãã§ã¯ãæ¢åã®åçãã¥ãŒã衚瀺ããåçããæ²ãéžã¹ããå¥ã®ãã¥ãŒã¯äœæããããã¥ãŒã®äžŠã¹æ¿ãã«ã¯å¯Ÿå¿ããªããæšªåãã§ãããã®ã¹ã¯ããŒã«å¯èœãª iPhone çšã¬ã€ã¢ãŠãã䜿çšãããæšªåãå°çšã®ãã¶ã€ã³ã¯æªæ±ºå®ã
åçãã©ã€ãã©ãªã®å€æŽããã¬ã€ãªã¹ãã®ä¿åãã¡ã¿ããŒã¿ã»æè©ã®ç·šéã調æŽåŸã®æžãåºããAAC çã®äœæãæ€çŽ¢ãã£ã«ã¿ãŒã«ã¯ãæ¢åã®ã¢ãã«ãšãµãŒãã¹ã䜿çšãããã©ã€ãã©ãªã®ç»é¢ãç§»åããŠããåçãã¥ãŒã¯çœ®ãæããªããã©ã€ãã©ãªããæ²ãåé€ãããšããã®æ²ãåçãã¥ãŒããé€ããåçå¯Ÿè±¡ã®æ²ã ã£ãå Žåã¯çŸåšã®é ç®ãã¯ãªã¢ããã
ãããå
ã® LED ã®è²ãšã¬ã©ã¹è¡šç€ºã®èšå®ã¯ãã·ã¹ãã ã®å€èгèšå®ããç¬ç«ããŠããããããã®ããã«ãšæäœãã¿ã³ã®é
è²ã«ã¯ BottomPanelPalette ã䜿çšããDock ã«ã¯æšæºã¢ã¯ã»ãµãªãŒã®èæ¯ãšæšæºã®æåã»ã¢ã€ã³ã³è²ã䜿çšãããVolumeSlotView ã¯çžŠæšªã®äž¡æ¹åã«å¯Ÿå¿ãããã¹ã¯ãããåŽã§ã¯åŸæ¥ã©ãã瞊æ¹åãæ¢å®ãšãããiPhone ã§ã¯ã€ã³ãžã±ãŒã¿ãŒã©ã³ããã調æŽãã©ãŒã ãéããããŒãé床ãEQãããªã¢ã³ãããªããŒããããªã»ãããæäœãããåç»ã«ã¯æ¢åã®ãã¬ã€ã€ãŒã¬ã€ã€ãŒãšå
šç»é¢è¡šç€ºã䜿çšããããŒãšé床ã®å€æŽãç¡å¹ã«ãããåºåå
ã®éžæã«ã¯ AVRoutePickerView ã䜿çšããã
ç»é¢è¡šç€ºãšéåæåŠçã§åŸãç¥èŠ
usesPhoneLayout ã®ç°å¢å€ã¯ãã«ãŒããã¥ãŒã®ãã¹ãŠã®ã·ãŒã修食åã®å€åŽã§èšå®ãããäžå±€ã® iPhone çšã³ã³ãã³ãã ãã«èšå®ããŠãã芪ã®ä¿®é£Ÿåãã衚瀺ããã·ãŒãã«ã¯åæ ãããªããååž°ãã¹ãã§ã¯ãæžãåºãåã®å
¥åç»é¢ã®ãæžãåºãããã¿ã³ãç»é¢å€ã«ãªãåé¡ãåçŸãããç°å¢å€ã®èšå®ããã¹ãŠã®ã·ãŒã修食åã®åŸã«ç§»ãããšã§ä¿®æ£ããã
ã¹ããŒãµãŒãå«ãè¡ã .plain ã¹ã¿ã€ã«ã®ãã¿ã³ã«ããå Žåã¯ãã©ãã«å
ã« contentShape(Rectangle()) ãèšå®ãããPro Max ã§ã¯ãè¡ã®äžå€®ãäœçœã«ãªãããããã¿ããããŠãåçãå§ãŸããªãã£ããå¹
ã®çã 17e ã§ã¯äžå€®ã«æåããã£ããããåããã¹ããééããŠãããã©ã€ãã©ãªãšã次ã«åçãã¯ãè¡å
šäœãã¿ãã察象ã«å€æŽããã
ã¢ã¯ã»ã·ããªãã£èå¥åã¯ãããŒãžåãæ¿ããã¿ã³ããšã«èšå®ãããå€åŽã®ã¹ã¿ãã¯ã«èšå®ãããšãé äžã®åãã¿ã³ã§å ¬éãããèå¥åã眮ãæããå Žåããããã»ã°ã¡ã³ãåã®ããã«ãŒã 44 pt ã®ããŒãžãã¿ã³ã«å€æŽããéãUI ãã¹ãã§ãã®çŸè±¡ãåçŸããã
æžãåºãã®æºåã§ã¯ãèŠæ±ãããé ç®ã®ã¹ãããã·ã§ãããååŸããæºååŠçã®éè€å®è¡ãé²ããiOS ã§ã¯ãåæåã®ç¶æ ã«åºã¥ãåäžã®ã·ãŒãã§ãã¿ã€ãã«ããªããã¡ã€ã«ã®ååå ¥åç»é¢ããæšæºã®å ±æã·ãŒãã衚瀺ãããååŸæžã¿ã®æžãåºãèšç»ãšç·šéåŸã®ååãä¿æããååå ¥åã®ã·ãŒããéããŠãããã¡ã€ã«ã®ã³ããŒãéå§ãããç¬ç«ããã·ãŒã修食åã䜿ã£ãŠãããšãã¯ãå ±æã·ãŒããå®å®ããŠè¡šç€ºãããªãã£ãã
æžãåºãããšã«åºæã®äžæãã£ã¬ã¯ããªã䜿çšããããã¡ã€ã«ã®åæãšäžæãã£ã¬ã¯ããªã®åé€ã¯ MainActor ã®å€ã§å®è¡ãããå ±æã³ã³ãããŒã©ãŒã®å®äºæãšç Žæ£æã®ã©ã¡ãã§ãããã®æžãåºãã«å±ãããã£ã¬ã¯ããªãåé€ãããäžéšã®ãã¡ã€ã«ã§æžãåºãã«å€±æããå Žåã¯ãå ±æã·ãŒããéããŠãããšã©ãŒã衚瀺ããã¢ã©ãŒããšã·ãŒãã®åæè¡šç€ºãé¿ããã
è€æ°ç·šéã®æäœãã¿ã³ã¯ãäžéšã®ã»ãŒããšãªã¢ãžã®è¿œå 衚瀺ã§é
眮ãããããã²ãŒã·ã§ã³ããŒã«ããŒã® .bottomBar ã«çœ®ããšãå€åŽã®ã¿ãããŒã«é ããŠãããã»ãŒããšãªã¢ãžã®è¿œå 衚瀺ãªããDock ãšã¿ãããŒã®äžã«ãã¿ã³ãé
眮ã§ãããæšæºå
±æã·ãŒãã®ãã³ããŒããªã©ã¯ãã¢ã¯ã»ã·ããªãã£äžã§ã¯ãã¿ã³ã§ã¯ãªãã»ã«ãšããŠå
¬éããã䜿çšã§ããæäœã端æ«ã«ãã£ãŠç°ãªãããã¹ãã§ã¯ç¹å®ã®å
±ææäœã®ååšã§ã¯ãªããæšæºã·ãŒãã®è¡šç€ºãçµäºããã®åŸã«å床æžãåºããããšã確èªããã
調æŽã·ãŒãã§ã®ä¿åèŠæ±ã¯ãã·ãŒããéããŠããããããžæž¡ããAAC çã®äœæçµæã¯ MainView ã«ä¿æããããããéããŠããéã¯ãããå
ãéããåŸã¯ã©ã€ãã©ãªç»é¢ã§è¡šç€ºãããæ
å ±ã®èªã¿èŸŒã¿ã§ã¯ãæ¢åã®é
ç®ãšèŠæ±ã®æå¹æ§å€å®ãç¶æãããæå»ä»ãæè©ã¯å
ã®æè©ãå€ãã£ããšãã«è§£æããè¡ã®ã€ã³ããã¯ã¹ãå®å®ããèå¥åãšããŠåŒ·èª¿è¡šç€ºãšã¹ã¯ããŒã«ã«äœ¿çšãããåçæå»ã®æŽæ°ããšã«æè©å
šäœãåè§£æããããšã¯ãªãã
æ€èšŒæ¹æ³ãšçµæ
UI ãã¹ãçšããŒã¿ã¯ãDEBUG && os(iOS) ãšæç€ºçãªèµ·ååŒæ° --ui-testing-phone-layout ã®äž¡æ¹ã§æå¹ã«ãããããŒã«ã«ã® WAV ãã¡ã€ã«ãšãã¬ã€ãªã¹ãããã¡ã¢ãªå
ã®ã¢ãã«ã³ã³ãããŒã«è¿œå ãããéåžžã®å©çšããŒã¿ã«ã¯åœ±é¿ããªãã
- iPhone ã®è¡šç€ºãã¹ãïŒã©ã€ãã©ãªãDockããããã調æŽã·ãŒããæè©ãæ å ±ããæ¬¡ã«åçããæäœããåçæäœãã¿ã³ãšã©ã³ãã®æäœé åã 44 pt 以äžã§ãç»é¢å ã«åãŸãããšã確èªããã
- æäœã®ãã¹ãïŒèšå®é ç®ã®è¡šç€ºãè€æ°éžæãšã¡ã¿ããŒã¿ç·šéç»é¢ããã¬ã€ãªã¹ãã®äœæã»æ²ã®è¿œå ã»åå倿Žã»æ²ã®é€å»ãæžãåºãåã®å ¥åããæšæºå ±æã·ãŒãã®è¡šç€ºãŸã§ã確èªããã
- iPad ã®åºæ¬æäœãã¹ãïŒåå²ã¬ã€ã¢ãŠãããã¹ã¯ãããåŽãšå ±éã®æäœãã¿ã³ãèšå®ç»é¢ã確èªããã
- macOS ã®æ€èšŒïŒããŒã«ã©ã€ãºãããäž»ç»é¢ã»èšå®ç»é¢ã®æäœããµã€ãããŒã®ãã©ãŒã«ã¹ãããŒã«ã©ã€ãºã®åäœãã¹ããã¹ã¯ããŒã«æåã®ã¯ãªãã¯å€å®ã確èªããã
- lintïŒå€æŽãããã¹ãŠã® Swift ãã¡ã€ã«ã峿 Œã¢ãŒãã§æ€æ»ãããããŒã¹ã©ã€ã³ã¯è¿œå ããªãããªããžããªå šäœã®éåžžã¢ãŒãã® lint ãå®è¡ããã倿Žãšç¡é¢ä¿ãªæ¢åã®èŠåã¯æ®ã£ãŠããã
2026 幎 10 æ 3 æ¥ã®æ€èšŒçµæã¯æ¬¡ã®ãšããã
- iPhone 17eïŒiOS 27ïŒïŒå€èŠ³ãš LED ã¹ã¿ã€ã«ã®çµã¿åãã 4 éãã®ããããã¹ããééãããè¡å šäœãã¿ãã察象ã«ããä¿®æ£ãšã次ã«åçãã®éžæ²ç¢ºèªãå«ãæçµçã§ããè±èªã»ããŒã¯ã®ååž°ãã¹ããééããã察象ãçµã£ããã¹ãã§ããã¬ã€ãªã¹ãã®äœæã»æ²ã®è¿œå ã»åå倿Žã»æ²ã®é€å»ãèšå®ã»è€æ°ç·šéãééããã
- iPhone 17 Pro MaxïŒiOS 27ïŒïŒè±èªã»ããŒã¯ã𿥿¬èªã»ã©ã€ãã»ããã¯ã©ã€ãã®ããããã¹ããééãããè¡ã®äžå€®ã®ã¿ãããšã次ã«åçãã§ã®æ²ã®åãæ¿ããå«ããæžãåºãåã®å ¥åãæšæºå ±æã·ãŒãã®è¡šç€ºãšçµäºããã®åŸã®åæžãåºããééããã
- iPad Pro 11 ã€ã³ã M5ïŒiOS 27ïŒïŒäž»ç»é¢ãšèšå®ç»é¢ã®åºæ¬æäœãã¹ããééããã
- macOS 27ïŒã¢ããªã®ãã«ããããŒã«ã©ã€ãºã®åäœãã¹ããã¹ã¯ããŒã«æåã®ã¯ãªãã¯å€å®ã®ååž°ãã¹ããäž»ç»é¢ã»èšå®ã»ãµã€ãããŒã«é¢ãã 2 ä»¶ã® UI ãã¹ããééããã
- ãªããžããªå
šäœã®éåžžã¢ãŒãã® lint ã¯ã倿Žãšç¡é¢ä¿ãªæ¢åã®èŠåãæ®ããŠééããã倿Žãã Swift ãã¡ã€ã« 31 ä»¶ã®å³æ Œã¢ãŒãã® lint ã¯ãæ°ããªéåãªãã§ééããã
git diff --checkãééããã
æçµçã® iPhone ãã¹ãã³ãã³ãã¯æ£åžžçµäºããããã¹ãã¹ã€ãŒãã®ééåŸãXcode ã®çµæåéãåããã»ã¹ã® simctl diagnose ã§æ»çããããã®èšºæåéããã»ã¹ã ããçµäºãããšãäž¡æ¹ã®çµæãã³ãã«ã®ä¿åãå®äºããçµäºã³ãŒã㯠0 ã«ãªã£ãããã¹ãã©ã³ããŒãšã¢ããªã¯äžæããŠããªããä»»æã®èšºæã¢ãŒã«ã€ãã¯æªå®æã
æå確èªãæ®ã£ãŠããé ç®ã¯ã宿©ã§ã® VoiceOver ã®èªã¿äžããš AirPlay ã®åºåå éžæã宿©ã§ã®åç»ã®å šç»é¢åçãDock 以å€ã®ç»é¢ã§ã®éåžžã«å€§ã㪠Dynamic Type ã®æåãµã€ãºããã¬ã€ãªã¹ãã®ãã©ãã°ã«ããäžŠã¹æ¿ããèªåãã¹ãçšããŒã¿ã¯é³å£°ã®ã¿ãå«ãã
PR #16 ã®ã¬ãã¥ãŒã§ç¢ºèªããæè©ç·šéãšãã¥ãŒãã®äžå ·å
ä¿®æ£ã³ããã㯠7748247ã
æè©ãšãã£ã¿ãŒã¯ãiPhone ã§ãæå°å¹
420 pt ãèŠæ±ããŠããããããã®ããŒã«ããŒãšæè©ããã«ã®ç·šéãã¿ã³ã®äž¡æ¹ããåãã·ãŒããéãããããšãã£ã¿ãŒèªèº«ã§ usesPhoneLayout ãèªã¿ãiPhone ã§ã¯æå°å¯žæ³ãšæšå¥šå¯žæ³ã®æå®ãå€ããmacOS ãš iPad ã§ã¯åŸæ¥ã®å¯žæ³ã䜿çšãããæè©ãšãã£ã¿ãŒã®ææã確èªããã»ãã®ç·šéã·ãŒãã§ãåã寞æ³å¶çŽãæ®ã£ãŠããªãã調ã¹ãã
ãã¥ãŒããã¿ã³ã¯ãç¶æ
ã«å¿ããŠã¢ã€ã³ã³ãæŽæ°ããäžæ¹ãã¢ã¯ã»ã·ããªãã£ã©ãã«ãåžžã« Mute ã«ããŠãããIPhoneTransportButton ã®ã¿ã€ãã«ã isMuted ã«å¿ã㊠UnmuteïŒMute ã«åãæ¿ããæ¢åã®æ¥æ¬èªèš³ããã¥ãŒãè§£é€ãïŒããã¥ãŒããã䜿çšããããã¥ãŒãã®ææãšåãåå ã¯ãPlayïŒPause ãã¿ã³ã macOS ã®ã¡ãã¥ãŒã«ã¯ãªãã£ãã
å¹
420 pt æªæºã® iPhone 17eïŒiOS 27ïŒã®ååž°ãã¹ãã§ã¯ãæè©ç·šéæ¬ãä¿åã»ãã£ã³ã»ã«ãä¿åå
ããã«ãŒãç»é¢å
ã«åãŸãããšãšãä¿åã»ãã£ã³ã»ã«ã§ã·ãŒããéããããããšãæ¥è±ã§ç¢ºèªããããã¥ãŒãã®ååž°ãã¹ãã§ã¯ããã¿ã³ã2åã¿ããããèªã¿äžãã«äœ¿ãã©ãã«ã Mute â Unmute â Muteãæ¥æ¬èªã§ã¯ããã¥ãŒã â ãã¥ãŒãè§£é€ â ãã¥ãŒãããšå€ããããšã確èªããã宿©ã® VoiceOver ã«ããé³å£°åºåã¯ããã® UI ãã¹ãã®ç¢ºèªç¯å²ã«å«ããªãã
2026 幎 10 æ 3 æ¥ã® iPhone 17eïŒiOS 27ïŒã§ã®æ€èšŒã§ã¯ã該åœããä¿®æ£ãå€ããç¶æ
ã§ããã¥ãŒãåŸã®ã©ãã«ã Mute ã®ãŸãŸãšããæ¯èŒãšã©ãŒãšãApp Only ãç»é¢å€ã«ãããšããæ€æ»ãšã©ãŒãããããåçŸãããä¿®æ£åŸã¯ãæ¥è±ã®ããããã¹ã2ä»¶ãšæ¥è±ã®æè©ãšãã£ã¿ãŒãã¹ã2ä»¶ããã¹ãŠééãããiOS ã¢ããªãšãã¹ãã¿ãŒã²ããã®ãã«ããããã®å®è¡ã§å®äºããã
æè©ç·šéã®ååž°ãã¹ã㯠IPhoneLibraryWorkflowUITests/testEnglishLyricsEditorFitsPhoneScreen ãš testJapaneseLyricsEditorFitsPhoneScreenããã¥ãŒãã®ç¢ºèªã¯æ¢åã® IPhoneLayoutUITests ã«è¿œå ãããä»åå®è¡ãã察象ãåæ€èšŒããã³ãã³ãã¯æ¬¡ã®ãšããïŒç«¯æ« ID ã¯å®è¡ç°å¢ã«åãããïŒã
xcodebuild -project SimpleMediaPlayer.xcodeproj -scheme SimpleMediaPlayer \
-destination 'platform=iOS Simulator,id=88FD8DBD-CE09-4851-9262-B1173156FE17' \
-derivedDataPath .build/DerivedData -clonedSourcePackagesDirPath .build/SourcePackages \
-skipPackagePluginValidation -parallel-testing-enabled NO -collect-test-diagnostics never \
-only-testing:SimpleMediaPlayerUITests/IPhoneLayoutUITests/testEnglishDarkDeck \
-only-testing:SimpleMediaPlayerUITests/IPhoneLayoutUITests/testJapaneseLightBacklitDeck \
-only-testing:SimpleMediaPlayerUITests/IPhoneLibraryWorkflowUITests/testEnglishLyricsEditorFitsPhoneScreen \
-only-testing:SimpleMediaPlayerUITests/IPhoneLibraryWorkflowUITests/testJapaneseLyricsEditorFitsPhoneScreen \
CODE_SIGNING_ALLOWED=NO test
æåã®ãã¥ãŒãåçŸãã¹ãã§ã¯ããã¹ãã倱æããåŸã® simctl diagnose ãæ»çããããã¹ãçµäºããã°ã§ç¢ºèªããŠããããã®èšºæåéããã»ã¹ã ããçµäºãããšã倱æçµæã®ä¿åãå®äºããã³ãã³ãã¯çµäºã³ãŒã 65 ãè¿ããã以åŸã®å¯Ÿè±¡ãã¹ãã§ã¯ãXcode 27 ã®ãã«ãã«èšèŒããã -collect-test-diagnostics never ã§ä»»æã®è©³çŽ°èšºæåéãç¡å¹ã«ãããã¹ãçµæã¯éåžžã©ããä¿åããã
macOS ã®ãã«ããLocalizationTests ã®6ä»¶ãPlayerViewModelTests ã®20ä»¶ãééãããæ¥è±ã®ãªãœãŒã¹æ€æ»ã«ã¯ MuteïŒUnmute ã远å ããåçã¢ãã«ã§ã¯æ¢åã® volumeClampsAndMuteRestoresLastAudibleVolume ã®ééã確èªããã倿Žãã Swift ãã¡ã€ã«5ä»¶ã®å³æ Œã¢ãŒãã® lint ã¯éåãªããå
šäœã®éåžžã¢ãŒãã® lint ã¯æ¢åã®èŠå46ä»¶ã»é倧ãªéå0ä»¶ã§ééãããããŒã¹ã©ã€ã³ã¯å€æŽããŠããªããgit diff --check ãééããã
ä»åã®æ€èšŒã§ã¯ãiPad ã® UI ãã¹ããšå®æ©ã§ã® VoiceOver ã®é³å£°ç¢ºèªã¯å®è¡ããŠããªããiPad ã®å¯žæ³æå®ã倿Žåãšåãã§ããããšã¯å·®åã§ç¢ºèªããiOS ã¿ãŒã²ããã®ãã«ãã§ã³ã³ãã€ã«ãæ€èšŒããã
PR å šäœã®è¿œå æ€æ»ã§ç¢ºèªããäžå ·å
ä¿®æ£ã³ããã㯠f37d065ãé¢é£ããåŒã³åºãå ãèŠçŽããæ€æ»ã§ç¢ºèªããææã¯ãã¹ãŠè§£æ¶ããã
ãã¹ãã©ã³ããŒãä»ããªã iOS ã®éåžžèµ·åã§ã¯ã忢±ãã wavpack.framework ã dyld ãçºèŠã§ãããèµ·åçŽåŸã«çµäºãããFrameworks ãã£ã¬ã¯ããªã¯ã¢ããªå
ã«ååšããããDebugã»Release ã®æ€çŽ¢å
ã« macOS çšã® @executable_path/../Frameworks ãããªããiOS çšã® @executable_path/Frameworks ããªãã£ããäž¡æ¹ãæ€çŽ¢å
ã«å ããmacOS ã®æ¢åã®æ€çŽ¢å
ãç¶æãããiPhone 17e ã«ãã«ãããã¢ããªãã€ã³ã¹ããŒã«ããsimctl launch ã§ã©ã€ãã©ãªã衚瀺ãããããšã確èªããããã㯠PR åã® main ã«ãååšããèšå®äžåã§ãUI ãã¹ãã ãã§ã¯æ€åºã§ããªãã£ãã
ã©ã€ãã©ãªããæ²ãåé€ããçµè·¯ã§ã¯ãPlaylistEntry.item ã«éé¢ä¿ããªããããåé€ããæ²ãžã®åç
§ãæ®ã£ãŠãããä¿ååŸã«æ°ãã ModelContext ã§èªã¿èŸŒããã¹ãã§ã¯ãåç
§ã空ã«ãªãããæ²åãååŸãããšç¡å¹åãããã¢ãã«ãžã®ã¢ã¯ã»ã¹ã§ã¯ã©ãã·ã¥ãããLibraryService.delete ã§è©²åœãããã¬ã€ãªã¹ãé
ç®ãæ€çŽ¢ããåé€åã« item = nil ãšãããåãæ²ãå«ãè€æ°ã®ãã¬ã€ãªã¹ãã«ã€ããŠãåèªã¿èŸŒã¿ã§åç
§ãè§£é€ãããããšãæ€èšŒãããã¹ããŒãã¯å€æŽããªãã
æ²ãžã®åç
§ã空ã®ãã¬ã€ãªã¹ãé
ç®ã¯è¡šç€ºããé€å€ãããããã®ãããç»é¢äžã®ç§»åå
ã»ç§»åå
ã€ã³ããã¯ã¹ãå
šé
ç®ã®é
åãžé©çšãããšãå¥ã®é
ç®ãåãããŠããŸããäžŠã¹æ¿ãã Playlist.moveItems ã«éçŽããæ²ãååšããé
ç®ã ããç§»åãããå逿žã¿ã®é
ç®ã¯çžå¯Ÿé åºãä¿ã£ãŠåŸããžé
眮ããä¿åçšã®äžŠã³çªå·ãä»ãçŽããmacOSïŒiPad ã®ãäžãžç§»åããäžãžç§»åããåãåŠçã䜿çšããã
ãããå
ã® AAC å®äºã³ãŒã«ããã¯ã¯ãããããéãããšè¡šç€ºãããªãç¶æ
ãžçµæãæžã蟌ãã§ãããçµæã®ã¡ãã»ãŒãžãšéç¥ã®æç¡ã MainView ã«ä¿æãã圢ãžå€æŽããããããã®è¡šç€ºãã©ã°ã§éç¥å
ãéžã³ã衚瀺ããŠããªãåŽã® Binding setter ãä¿çäžã®éç¥ãæ¶ããªãããã«ããã倿éå§æã®ã¿ã€ãã«ãåºå®ããéäžã§ã¡ã¿ããŒã¿ãç·šéããŠãçµæã®èª¬æãå€ãããªãããã«ããã
ãããã®ããã®ä»ãã¡ãã¥ãŒã¯ãAAC é
ç®ã®äžå€®ãã¿ãããã UI ãã¹ãã§éžæããããã¡ãã¥ãŒãæ®ãå Žåããã£ããAX ã®è¡ã®ç©åœ¢ãšåæå
¥åã®åº§æšã¯äžèŽããŠãããéåžžèµ·åããã·ãã¥ã¬ãŒã¿ãŒã®æäœã§ããæååŽãžã®ã¯ãªãã¯ã¯åæ ããããã¢ã€ã³ã³åŽãžã®ã¯ãªãã¯ã§ã¯å€æãéå§ã§ãããã©ãã«åœ¢åŒã®æå®ã ãã§ã¯ç¹°ãè¿ãå®è¡ã§å€±æãæ®ã£ããæçµçã«ã¯ãã¡ãã¥ãŒãéãã©ãã«ã®44 ptã®å¯žæ³ãšãåé
ç®ã®ã©ãã«ã®å¹
ã»contentShape(Rectangle()) ãåããŠæç€ºãããäžå€®ã®ã¿ãããã倿éå§ã»ãããçµäºã»æåéç¥ãŸã§ã®ååž°ãã¹ãã2åé£ç¶ã§ééãããLED ã®ã¹ã¯ããŒã«æåãšã¬ã©ã¹ã¯ãããå€å®ãç¡å¹ã«ããŠãããã¡ãã¥ãŒæååŽã®å
¥åãé®ãç¬èªã® UIKit ãããå€å®ã¯ãªãã£ããSwiftUI å
éšã§å
¥åé åãçããªãå
·äœçãªåå ã¯ç¹å®ããŠããªãã
倿åŠçèªäœã«ããåã蟌ã¿ã¿ã°ã¯éå§æã®æ
å ±ã䜿çšããã©ã€ãã©ãªç»é²ã§ã¯å®äºåŸã®åæ²ãèªã¿çŽããšããäžæŽåããã£ããå¶åŸ¡ã§ãã renderer ã䜿ããéå§ã確èªããŠããåæ²ã®ã¢ãŒãã£ã¹ããç·šéããæç»ãå®äºããããã¹ãã§åçŸãããåã蟌ã¿ã¿ã°ã¯ Artist ã®ãŸãŸãã³ããŒã®ã¢ãã«ã¯ Edited Artist ã«ãªã£ããåé€ã»ä¿ååŸã«å®äºããããã¹ãã§ããã³ããŒãæ°ããç»é²ãããŠããããã®çµè·¯ã®ãã¹ãã§ã¯ãSwiftData ã®ã¯ã©ãã·ã¥ã¯çºçããŠããªãã
TransformedTrackSourceSnapshot ã¯æåã®åŸ
æ©åã«åæ²ã®æ
å ±ã»æè©ã»ã¢ãŒãã¯ãŒã¯ãšç»é² ID ãä¿æããã空å€ã nil ã倿Žãããã³ããŒã®ã¢ãã«ã«ãéå§æã®å€ã䜿çšãããåæ²ãç»é²æžã¿ãªããæç»åŸã®ã³ããŒéå§åãšããã¡ã€ã«ã³ããŒã®åŸ
æ©åŸã®ç»é²çŽåã« ID ã®ååšã確èªãããåé€ãããŠããã° CancellationError ã§äžæ¢ããæç»çšã»ã©ã€ãã©ãªçšã®äžæåºåãçä»ãããããããéããæäœã¯åæ²ã®åé€ãšåºå¥ãã倿ãšéç¥ãç¶ç¶ãããæªç»é²ã®é
ç®ããã³ããŒãç»é²ããæ¢åã®ãµãŒãã¹ API ã¯ç¶æããã倿ã³ããŒã®ç»é²ãšãã¡ã€ã«ã³ããŒã¯ LibraryService+TransformedCopy.swift ã«ãŸãšããlint ã®ããŒã¹ã©ã€ã³ã¯å¢ãããªãã
é³å£°ãããŒã»éåºŠå€æŽããåŸã«åç»ãžåãæ¿ãããšã倿Žå€ã¯ã¢ãã«ã«æ®ããåç»ã«ã¯é©çšãããªããããiPhone ã® KEYïŒSPEED ã¯æ¢åã®ãã¹ã¯ããã衚瀺ãšåã 0ïŒ1ã»æ¶ç¯è¡šç€ºã«ããããåç»ã® DockïŒStrip ã§ã¯ããŒå€æŽã®è¡šç€ºãé ãããæ¬¡ã«åçãã®çŸåšé ç®ã®èªã¿äžãããåçäžã»äžæåæ¢äžã»åæ¢äžãåºå¥ããã忢äžã®æ¥æ¬èªèš³ã远å ããã
äžæåæ¢ãšåæ¢ãåçæå»ã§æšå®ãããšãäžæåæ¢åŸã«0ç§ãžã·ãŒã¯ããå Žåã¯åæ¢è¡šç€ºãšãªãã忢åŸã«0ç§ä»¥å€ãžã·ãŒã¯ããå Žåã¯äžæåæ¢è¡šç€ºãšãªããPlayerViewModel.isPaused ã§æäœã®ç¶æ
ãä¿æãããããã®èªã¿äžããå
±éã®æäœãã¿ã³ãLED ã®èšå·ãåãå€ã«ãããããæ°ããåçãåéã忢ãã¯ãªã¢ããšã©ãŒã§ã¯äžæåæ¢ç¶æ
ãè§£é€ããã·ãŒã¯ãšãšã³ãžã³ã®åèšå®ã§ã¯ç¶æããã
èªã¿èŸŒããªãæ²ãžåãæ¿ããçµè·¯ã§ã¯ãæ§é
ç®ã®åçäžã« currentItem ãå
ã«å€æŽããURL 解決ã«å€±æãããšæ§åçãç¶ç¶ããŠãããURL 解決ãé
ç®ã®åãæ¿ãããåã«è¡ãã倱ææã¯æ§é
ç®ã®çš®é¡ã«å¯Ÿå¿ããã¯ãªã¢åŠçã§åæ¢ãããçŸåšã®é
ç®ãè§£é€ããããã倱æåŸã®åéæäœã§ãæ§é³å£°ãåçããªãã
åçãããã® LED ã¯ãåºå®é«ãã®åèŠçŽ ãšééã ãã§ 294 pt ãèŠæ±ããäžäžã®äœçœãé€ããå éšé«ã 282 pt ãè¶ ããŠãããè¡éã 14 pt ãã 8 pt ãžå€æŽãã忢±ãã©ã³ãã«ããå é è¡ãå«ããŠåãŸã寞æ³ã«ãããæå»ä»ãæè©ã®åŒ·èª¿è¡šç€ºã¯ãåè¡ã®è£ 食ããšã«å šè¡ãæ€çŽ¢ããŠãããããæç»æŽæ°ã«ã€ãäžåºŠã ãã¢ã¯ãã£ãè¡ãæ±ãã圢ãžå€æŽããã
æžãåºãåå ¥åç»é¢ã§ã¯ãããŒããŒãã衚瀺ãããšäžèŠ§ã®æå°é«ã 280 pt ãšçžŠããã¿ãŒå ã® Spacer ã«ãããã¿ã€ãã«ãæ¬ ããæžãåºããã¿ã³ãåè£è¡šç€ºã«é ããŠãããä¿®æ£åã®è±èª UI ãã¹ãã¯ãå ¥åæžã¿ã§æå¹ãªãæžãåºãããã¿ã³ã®æäœå¯èœæ§æ€æ»ã«å€±æãããé²ç»ã§ãéãªãã確èªãããiPhone ã§ã¯äžèŠ§ã®æå°é«ããšããã¿ãŒã® Spacer ãå€ããmacOSïŒiPad ã®å¯žæ³ã¯ç¶æãããAX ã®ããŒããŒãæ ã«ã¯åè£è¡šç€ºã®äžéšãå«ãŸããªããããæ ã®æ¯èŒã ãã§æäœå¯èœãšå€æããªãã
iPhone ã®æ°ããç»é¢ã«ã¯æ¢åã®åççš FocusedValue ã®æäŸå ããªããããå€éšããŒããŒãã®åçïŒäžæåæ¢ã»åæ²ã»æ¬¡æ²ã³ãã³ããç¡å¹ã«ãªã£ãŠãããiPhone ã§æäŸå ããªãå Žåã¯çŸåšã®ãã¬ã€ã€ãŒãæäœãããmacOSïŒiPad ã§ã¯åŸæ¥ã®æäŸå ãšæå¹æ§å€å®ãç¶æããã
2026 幎 10 æ 3 æ¥ã®è¿œå æ€æ»ã§ã¯ãmacOS ã® PlaylistOrderingTestsã»LocalizationTestsã»PlayerViewModelTestsã»PlayerPlaybackStateTestsã»TransformedExportCancellationTestsã»LibraryServicePersistenceTests ã®54ä»¶ãééãããæ¢åã®æªç»é²é
ç®ããã®ã³ããŒç»é²ãæ
å ±ã®ç¶æ¿ããã£ã³ã»ã«ãAAC ã®å®ã¬ã³ãã©ãŒã«ããåºåãäžæåæ¢ãšåæ¢ã®å¢çãèªã¿èŸŒã¿å€±æåŸã®åéæåŠãå«ããiOS 27 ã® iPhone 17e ã§ã¯ PlayerViewModelTestsã»PlayerPlaybackStateTestsã»PlaylistOrderingTestsã»TransformedExportCancellationTests ã®41ä»¶ãééãããiPad Pro 11 ã€ã³ã M5 ã®åºæ¬ç»é¢ã»èšå®æäœãã¹ããšãäžŠã¹æ¿ãã®åäœãã¹ã6ä»¶ãééããã
æ¥è±ã®ãããååž°ãã¹ã2ä»¶ã¯ããã¥ãŒãã«å ããŠã次ã«åçãã®åçäžâäžæåæ¢äžâ忢äžã確èªããŠééãããæ¥è±ã®æžãåºãåå
¥åãã¹ã2ä»¶ãšãå
±æã·ãŒããžã®æžãåºãã»çµäºã»åæžãåºãã®ç¢ºèªãééãããAAC ã®ãããçµäºåŸã®éç¥ãã¹ãã¯ãæçµçãªã¡ãã¥ãŒã®ä¿®æ£åŸã«2åé£ç¶ã§ééããåçç¶æ
ã®ä¿®æ£åŸã«ãåå®è¡ããŠééãããæ¥è±ã®ãããååž°ãã¹ã2ä»¶ãæçµçã§åå®è¡ãããDEBUG && os(iOS) ãš2ã€ã®ãã¹ãçšèµ·ååŒæ°ãããå Žåã ã renderer ãããã¯ã°ã©ãŠã³ãã§10ç§åŸ
æ©ããã倿å®äºåã«ã¡ãã¥ãŒãšããããéããé åºãåçŸãããã©ã€ãã©ãªç»é¢ã®æåéç¥ãšéå§æã®æ²åãæ€æ»ãããéåžžèµ·åã® renderer ã¯å€æŽããªãã
倿Žãã Swift ãã¡ã€ã«ã®ãã¡æ¢åéåã®ãªã19ä»¶ã®å³æ Œã¢ãŒãã® lint ã¯ãéåãªãã§ééãããå
šäœã®éåžžã¢ãŒãã§ã¯135ä»¶ã®ãã¡ã€ã«ã«æ¢åèŠå47ä»¶ã»é倧ãªéå0ä»¶ã§ééãããPlayerViewModel ã®ã¡ãœããã¯åããã¡ã€ã«ã® extension ã«åããã¯ã©ã¹ã®é·ãã®é倧ãªéåãè§£æ¶ããããã¡ã€ã«ã®é·ãã®æ¢åèŠåãå衚瀺ãããèŠåæ°ã¯46ä»¶ãã47ä»¶ãšãªã£ããæ¢åã®å·šå€§ãã¹ããã¡ã€ã«ã«ã¯æ°èŠãã¹ãã远èšãããå
±é fixture ã®ã¢ã¯ã»ã¹ç¯å²ã ãã倿Žããååž°ãã¹ããå¥ãã¡ã€ã«ãžçœ®ãããæ¢åéåãæã€4ãã¡ã€ã«ã¯å€æŽç®æãå·®åã§ç¢ºèªãããããŒã¹ã©ã€ã³ã¯å€æŽãããé·ãã®éåãæå¶ããæå®ã远å ããŠããªãããã¹ãçš renderer ã®å¿
é 6åŒæ°ã®å®£èšã«ã¯ãçç±ã®ã³ã¡ã³ããä»ããŠåŒæ°æ°ã®ã«ãŒã«ã ãã屿çã«ç¡å¹åããã
æªæ€èšŒãªã®ã¯ãéåæãã¡ã€ã«ã³ããŒã®åŸ æ©äžã«åæ²ãåé€ããé åºã®çŽæ¥åçŸããããçµäºã¢ãã¡ãŒã·ã§ã³äžã»åã·ãŒã衚瀺äžã® AAC å®äºã宿©ã® VoiceOverã»AirPlayã»å€éšããŒããŒããæšªç»é¢ãšæ¥µç«¯ã«å€§ããæåãµã€ãºã§ã®æžãåºãå ¥åæäœãã³ããŒåŸ æ©äžã®åé€ã¯ã³ããŒåŸã® ID 確èªã§é²ãæ§é ã確èªããããrenderer ã®éå§ãšçµäºãå¶åŸ¡ããä»åã®ãã¹ãã§ã¯ããã®ã¿ã€ãã³ã°ãçŽæ¥åçŸããŠããªãã
äžéšã®åçããã«ã®é 眮修æ£
æšæºã®äžéšã¢ã¯ã»ãµãªãŒãžé«ã 66 pt ã® LEDãç¬èªã®ããã«èæ¯ãäžžãåçãã¿ã³ãéãããšãæšæºã®ã«ãã»ã«åœ¢ç¶ãšå¯žæ³ãäžèŽããã端éšã«èæ¯ãé²åºããæåãšæäœãè©°ãŸã£ãŠãããiPhone 17e ã® UI ãã¹ãã§ã¯ãæ²åã®ãã¿ã³ãšåçãã¿ã³ã®é åãçŽ 0.5 pt éãªãã8 pt 以äžã®ééãæ±ããæ€æ»ã«å€±æããããã¿ã³ãç»é¢å ã«ããã44 pt 以äžããããšã ãã§ã¯ãããããé 眮ã®åé¡ãæ€åºã§ããªãã
Dock ã¯æšæºã¢ã¯ã»ãµãªãŒã®ã¬ã©ã¹èæ¯ã«ãDynamic Type 察å¿ã®æ²åã»çµéæéãšæšæºã® SF Symbols ã®æäœã眮ã圢ãžå€æŽãããã³ã³ãã³ãã¯é«ã 44 ptãå·Šå³ã®äœçœãšæäœéšã®éé㯠12 pt ã«ãããé·ãæ²åã¯æ«å°Ÿãçç¥ããå®å
šãªæ²åãšæå»ã¯ã¢ã¯ã»ã·ããªãã£å€ã«ä¿æãããã¿ãããŒã®çž®å°æã«äœ¿çšãã .inline ã®é
眮ã§ã¯æå»ã𿬡æ²ãã¿ã³ãçç¥ããåå²ã眮ãããçŸåšã®ç»é¢ã¯ .tabBarMinimizeBehavior(.never) ã䜿çšããŠããããã®åå²ã¯åäœæ€èšŒããŠããªãã
æå€§ã®ã¢ã¯ã»ã·ããªãã£æåãµã€ãºã ãã§ã¯ã2 è¡ã衚瀺ããéåžžã®å€§ããªæåãµã€ãºã®äœè£ãæ€æ»ã§ããªãã.xxxLarge ã®ãã¹ãã¯æäœé åã®æ€æ»ãééããããã¹ã¯ãªãŒã³ã·ã§ããã§ã¯æ²åãšæå»ãäžäžç«¯ã«è©°ãŸã£ãŠãããViewThatFits ã§çžŠæ¹åã®çæ³ãµã€ãºãå€å®ãã2 è¡ãåãŸããªãå Žåã¯æ²åã ãã«åãæ¿ãããåè£ã®å
éšã«åºå®é«ãã眮ãããå€åŽã« 44 pt ã®æå°ã¿ããé åãèšå®ããããšã§ãæåã®é«ãã®éãã«å¯Ÿå¿ããã
ãã®é 眮ã¯ãApple ã® LayoutãButtonsãTab bars ã«ãããäž»èŠãªæ å ±ãšæäœã®ããã®é åã確ä¿ããæ¹éãšãã¿ãããŒã®äžã®åçã¢ã¯ã»ãµãªãŒã®äŸãåç §ãããAdopting Liquid Glass ã«åŸããæšæºèæ¯ã劚ããç¬èªã®èæ¯ãéããªãã12 pt ã®ééã¯ãã®ç»é¢ã§éžãã 寞æ³ã§ãããHIG ã«äžåŸã®å€ãšããŠèŠå®ãããŠãããã®ã§ã¯ãªãã
éåžžã®ã¹ãã¯ãã©ã ã 44Ã16 pt ã«çž®ããå®è£ ããDock ãšæè©ã»æ å ±ããŒãžã® LED 垯ã§å ±éã ã£ããã¹ãã¯ãã©ã ã«ã¯äžå€®ã® 38 pt ã®ééãããŒãšã»ã°ã¡ã³ãã®æå°å¯žæ³ããããããçãé åã§ã¯æç»ãé åãè¶ããLïŒR ãªã©ã®æåãéãªããå°å衚瀺ãããã®ããžã¥ã¢ã©ã€ã¶ãŒãå€ããå¿ èŠãªé åãæã€ãããã®ããã£ã¹ãã¬ã€ãããŒãžã ãã§è¡šç€ºããã
é·ãæ¥è±æ··åšã®æ²åãæã€ãã¹ãããŒã¿ãšãSwiftUI ã® Dynamic Type ã .xxxLargeïŒ.accessibility5 ã«ãã DEBUG å°çšèšå®ã䜿çšãããã©ã¡ããæç€ºç㪠UI ãã¹ãçšèµ·ååŒæ°ãå¿
èŠã§ãéåžžèµ·åã§ã¯é©çšããªããDock ã®æäœé åãç»é¢å
ãžã®åãŸãã8 pt 以äžã®ééãå®å
šãªæ²åã®ã¢ã¯ã»ã·ããªãã£å€ãåçïŒäžæåæ¢ã»æ¬¡æ²ã»ãã¥ãŒçµç«¯ã§ã®æ¬¡æ²ãã¿ã³ã®ç¡å¹åã»ããããéãæäœãæ€æ»ãããèæ¯ãšæåã®è¡šç€ºã¯ä¿åããã¹ã¯ãªãŒã³ã·ã§ããã§ç¢ºèªããã
ä¿®æ£ã³ããã㯠4f8a909ã2026 幎 10 æ 3 æ¥ã«ã次ã®ç¯å²ãæ€èšŒããã
- iPhone 17eïŒiOS 27ïŒïŒæ¥è±ã»å€èŠ³ãš LED ã¹ã¿ã€ã«ã® 4 éãã®ãããååž°ãã¹ããæ¥è±æ··åšã®é·ãæ²åãšæå€§æåãµã€ãºã®æ¥è±ãã¹ããééããã瞊æ¹åã®çæ³ãµã€ãºã«ããåãæ¿ããå ããæçµçã§ãéåžžãµã€ãºã®è±èªã»ã©ã€ãã倧ããªæåã®
.xxxLargeãæå€§æåã®æ¥æ¬èªã»ããŒã¯ãåå®è¡ããŠééãããä¿åç»åã§é垞㯠2 è¡ã倧ããªæåã§ã¯æ²åã®ã¿ã«ãªããæåã®æ¬ ããéãªãããªãããšã確èªããã - iPhone 17 Pro MaxïŒiOS 27ïŒïŒæ¥æ¬èªã»ã©ã€ãã»ããã¯ã©ã€ãã® Dockã»ãããã»æè©ã®åž¯ãšãé·ãæ²åã»æå€§æåã®è±èªãã¹ããééãããæçµçã§ãè±èªã»ããŒã¯ã®ãããååž°ãã¹ããšé·ãæ²åã»æå€§æåã®ãã¹ããééãããä¿åç»åã§ Dock ã®èæ¯ãšæåãçž®å°ãã LED 垯ã®è¡šç€ºã確èªããã
- iPad Pro 11 ã€ã³ã M5ïŒiOS 27ïŒïŒäž»ç»é¢ãšèšå®ã®åºæ¬æäœãã¹ã 1 ä»¶ãééããã
- macOS 27ïŒã¢ããªãšãã¹ãã¿ãŒã²ããã®ãã«ãã
LocalizationTestsã® 6 ä»¶ãééãããmacOS å°çšã® UI ãã¹ãã¯ä»ååå®è¡ããŠããªããå°çš Dock 㯠iOS ã«éå®ããæ¢åã®.standardã® LED 衚瀺çµè·¯ã¯å·®åã§ç¢ºèªããã - 倿Žãã Swift ãã¡ã€ã« 7 ä»¶ã®å³æ Œã¢ãŒãã® lint ã¯éåãªããå
šäœã®éåžžã¢ãŒã㯠136 ãã¡ã€ã«ã«æ¢åã®èŠå 47 ä»¶ã»é倧ãªéå 0 ä»¶ã§ééãããããŒã¹ã©ã€ã³ã¯å€æŽããŠããªããã³ãŒããš Wiki ã®
git diff --checkãééããã
宿©ã§ã® VoiceOver ã®é³å£°ãéæåºŠãäžããèšå®ãšã³ã³ãã©ã¹ããäžããèšå®ã§ã®è¡šç€ºã¯ä»å確èªããŠããªããVoiceOver ã«å ¬éãããã¿ã³ã®çš®é¡ã»æ¥è±ã®ã©ãã«ã»å®å šãªæ²åã®å€ã¯ãã³ãŒããš UI ãã¹ãã§ç¢ºèªããã
LED è²èšå®ã®æåæ¡å€§å¯Ÿå¿ïŒPR #16ïŒ
远å ã¬ãã¥ãŒã§ã¯ãiPhone ã®èšå®ç»é¢ã«ããè²ããªã»ããã®æšªäžŠã³ãææããããiPhone 17e ã®ã·ãã¥ã¬ãŒã¿ãŒã§ãä¿®æ£åã®éåžžæåãµã€ãºã§ã Green ãªã©ã®è²åãæ°æåãã€ã«åæãããããšã確èªãããLEDColorEditor ã¯ãéåžžã®è¡šç€ºè²ãããã¯ã©ã€ãæã®è¡šç€ºè²ãããã¯ã©ã€ãè²ãVU ã¡ãŒã¿ãŒã®ç€é¢è²ã»ã©ã³ãè²ã®èš 5 ãæã§å
±çšãããŠããã
ããªã»ãã㯠ViewThatFits(in: .horizontal) ã§é
眮ãéžã¶ã暪䞊ã³åè£ã®å¹
㯠fixedSize(horizontal: true, vertical: false) ã§èªç¶ãªå¹
ã«ä¿ã¡ãåãŸããªããšãã¯çžŠäžŠã³ã«ãããéžæãã§ãã¯ããŒã¯ãšæ¥è±ã®è²åãå«ããŠå€å®ããããã端æ«çš®å¥ã ãã«ããåãæ¿ãã¯äžèŠã§ããã
æå€§ã¢ã¯ã»ã·ããªãã£æåãµã€ãºã§ã¯ãé£ã®è²ã³ãŒãå
¥åæ¬ãš Apply ãæšªäžŠã³ã§ã¯åãŸããªãã£ããä¿®æ£åã®å
¥åæ¬ã¯çŽ 134 pt ã§ã7 æååã®çŽ 229 pt ããçãã#FF9F2E ã #F⊠ãšçç¥ãããããã®è¡ã¯ã¢ã¯ã»ã·ããªãã£æåãµã€ãºã§çžŠäžŠã³ã«å€æŽãããAnyLayout ã䜿ããã¬ã€ã¢ãŠããåãæ¿ããŠãåãå
¥åæ¬ãä¿æããã
LEDSettingsLayoutUITests ã¯ãèšå®ã¡ãã¥ãŒããç»é¢ãéããåããªã»ããã®å°éæ§ã»è¡šç€ºç¯å²ã»æå寞æ³ãOrange éžæåŸã®ãã§ãã¯ããŒã¯ãå«ã衚瀺ç¯å²ãè²ã³ãŒããžã®åæ ãå
¥åæ¬ã®å¹
ãApply ã®æäœãæ€èšŒãããæ¢åã® --ui-testing-phone-large-text ã«ããã«ãŒãã®ç°å¢å€å€æŽã ãã§ã¯ããã®èšå®ã·ãŒãã¯éåžžæåãµã€ãºã®ãŸãŸã ã£ããæ°ãããã¹ãã§ã¯ã¢ããªã®èµ·åèšå® UIPreferredContentSizeCategoryName ã䜿ããå®éã®æå寞æ³ãšä¿åç»åã§ãæ¡å€§ã確èªããã
2026 幎 10 æ 3 æ¥ã« Xcode 27 ã§æ¬¡ã®æ€èšŒã宿œããã
- iPhone 17eã»iOS 27ïŒéåžžãµã€ãºã®è±èªãšãæå€§ã¢ã¯ã»ã·ããªãã£ãµã€ãºã®è±èªã»æ¥æ¬èªã® UI ãã¹ãèš 3 ä»¶ãééãããä¿åç»åã§è²åã»éžæãã§ãã¯ã»è²ã³ãŒãå šäœã»ApplyïŒé©çšã®è¡šç€ºã確èªããã
- iPad Pro 11 ã€ã³ã M5ã»iOS 27ïŒäž»ç»é¢ããèšå®ãéããŠéããæ¢å UI ãã¹ã 1 ä»¶ãééããã
- macOS 27ïŒãã«ããš
BottomPanelSettingsTestsãLEDColorValueTestsãVUMeterPaletteTestsãLocalizationTestsã®èš 24 ä»¶ãééããã - 倿Žãã Swift ãã¡ã€ã« 2 ä»¶ã®å³æ Œ lint ã¯éåãªããå šäœã®éåžž lint ã¯æ¢åèŠå 47 ä»¶ã»é倧éå 0 ä»¶ã§ééãããããŒã¹ã©ã€ã³ã¯å€æŽããŠããªãã
ããã¯ã©ã€ãçšã® 2 ã€ã®è²ãšãã£ã¿ãŒãš VU ã¡ãŒã¿ãŒçšã® 2 ã€ã¯ãå ±ééšåã®åŒã³åºãå ãšããŠå·®åãšã³ãŒãã§ç¢ºèªããããä»åã® UI ãã¹ãã§ã¯åå¥ã«æäœããŠããªããmacOS ã®èšå®ç»é¢ã®æç»ã宿©ãVoiceOver ã®é³å£°ã¯ä»åæªæ€èšŒã§ããã
æ®ãéžæé ç®ãšæ å ±è¡šç€ºã®æåæ¡å€§å¯Ÿå¿ïŒPR #16ïŒ
远å ã¬ãã¥ãŒã§ã¯ãLED èšå®ã®ã»ã°ã¡ã³ãåããã«ãŒã iPhone ã®æå€§æåãµã€ãºã§ã¯åãŸããªããšææããããä¿®æ£åã®è±èª UI ãã¹ãã¯ãéžæè¢ã®æåæ ã®é«ãã 16 pt ã«ãšã©ãŸã£ãç¶æ ã§å€±æãããè²ããªã»ããã ãã§ãªãã衚瀺ã¹ã¿ã€ã«ã»æå»ã»ã¡ãã£ã¢æ å ±ã»ã¬ã©ã¹å¹æã»ã¹ãã¯ãã©ã å¿çã®åéžæè¢ãæ€æ»ããå¿ èŠãããã
AdaptiveSettingsPicker ã¯ãiPhone ãŸãã¯ã¢ã¯ã»ã·ããªãã£æåãµã€ãºã§ãæãè¿ãå¯èœãªæ¬æãµã€ãºã®éžæãã¿ã³ã瞊ã«äžŠã¹ããéžæç¶æ
ã¯ãã§ãã¯ããŒã¯ãš AX ã® selected trait ã«å
¬éããå
ã® Binding ãšéžæè¢ããšã®ç¡å¹åæ¡ä»¶ã䜿çšãããéåžžæåãµã€ãºã® iPadïŒmacOS ã§ã¯åŸæ¥ã®ã»ã°ã¡ã³ã衚瀺ãç¶æãããiPadïŒmacOS å°çšã®ããã«é
眮ã»LED äœçœ®ã»è§ã®éžæãããã®éšåã䜿çšããã
åãåå ãæ®ã£ãŠããæè©ã®ä¿åå ãšæ€çŽ¢æ¡ä»¶ã® Match ãããã®éšåãžå€æŽãããæè©ãšãã£ã¿ãŒã¯ã¢ã¯ã»ã·ããªãã£æåãµã€ãºã§ä¿åå ã®é åãã¹ã¯ããŒã«å¯èœã«ããæ¬æã®ç·šéé åã確ä¿ãããæ€çŽ¢ã®èŠåºããšæäœãã¿ã³ã¯åãæåãµã€ãºã§çžŠã«äžŠã¹ãiPhone ã«åºå®ã®æšå¥šå¯žæ³ãèŠæ±ããªãã
ãããã® 4 ã€ã®ããŒãžåã¯ãæå€§æåãµã€ãºã®ä¿åç»åã§çç¥ãããŠãããã¢ã¯ã»ã·ããªãã£æåãµã€ãºã§ã¯ãçŸåšã®ããŒãžåã衚瀺ããæšæºã¡ãã¥ãŒãžåãæ¿ãããæ å ±ããŒãžã®å€ãšã¢ãŒãã¯ãŒã¯ãªãã®è¡šç€ºã¯ãiPhone ã§ã¯åºå®ã® 13 pt ããæ¬æãµã€ãºãžå€æŽããè€æ°è¡ã®é«ãã確ä¿ãããæ²äžèЧã®çŸåšé ç®ããè£ é£Ÿã¢ã€ã³ã³ã«åžžã«ãåçäžããšä»ããæ¹æ³ããããè¡ã®å€ã§åçäžã»äžæåæ¢äžã»åæ¢äžãåºå¥ããã
èšå®ã倿Žãã UI ãã¹ãã®åæå€ãèµ·ååŒæ°ã§æå®ãããšãUserDefaults ã® argument domain ã倿ŽåŸã®æ°žç¶å€ããåªå
ãããéžæãåæ ãããªããæç€ºç㪠DEBUG çšåŒæ° --ui-testing-reset-led-settings ã䜿çšãããã¹ãããŒã¿ã®äœææã«æ°žç¶å€ãåæåãããéåžžèµ·åã§ã¯åæåããªãããã¹ãã¯éžæè¢ã®å°éæ§ã»å®å
šãªæ¥è±ã©ãã«ã»æå寞æ³ã»ç»é¢å
ãžã®åãŸãã«å ããå¥ã®å€ãžã®å€æŽãšå
ã®å€ãžã®åŸ©åž°ãåæ¹ã® selected trait ã確èªããã
æè©ãšãã£ã¿ãŒãšæ å ±ç»é¢ã®ã¹ã¯ããŒã«æ€èšŒã§ã¯ãç»é¢å šäœã§ã¯ãªãã察象㮠ScrollView ã®è¡šç€ºé åãžã®åãŸãã確èªãããç»é¢å€ã® AX èŠçŽ ã¯ååšããŠããŠãé«ã 0 ã®æ ãè¿ãããããããå¯èŠç¶æ ãšå€æããªããå°ããªé åã§å€§ãããã©ãã°ãããšãæ £æ§ã§å¯èŠç¯å²ãè¡ãéããŠåŸåŸ©ããã衚瀺é åã«å¿ããçããã©ãã°ãšäœéã»çµäºåã®ä¿æã䜿ããéžæåŸã«æåã®é ç®ãžæ»ãæ¹åãæç€ºããã
æ¥æ¬èªã ãã®çãæååã§ã¯ãAX ã® Text ã®æ ããã©ã³ãã®è¡éãå«ãŸããæåã®èŒªéã«è¿ãé«ããšãªãå Žåããããæå€§æ¬æãµã€ãºã®ãäœéãã¯ããã©ã³ãã®è¡é«ãçŽ 63 pt ã«å¯Ÿã㊠AX ã®é«ã㯠44 pt ã ã£ããæåçž®å°ãšèª€å€å®ããªããããLED éžæè¢ã®é«ãã¯ãæå®èšèªã»æ¬æãã©ã³ãã»å®éã®å¹ ã§ CoreText ã«çµçãããæå茪éãšæ¯èŒãããæãè¿ããè¡ã®åºæºäœçœ®ãå«ããå šåæ°ãçµçã§ããããšã確èªãããä¿®æ£åã® 16 pt ã®è¡šç€ºã¯ããã®å€å®ã§ãå¿ èŠãªæåã®é«ãã«å±ããªãã
æ å ±ç»é¢ã®ãã¹ãã§ã¯ãéžãã æ²ãäžæåæ¢ããŠããæ€æ»ããã60 ç§ã®é³æºãåçãããŸãŸé·ã UI æ€æ»ãè¡ããšããã¥ãŒãæ¬¡ã®æ²ãžé²ã¿ãæ å ±ç»é¢ãæ°ããæ²ãžæŽæ°ããããæ ãã¹ã¯ããŒã«ã®äžå ·åãšèª€èªããªããããè¡ã® AX å€ãäžæåæ¢äžã«ãªã£ãããšã確èªããŠãããéžãã æ²ã®å€ãæ€æ»ããã
ä¿®æ£ã³ããã㯠f10b6aeã2026 幎 10 æ 3 æ¥ã« Xcode 27 ã§æ¬¡ã®ç¯å²ãæ€èšŒããã
- iPhone 17eã»iOS 27ïŒUI ãã¹ãèš 16 ä»¶ãééããã
LEDSettingsLayoutUITestsã® 6 ä»¶ã¯ãéåžžãµã€ãºã®è±èªãšæå€§æåãµã€ãºã®æ¥è±ã§ã5 ã°ã«ãŒãã»13 éžæè¢ãšè²ããªã»ãããæ€æ»ãããIPhoneEditorPickerUITestsã® 4 ä»¶ã¯ãæå€§æåãµã€ãºã®æ¥è±ã®ä¿åå ã»æ€çŽ¢æ¡ä»¶ã倿ŽããŠæ»ããæè©ç·šéé åãšçµäºæäœã確èªãããIPhoneInformationAccessibilityUITestsã® 2 ä»¶ã¯ãæå€§æåãµã€ãºã®æ¥è±ã®ã¢ãŒãã¯ãŒã¯ãªãã»æ²åã»ã¢ãŒãã£ã¹ãã»ã¢ã«ãã ã»ãã¡ã€ã«åã®æ¬æãµã€ãºãšè¡šç€ºé åãžã®åãŸããæ€æ»ãããéåžžãµã€ãºã®æ¥è±ã®ããããšæè©ç·šéã®æ¢å 4 ä»¶ãééããæ²äžèЧã®èªã¿äžãå€ã®åæ¢äžâåçäžâäžæåæ¢äžã確èªããã - iPad Pro 11 ã€ã³ã M5ã»iOS 27ïŒ
IPadLayoutUITestsã® 2 ä»¶ãééãããéåžžãµã€ãºã§ã¯ããã«é 眮ã®ã»ã°ã¡ã³ã衚瀺ãç¶æããæå€§æåãµã€ãºã§ã¯ã¬ã©ã¹å¹æã® 4 éžæè¢ã®å¯žæ³ã»éžæå€æŽã»éžæç¶æ ã確èªããã - macOS 27ïŒãã«ããš
BottomPanelSettingsTestsãLEDColorValueTestsãVUMeterPaletteTestsãLocalizationTestsãPlayerPlaybackStateTestsãMediaInfoDetailsTestsã®èš 34 ä»¶ãééããã - 倿Žãã Swift ãã¡ã€ã« 13 ä»¶ã®å³æ Œ lint ã¯éåãªããå šäœã®éåžž lint 㯠140 ãã¡ã€ã«ã«æ¢åèŠå 47 ä»¶ã»é倧éå 0 ä»¶ã§ééãããããŒã¹ã©ã€ã³ã¯å€æŽããŠããªããã³ãŒããš Wiki ã®å·®åæ€æ»ãééããã
ä¿åç»åã§ã¯ãæ¥è±ã®éžæè¢ã®æãè¿ãããã§ãã¯ããŒã¯ãšã®ééãæè©ã®ç·šéé åãæ€çŽ¢ã®çµäºãã¿ã³ãæ å ±ã®è€æ°è¡è¡šç€ºã確èªããã宿©ã® VoiceOver ã®é³å£°ã暪åã iPhoneãmacOS ã®èšå®ç»é¢ã®æç»ã¯ä»åæªæ€èšŒã§ãããiPadïŒmacOS ã®æè©ç·šéãšæ€çŽ¢ã¯åŒã³åºãå ãšå·®åã§ç¢ºèªããããæå€§æåãµã€ãºã®ç»é¢æäœã¯åå¥ã«ã¯æ€èšŒããŠããªãã