๐Ÿ“–[MAUI] .NET 10 Preview ์†Œ๊ฐœ

preview7

XAML ์†Œ์Šค ์ƒ์„ฑ๊ธฐ ๋„์ž…, MediaPicker ๋ฐ SafeArea ๊ธฐ๋Šฅ ํ–ฅ์ƒ, iOS/macOS ํˆด๋ฐ” ๊ฐœ์„  ๋“ฑ ๋‹ค์–‘ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.


์ฃผ์š” ๊ธฐ๋Šฅ

  • XAML ์†Œ์Šค ์ƒ์„ฑ๊ธฐ: ์ปดํŒŒ์ผ ์‹œ XAML ํŒŒ์ผ์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋นŒ๋“œ ์„ฑ๋Šฅ์„ ๋†’์ด๊ณ  IntelliSense๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. **EnablePreviewFeatures**๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  [XamlProcessing] ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MediaPicker EXIF ์ง€์›: ์ด๋ฏธ์ง€์˜ EXIF ์ •๋ณด๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ, ์ด๋ฏธ์ง€ ๋ฐฉํ–ฅ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œ์‹œํ•˜๊ณ  ์›๋ณธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.

  • SafeArea ๊ฐœ์„ : SafeAreaEdges ์†์„ฑ์ด ๊ฐœ์„ ๋˜์–ด SafeAreaRegions ์—ด๊ฑฐํ˜•์„ ํ†ตํ•ด ๋…ธ์น˜๋‚˜ ํ‚ค๋ณด๋“œ์™€ ๊ฐ™์€ ์˜์—ญ์— ๋Œ€ํ•œ ํŒจ๋”ฉ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ณด์กฐ ํˆด๋ฐ” ํ•ญ๋ชฉ: iOS ๋ฐ macOS์—์„œ **Order="Secondary"**๋กœ ์„ค์ •๋œ ํˆด๋ฐ” ํ•ญ๋ชฉ์ด ์ž๋™์œผ๋กœ ์˜ค๋ฒ„ํ”Œ๋กœ ๋ฉ”๋‰ด์— ๊ทธ๋ฃนํ™”๋˜์–ด ํ”Œ๋žซํผ ๊ด€ํ–‰์— ๋” ์ž˜ ๋งž๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์ƒˆ๋กœ์šด API ๋ฐ ์ปจํŠธ๋กค ๊ฐœ์„ 

  • ์ƒˆ๋กœ์šด API: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ Picker ์ปจํŠธ๋กค์„ ์—ด๊ณ  ๋‹ซ๊ฑฐ๋‚˜, SearchHandler์—์„œ ์†Œํ”„ํŠธ ํ‚ค๋ณด๋“œ๋ฅผ ์ œ์–ดํ•˜๊ณ , Vibration ๋ฐ HapticFeedback ์ง€์› ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • API ์ œ๊ฑฐ: .NET 10์˜ ์ผํ™˜์œผ๋กœ Accelerator, ClickGestureRecognizer ๋“ฑ ์ผ๋ถ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” API๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


ํ”Œ๋žซํผ๋ณ„ ์—…๋ฐ์ดํŠธ

  • .NET for Android: ๋‹ค์–‘ํ•œ ๋Ÿฐํƒ€์ž„๊ณผ์˜ ํ†ตํ•ฉ์„ ์ง€์†ํ•˜๋ฉฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜, NuGet ํŒจํ‚ค์ง€ ๋ฌธ์ œ ๋“ฑ ์—ฌ๋Ÿฌ ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • .NET for iOS, Mac Catalyst, macOS, tvOS: Xcode 26 ๋ฒ ํƒ€ 4๋ฅผ ์ง€์›ํ•˜๋ฉฐ, **์ƒˆ๋กœ์šด ๋ฐ”์ธ๋”ฉ ์ƒ์„ฑ๊ธฐ(RGen)**๋ฅผ ํ†ตํ•ด ๋ฐ”์ธ๋”ฉ ์„ฑ๋Šฅ, ๋Ÿฐํƒ€์ž„ ๋™์ž‘ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, iOS 26์—์„œ Shell ๋ Œ๋”๋ง์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”