Xamarin.forms: Uwp Xamarin.Forms.Shell

์— ๋งŒ๋“  2019๋…„ 03์›” 17์ผ  ยท  61์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: xamarin/Xamarin.Forms

Uwp Xamarin.Forms.Shell์ด โ€‹โ€‹uwp์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Android ๋ฐ ios์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ €๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํœด๋Œ€ํฐ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” iOS ๋ฐ Android๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํƒœ๋ธ”๋ฆฟ ๋ฐ ๋ฐ์Šคํฌํ†ฑ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” UWP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Windows ์‚ฌ์šฉ์ž์˜ ์ฐธ์—ฌ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด UWP ์ง€์›์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  61 ๋Œ“๊ธ€

ํ˜„์žฌ ์…ธ ์ง€์›์€ Android ๋ฐ iOS์— ๋Œ€ํ•ด์„œ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž ์žฌ์ ์ธ ํ–ฅํ›„ UWP ์ง€์›์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ง€์†์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ–ฅํ›„ ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ์ œ๊ณต๋˜๋Š” ๋Œ€๋กœ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํœด๋Œ€ํฐ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” iOS ๋ฐ Android๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํƒœ๋ธ”๋ฆฟ ๋ฐ ๋ฐ์Šคํฌํ†ฑ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” UWP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Windows ์‚ฌ์šฉ์ž์˜ ์ฐธ์—ฌ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด UWP ์ง€์›์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ญ?? MS๋Š” ์‹ค์ œ๋กœ ์ž์ฒด ํ”Œ๋žซํผ์„ ๋ฒ„๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์Šฌํ”ˆ ์†Œ์‹์ž…๋‹ˆ๋‹ค!

UWP ์ง€์›์ด ์ œ๊ณต๋  ์‹œ๊ธฐ์— ๋Œ€ํ•œ ๊ฐ€์‹œ์„ฑ์ด ์—†๋‚˜์š”? ์•„๋‹ˆ๋ฉด ์ด๋ฏธ ๊ฒฐ์ •์ด ๋‚ด๋ ค์กŒ์Šต๋‹ˆ๊นŒ?

UWP์— ๋Œ€ํ•œ ์…ธ ์ง€์› - ์ œ๋ฐœ!

์…ธ์— ๋Œ€ํ•œ UWP ์ง€์›๋„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ํšŒ์‚ฌ์˜ ๊ฒฝ์šฐ UWP๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ์ด Windows ํƒœ๋ธ”๋ฆฟ์„ ์ผ๋ถ€ Android ํœด๋Œ€ํฐ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. UWP ์ง€์›์ด ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ Shell๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋™์˜ํ•จ -- UWP ํ˜ธํ™˜์„ฑ์„ ํ†ตํ•ด ๋ชจ๋ฐ”์ผ ๊ตฌํ˜„๊ณผ ํ•จ๊ป˜ Windows ํƒœ๋ธ”๋ฆฟ ๊ธฐ๋Šฅ์„ ๋ฒ ์ดํฌ ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ ์—†์ด ์ด๊ฒƒ์„ ์™„์ „ํžˆ ๋ณ„๋„๋กœ ์ฝ”๋”ฉํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™! UWP ํ˜ธํ™˜์„ฑ์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค!

๋‚˜๋Š” ์•„์ง Shell์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ UWP ๊ตฌํ˜„์„ ์œ„ํ•ด ์•ฑ์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ์š”์†Œ(์…ธ ์ œ์™ธ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ TabbedPage์™€ MasterDetailPage๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Shell๊ณผ ํ•จ๊ป˜ UWP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ํˆฌํ‘œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

UWP ์ œ๋ฐœ... ๋˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ช‡ ๋…„ ๋™์•ˆ ์˜์กดํ•  ์ˆ˜ ์žˆ๋Š” Microsoft UX API์˜ ์ผ๋ถ€ ๋ฒ„์ „. "๋‚˜์ค‘์— ์ง€์›ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ, UWP ๋˜๋Š” ๊ธฐํƒ€ ๋ชจ๋“  ๊ฒƒ์ด ์ด๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ธ์ฆ ์—†์ด๋Š” Shell๋กœ ์ด๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

UWP ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ MacOS๋„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

UWP๊ฐ€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์—ฌ์ „ํžˆ ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋žซํผ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Android ๋ฐ iOS ๊ธฐ๋ฐ˜ XF ์•ฑ์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ์— ๋น„ํ•ด Android์™€ Mac ์„ธ๊ณ„ ๋ชจ๋‘์— ์ œ๊ณต๋˜๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ์—„์ฒญ๋‚˜๊ฒŒ ๋Š๋ฆฌ๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฌ์šฐ๋ฉฐ ๋”์ฐํ•œ ์ธ์ฆ ๊ฒฝํ—˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฑฐ๋‚˜ ์—ฌ์ „ํžˆ ์‹ค์ œ Mac์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜์ง€ ๋ง™์‹œ๋‹ค. ๋”ฐ๋ผ์„œ ์‹ค์ œ ๊ฐœ๋ฐœ์„ ๋Œ€์ฒดํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ UWP ์•ฑ์€ ์ž‘์—…์„... ์™„๋ฃŒํ•˜๋Š” ๋น ๋ฅด๊ณ  ์‰ฝ๊ณ  ํฌ๊ด„์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ์ƒ์‚ฐ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ: iOS ๋ฐ Android์—์„œ๋„ ์•ฑ์„ ์‹คํ–‰ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

UWP์— ๋Œ€ํ•œ ์…ธ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@Mephisztoe ๋Š” ์ •๋ง ํ›Œ๋ฅญํ•œ ์ƒ์‚ฐ์„ฑ ๋„๊ตฌ์ด๋ฉฐ, ๋ฌผ๋ก  Windows์—์„œ ์‹ค์ œ๋กœ ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์˜ต์…˜๋„ ์ข‹์€ ํ”Œ๋Ÿฌ์Šค

Xamarin.Forms๋ฅผ ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์œผ๋กœ๋งŒ ๋ถ„๋ฅ˜ํ•˜์ง€ ๋งˆ์„ธ์š”. ํŠนํžˆ UWP๋ฟ๋งŒ ์•„๋‹ˆ๋ผ WPF ๋ฐ GTK#์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ์ง€์›์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜„์žฌ Xamarin Forms์˜ ์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘์— ๋Œ€ํ•œ ๊ต์ฐจ ํ”Œ๋žซํผ์ธ ์•ฑ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. UWP์šฉ Xamarin Forms์— ๋Œ€ํ•œ ํ–ฅํ›„ ๊ฐœ๋ฐœ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ต์ฐจ ํ”Œ๋žซํผ ๋ชฉ๋ก์—์„œ UWP๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

ํ”Œ๋žซํผ๋งˆ๋‹ค ์šฐ์„  ์ˆœ์œ„๊ฐ€ ํ•ญ์ƒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ "์ผ๊ณฑ ํ”Œ๋žซํผ ๋ชจ๋‘"๊ฐ€ ์•„๋‹ˆ๋ผ "์„ธ ํ”Œ๋žซํผ ๋ชจ๋‘"๋ผ๊ณ  ๋ง์”€ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

@GalaxiaGuy ๋งž์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ 7๊ฐœ์˜ ํ”Œ๋žซํผ์„ ๋งํ•œ๋‹ค๋ฉด ๊ฐ€์ƒ์˜ ํ”Œ๋žซํผ์„ ๊ตฌ์„ฑํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด 3๊ฐœ์˜ ํ”Œ๋žซํผ ๋ชจ๋‘๋ฅผ ๋งํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. Xamarin.Forms ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด:

Xamarin.Forms
Xamarin.Forms๋Š” .NET ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์™„์ „ํ•œ ํ”Œ๋žซํผ ๊ฐ„ UI ๋„๊ตฌ ํ‚คํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Visual Studio์—์„œ C#์„ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํ•œ ๊ธฐ๋ณธ Android, iOS ๋ฐ ์œ ๋‹ˆ๋ฒ„์„ค Windows ํ”Œ๋žซํผ ์•ฑ์„ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ฝ์–ด๋ณด๊ธฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

Xamarin.Forms๋Š” iOS, Android, Windows ๋ฐ macOS์šฉ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ์™„์ „ํžˆ C#์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๊ณ  GTK, WPF ๋ฐ Tizen๋„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ํ”Œ๋žซํผ์ด UWP๋ณด๋‹ค ๋œ ์ค‘์š”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ ์—๋Š” ๋™์˜ํ•˜์ง€๋งŒ UWP๊ฐ€ iOS ๋ฐ Android๋ณด๋‹ค ๋œ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ ๊ฐ์ •์— ๋™์˜ํ•˜๋ฉฐ UWP์— ์—†๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์Šค์Šค๋กœ ๋ฌด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๋ฆด๋ฆฌ์Šค ์ •๋ณด๋ฅผ ์ž˜๋ชป ์ฝ์ง€ ์•Š๋Š” ํ•œ 4.1 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์—์„œ Tizen์— ๋Œ€ํ•œ ShellRenderer ๊ตฌํ˜„์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. UWP์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์—†์Šต๋‹ˆ๋‹ค.

@dotMorten ์˜ pull ์š”์ฒญ์ด ๋ณ‘ํ•ฉ๋˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋ฉด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•ด๋‹น ๊ตฌํ˜„์„ ๊ฐ€์ ธ์™€ ๊ณต์‹ ์ง€์›์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ณ„๋„์˜ "์‹œํ—˜ํŒ" NuGet ํŒจํ‚ค์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด Xamarin.Forms์˜ ์ „์ฒด ์‹œํ—˜ํŒ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹์ ์ธ ์ง€์›์„ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์„ค์ •๋˜์–ด ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ธ์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋” ๋นจ๋ฆฌ ์›€์ง์ด์ง€ ๋ชปํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งˆ์Šคํ„ฐ์™€ ๋™๊ธฐํ™”ํ•  ๋•Œ ์•ฝ๊ฐ„์˜ ํšŒ๊ท€๋ฅผ ๊ฒช์—ˆ๊ณ , ๋‚˜๋Š” ์ผ๊ณผ ๊ฐ€์กฑ๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ๋“ค๋กœ ์™„์ „ํžˆ ํœฉ์“ธ๋ ค ์ •๋ง๋กœ ์•‰์•„์„œ ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์‹œ๊ฐ„์ด ๋งŽ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” ์ œ ์ง€์‚ฌ์— ๋Œ€ํ•œ PR์„ ๋ฐ›๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ UWP์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฆ‰์‹œ ์…ธ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Android์™€ Windows๊ฐ€ ์žˆ๋Š” ํƒœ๋ธ”๋ฆฟ, ํœด๋Œ€ํฐ ๋ฐ ๋…ธํŠธ๋ถ์ด ํ˜ผํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์ตœ๊ณ ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด UWP๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋‚ด๊ฐ€ XF๋ฅผ ํฌ๊ธฐํ•œ ์ฃผ๋œ ์ด์œ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ณ ๊ฐ์—๊ฒŒ ๋ฐ์Šคํฌํƒ‘๊ณผ ๋ชจ๋ฐ”์ผ์€ ๋™์ผํ•œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

์•„์ง ํ•˜์ง€ ์•Š์€ ๋ง์„ ๋ญ๋ผ๊ณ  ํ• ๊นŒ..

๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์œผ๋กœ ์‹œ์ž‘!
UWP ์ง€์›์€ Microsoft์˜ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ •๋ง ์ด ์‚ฌ์‹ค์„ ์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@papiermache ํ–‰๋™ ๊ฐ•๋ น์€ ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜, ๋ฌธ์ œ ๋ฐ ์˜๊ฒฌ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๊ฒƒ์„ ๊ฐœ๋ฐœ์ž์— ๋Œ€ํ•œ MS Xamarin ์•ฝ์†์˜ ํ…Œ์ŠคํŠธ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. MS ์ธก์—์„œ ๋ฌด๊ฒŒ๋ฅผ ์ธก์ •ํ•  ์ค€๋น„๊ฐ€ ๋œ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ UWP ์ง€์›์ด ์—†๋‹ค๋Š” ์‚ฌ์‹ค์— ์™„์ „ํžˆ ๋†€๋ž์Šต๋‹ˆ๋‹ค. UWP๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ํฌํ•จ๋œ ํ”Œ๋žซํผ์ด ์•„๋‹ ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์กฐ์ฐจ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ๋’คํ‹€๋ฆฌ๊ฒŒ ํ•˜๋‹ค.

๋ณด๋‚ธ ์‚ฌ๋žŒ: ์ œ๋ ˆ๋ฏธ ์•Œ๋ฆผ @
๋ณด๋‚ธ ๋‚ ์งœ: 2019๋…„ 8์›” 16์ผ ์˜คํ›„ 2:28
๋ฐ›๋Š” ์‚ฌ๋žŒ: xamarin/Xamarin.Forms [email protected]
์ฐธ์กฐ: ๋ฆญ ํ”ผ ์˜ค๋ฒ  ์‚ฐ @noreply.github.com
์ œ๋ชฉ: Re: [xamarin/Xamarin.Forms] Uwp Xamarin.Forms.Shell(#5593)

@papiermache https://github.com/papiermache ํ–‰๋™ ๊ฐ•๋ น์€ ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜, ๋ฌธ์ œ ๋ฐ ์˜๊ฒฌ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ง์ ‘์ด ์ด๋ฉ”์ผ์— ํšŒ์‹  ๋ณผ์„ GitHub์˜์— https://github.com/xamarin/Xamarin.Forms/issues/5593?email_source=notifications&email_token=ABJC5GJKYHEGIOR3P2UIKX3QE4EVLA5CNFSM4G7ANE7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4PT3PQ#issuecomment-522141118 , ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ https://github.com/์„ ์•Œ๋ฆผ/๊ตฌ๋… ์ทจ์†Œ-์ธ์ฆ/ABJC5GKCHSPBRJ5JNNEVD5LQE4EVLANCNFSM4G7ANE7A .

์•ˆ๋…•ํ•˜์„ธ์š” @dotMorten , ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์—ฌ์ „ํžˆ UPW+Shell์ด โ€‹โ€‹์ž‘๋™ํ•˜๋„๋ก ์‹œ๋„ํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ์นœ์ ˆ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ–‰๋™์ž„์„ ์ดํ•ดํ•˜์‹ญ์‹œ์˜ค. :) ๊ท€ํ•˜์˜ ๋…ธ๋ ฅ์ด Shell+UWP๋ฅผ ์ž‘๋™์‹œํ‚ค๋Š” ๋ฐ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ ๊ฐ™์•„์„œ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. Microsoft๊ฐ€ Xamarin์„ ํ†ตํ•œ Windows ์ง€์›์—์„œ ๋ฉ€์–ด์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ฒƒ์— ์—ฌ์ „ํžˆ ์™„์ „ํžˆ ์‹ ๋น„ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์„ ํ•จ์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‹นํ˜น์Šค๋Ÿฝ๊ณ  ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋ถˆํƒ€๋ฒ„๋ฆฐ ์ƒํƒœ์—ฌ์„œ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „๊ณผ ๋ณ‘ํ•ฉํ•˜๋ฉด ๋งŽ์€ ํšŒ๊ท€๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ๋‹ค์‹œ ์†๋„๋ฅผ ๋†’์ผ ์‹œ๊ฐ„๋„ ์—๋„ˆ์ง€๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ณ  XF ํŒ€์˜ ๊ด‘๋ฒ”์œ„ํ•œ ๊ตฌ๋งค๊ฐ€ ํ•„์š”ํ•œ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ํ™•์ธํ–ˆ์ง€๋งŒ "๊ผญ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค" ์ด์ƒ์˜ ์ง€์›์„ ๋ฐ›์ง€ ๋ชปํ•˜๊ณ  ๊ฒฐ๊ตญ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ XF ํŒ€์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์ง€์›๊ณผ ํ”ผ๋“œ๋ฐฑ์€ ๊ฒฉ๋ ค์— ๋ถˆ๊ณผํ–ˆ์ง€๋งŒ ํ›„์† ์กฐ์น˜๊ฐ€ ์•ฝ๊ฐ„ ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋‚ด๊ฐ€ ํ•œ ์ž‘์—…์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์ง€๋งŒ ์ด ์‹œ์ ์—์„œ ์•„๋งˆ๋„ ๋„ˆ๋ฌด ๊ตฌ์‹์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณง ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„๊ณผ ์—๋„ˆ์ง€๋ฅผ ๊ฐ–๊ฒŒ ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ๋Œ“๊ธ€์ด ๋งŽ์ด ๋‹ฌ๋ฆฐ ์—ด๋ฆฐ โ€‹โ€‹ํ•ญ๋ชฉ ์ƒ์œ„ 10๊ฐœ์— ์†ํ•˜์ง€๋งŒ ์™„๋ฃŒํ•  ๋กœ๋“œ๋งต์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.

@pauldipietro ์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? UWP ์ง€์›์ด ๋” ์ด์ƒ XF ํŒ€์˜ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๊ณ„ํš์„ ์„ธ์šธ ์ˆ˜ ์žˆ๋„๋ก ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

๊ฐ์‚ฌ ํ•ด์š”

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. XF์— Windows ์ง€์›์ด ํฌํ•จ๋˜์ง€ ์•Š๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์™œ ์•ˆ๋˜๋Š”์ง€ ๋‚˜๋„ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ UWP ์ด์™ธ์˜ "๋‹ค์Œ" Windows UX ์Šคํƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ๊ณ  ์ฃผ๊ธฐ๋ฅผ ๋‚ญ๋น„ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? Blazor/HTML์ด ๋‹ค์Œ ์ž‘ํ’ˆ์ด ๋ ๊นŒ์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์•Œ๋ ค์ฃผ์„ธ์š”... ์•„๋งˆ๋„ uno ํ”Œ๋žซํผ์œผ๋กœ?


๋ณด๋‚ธ ์‚ฌ๋žŒ: Scott Kuhl [email protected]
๋ณด๋‚ธ ๋‚ ์งœ: 2019๋…„ 8์›” 22์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 1:21:22
๋ฐ›๋Š” ์‚ฌ๋žŒ: xamarin/Xamarin.Forms [email protected]
์ฐธ์กฐ: David Gerding [email protected] ; ๋Œ“๊ธ€ [email protected]
์ œ๋ชฉ: Re: [xamarin/Xamarin.Forms] Uwp Xamarin.Forms.Shell(#5593)

์ด ๋ฌธ์ œ๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ๋Œ“๊ธ€์ด ๋งŽ์ด ๋‹ฌ๋ฆฐ ์—ด๋ฆฐ โ€‹โ€‹ํ•ญ๋ชฉ ์ƒ์œ„ 10๊ฐœ์— ์†ํ•˜์ง€๋งŒ ์™„๋ฃŒํ•  ๋กœ๋“œ๋งต์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.

@pauldipietro https://github.com/pauldipietro ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‚˜์š”? UWP ์ง€์›์ด ๋” ์ด์ƒ XF ํŒ€์˜ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๊ณ„ํš์„ ์„ธ์šธ ์ˆ˜ ์žˆ๋„๋ก ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

๊ฐ์‚ฌ ํ•ด์š”

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ง์ ‘์ด ์ด๋ฉ”์ผ์— ํšŒ์‹  ๋ณผ์„ GitHub์˜์— https://github.com/xamarin/Xamarin.Forms/issues/5593?email_source=notifications&email_token=AAD7YD4EYE5XBBSXIR6MGV3QF3KKFA5CNFSM4G7ANE7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD456VUI#issuecomment-524020433 , ๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ https://github.com/์„ ์•Œ๋ฆผ/๊ตฌ๋… ์ทจ์†Œ-์ธ์ฆ/AAD7YD42CJSV4KS5ZFWWJU3QF3KKFANCNFSM4G7ANE7A .

์†”์งํžˆ ๋งํ•ด์„œ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์‹ค์ œ๋กœ XF๋ฅผ Uno Platform์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค...

Xamarin์€ ๊ทธ๋“ค์˜ ๋ชฉํ‘œ๊ฐ€ ๋ฐ์Šคํฌํ†ฑ์ด๋‚˜ ๋…ธํŠธ๋ถ์ด ์•„๋‹Œ ๋Œ€๋ถ€๋ถ„ ๋ชจ๋ฐ”์ผ ์žฅ์น˜(์ „ํ™”, ํƒœ๋ธ”๋ฆฟ, ์‹œ๊ณ„)์ž„์„ ๋ถ„๋ช…ํžˆ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ UWP ์ž์ฒด๋ฅผ ์ง€์›ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์—†์œผ๋ฏ€๋กœ ๊ณ ๊ฐ์—๊ฒŒ ์ถ”์ฒœํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ช…ํ™•ํžˆ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Xamarin Forms์—๋Š” _UWP_๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Xamarin Forms์šฉ _์ผ๋ถ€ Windows ๋Œ€์ƒ_์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. UWP๋Š” ๊ฐ€์žฅ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ›„๋ณด์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. Microsoft๊ฐ€ ๊ฒฐ๊ตญ์—๋Š” ๋ฐ์Šคํฌํ†ฑ์šฉ HTML ๋ฐ Blazor ํด๋ผ์ด์–ธํŠธ๋กœ ์ด๋™ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ถ”์ธกํ•ด์•ผ ํ•œ๋‹ค๋ฉด Windows ์ดํ›„ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๊ด‘๋ฒ”์œ„ํ•œ UX ๋ฒ”์œ„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์…ธ(xf ์…ธ ์•„๋‹˜) ๊ฒฝ๋กœ์— ๋” ์ ํ•ฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. UX์˜ Windows ์ธก๋ฉด์— ๋Œ€ํ•œ ์ผ๊ด€๋œ ๋กœ๋“œ๋งต์ด ์—†๋Š” ์ƒํ™ฉ์—์„œ๋Š” ๊ทธ๋“ค์ด ๊ณ„ํšํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ์ƒ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ถ„๋ช…ํžˆ "WE DON'T AND WON'T DO WINDOWS"๋ผ๋Š” ๊ตต์€ ๊ธ€์”จ๋กœ ๋ฐœํ‘œํ•˜์ง€ ์•Š๊ณ  Xamarin์— ๋Œ€ํ•œ Windows ์ง€์›์„ ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ์€ ์ตœ์†Œํ•œ ์ •๋ง, ์ •๋ง ๋ถˆ์นœ์ ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ "์˜ค๋ž˜๋œ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ"์˜ ์šธ๋ฆผ์ž…๋‹ˆ๋‹ค.

@davidortinau et al: "XF Shell + Windows์— ๋Œ€ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›"( @dotMorten ์˜ ์ตœ์‹  ๊ฒŒ์‹œ๋ฌผ ์ฐธ์กฐ)์ด ์ด์ œ ํšจ๊ณผ์ ์œผ๋กœ

Xamarin์˜ ์ƒˆ๋กญ๊ณ  ๋ฉ‹์ง„ ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•ด ๋งค์šฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Xamarin์„ ์‚ฌ์šฉํ•˜๋Š” Windows ๋Œ€์ƒ์˜ ๋ฏธ๋ž˜ ์ƒ์กด ๊ฐ€๋Šฅ์„ฑ์— ๋Œ€ํ•ด ๋” ์†”์งํ•œ ๋‹ต๋ณ€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ณ  XF ํŒ€์˜ ๊ด‘๋ฒ”์œ„ํ•œ ๊ตฌ๋งค๊ฐ€ ํ•„์š”ํ•œ ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ

์ด ์ค‘ ํ•˜๋‚˜๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์ด PR์— ์ข…์†์„ฑ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ํฌ๋งํ•˜๋Š” WinUI์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/pull/7214

ํ•ด๋‹น PR์€ 16299 ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฉฐ ๋‚ด ํ…Œ์ŠคํŠธ์—์„œ nuget์— ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ WinUI๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์„ ๋•Œ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธํ•˜๋ ค๋ฉด ์—ฌ์ „ํžˆ VM์—์„œ 16299๋ฅผ ํšŒ์ „ํ•ด์•ผ ํ•˜์ง€๋งŒ ๋‚™๊ด€์ ์ž…๋‹ˆ๋‹ค. @dotMorten ์ด

์—ฌ๊ธฐ ๊ทธ ๋ฉ์–ด๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Xamarin.Forms.4.3.0.1853.zip

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ •๋ง๋กœ ๋„์›€์ด ๋  ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ UWP ํ…œํ”Œ๋ฆฟ์œผ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์ถฉ๋Œ ์—†์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋‚ด๊ฐ€ ๋ณด๋Š” ๊ฒฝ๋กœ๋Š”

  • WinUI ์ข…์†์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก #7214 ๋ณ‘ํ•ฉ
  • UWP Shell PR ์žฌ๊ธฐ๋ฐ˜ ๊ฐ€์ ธ์˜ค๊ธฐ
  • Morten์€ ์ด๋ฏธ Gastropods์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ช‡ ๊ฐ€์ง€ ๋” ๋งŽ์€ ์ƒ˜ํ”Œ(์ฃผ๋กœ Xaminals)๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ž‘๋™ํ•˜๊ณ  ํ•„์š”ํ•œ ์ฝ”๋“œ ์ •๋ฆฌ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ฒฝ๋กœ์—์„œ ๋ˆ„๋ฝ๋œ ๊ฒƒ์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ํ•ด๊ฒฐํ•˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Xaminals์— ๋Œ€ํ•œ ๋ฆฌ๋ฒ ์ด์Šค์™€ ๊ฒ€์ฆ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

@ํ“จ์–ด์œˆ ,
์ œ๊ณตํ•œ Xamarin Nuget์œผ๋กœ App132.zip์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ฑ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ... ๋ชฉ๋ก ์ปจํŠธ๋กค์— ํƒ€์ž„์Šคํƒฌํ”„ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋‹จ์˜ ๋ฒ„ํŠผ๊ณผ ์ƒˆ๋กœ๊ณ ์นจ์œผ๋กœ ๋Œ์–ด์˜ค๊ธฐ ๋™์ž‘์€ ๋ชจ๋‘ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‹น์‹ ์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌํ•˜๊ณ  ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๋…ธ๋ ฅํ•˜๊ณ  ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ์ด๋ธŒ ์ง€

@PureWeen WinUI ์™€ ํ•จ๊ป˜ ๋ฐœ์ „ํ•˜๊ณ  ๊ณ„์‹œ๋‹ค๋‹ˆ ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. WinUI๊ฐ€ ์ „์ด์ ์œผ๋กœ ์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— WinUI์— ๋Œ€ํ•œ ์ข…์†์„ฑ์€ ์ €์—๊ฒŒ ์ž˜๋ชป๋œ ๋™์ž‘์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. VS2019๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ WinUI๊ฐ€ ์•„์ง ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ–ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์—ฌ์ „ํžˆ VS2017 ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€๋งŒ ์ตœ์†Œํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Œ).
๋˜ํ•œ WinUI์—๋Š” ๋งŽ์€ ๊ณจ์น˜๊ฑฐ๋ฆฌ๋ฅผ ์•ผ๊ธฐํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์ตœ๊ทผ์— ๋‚ด๊ฐ€ ๊ธฐ๋กํ•œ ๋ฒ„๊ทธ ์ค‘ ์ผ๋ถ€๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‘ ๊ณ ๋ฌด์ ์ž…๋‹ˆ๋‹ค. 7214๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ €์—๊ฒŒ ํ•‘์„ ๋ณด๋‚ด์‹ญ์‹œ์˜ค. ๊ทธ๋Ÿฌ๋ฉด ์ด ๋…ธ๋ ฅ์„ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋ฆฌ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋„์›€์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ €๋ฒˆ์— ํ–ˆ์„ ๋•Œ ์ด ํ™๋ณด๋ฅผ ์™„์ „ํžˆ ๋ง์ณ๋ฒ„๋ ธ์–ด์š” :-)

@dotMorten ์ž˜ ๋“ค๋ฆฌ

VS 2017์—์„œ ์œ„์— ํฌํ•จ๋œ ์•ฑ์„ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์œผ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ๊ทธ ๋ถ€๋ถ„์—์„œ ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‹น์‹ ์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌํ•˜๊ณ  ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๋…ธ๋ ฅํ•˜๊ณ  ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ธฐ๋ณธ UWP ํ”„๋กœ์ ํŠธ์— ๋„ˆ๊ฒŸ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ชจ๋‘ ์ œ๋Œ€๋กœ ์ปดํŒŒ์ผ๋˜๊ณ  ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

WINUI ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด๋„ ๋‘ํ†ต์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค :-)

VS 2017์—์„œ ์œ„์— ํฌํ•จ์‹œํ‚จ ์•ฑ์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํ—ค๋“œ์— WinUI๋„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ? ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ฐพ์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด WinUI์— ์˜์กดํ•˜๋Š” XF ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด WinUI์— ์ข…์†์„ฑ์„ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. IMHO๋Š” ํš๊ธฐ์ ์ธ ๋ณ€ํ™”์ž…๋‹ˆ๋‹ค. WinUI๋Š” ์•”์‹œ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ํŒจํ‚ค์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ NuGet 5.0 ๊ธฐ๋Šฅ์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— VS2019๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

WinUI์— ๋กœ๊ทธ์ธํ•œ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/microsoft/microsoft-ui-xaml/issues/596#issuecomment -524187369

VS2019 ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ์ตœ์†Œํ•œ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋น ๋ฅธ PR์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

app123์„ ํ…Œ์ŠคํŠธํ–ˆ์„ ๋•Œ VS2019์™€ ํ•จ๊ป˜ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ํ—ค๋“œ์— WinUI๋„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ?

์˜ˆ, ์œ„์—์„œ ๋งํฌํ•œ ํ”„๋กœ์ ํŠธ๋Š” VS2017 ๋‚ด๋ถ€์—์„œ ์—ด ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž˜ ์ปดํŒŒ์ผ๋˜๊ณ  ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. UWP ํ—ค๋“œ์— WinUI nuget์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ nuspec ๋‚ด๋ถ€์˜ ์ข…์†์„ฑ์œผ๋กœ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ •๋ง๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์Šคํƒ€์ผ๊ณผ ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์ถ”๊ฐ€ appx ํ”„๋ ˆ์ž„์›Œํฌ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ .targets์— ์˜ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ ์ปดํ“จํ„ฐ์— ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

Visual Studio Magazine์€ ํŠนํžˆ ์ด ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ, ๊ณต์‹ ๋‹ต๋ณ€์ด ํ•„์š”ํ•œ ์‹œ์ ์ž…๋‹ˆ๋‹ค.

https://visualstudiomagazine.com/articles/2019/08/23/xamarin-forms-4-2.aspx

@dotMorten ๋ฉฐ์น  ๋™์•ˆ ์™ธ์ถœ์„ ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋Œ์•„์˜ค๋ฉด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ WinUI ํŒ€์— ์—ฐ๋ฝํ•˜์—ฌ ๊ฒ€ํ† ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋Œ€์ƒ์€ VS 2017์—์„œ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์ „์ด์ ์œผ๋กœ ์ž˜ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
https://github.com/microsoft/microsoft-ui-xaml/blob/8f8cd0fe32754cfcd83dafb2fc8539703b6aec26/build/NuSpecs/MUXControls-Nuget-Common.targets#L6

๋‹ค์Œ์€ ๋กœ์ปฌ ์–‘์‹ ํ”„๋กœ์ ํŠธ์˜ ์„ค์ •์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์—…๋ฐ์ดํŠธ๋œ ๋„ˆ๊ฒŸ์ž…๋‹ˆ๋‹ค.
Xamarin.Forms.4.3.0.1853.zip

<SkipMicrosoftUIXamlCheckTargetPlatformVersion>false</SkipMicrosoftUIXamlCheckTargetPlatformVersion>

Forms ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ๋žŒ๋“ค์„ ๋†€๋ผ๊ฒŒ ํ•˜์ง€ ์•Š๋„๋ก ์ด๊ฒƒ์„ true๋กœ ๊ฐ•์ œํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/xamarin/Xamarin.Forms/pull/7214/files#diff -5e6292d5925c776aa9aa6d6f8c63ddf6R19

@PureWeen ์ด๊ฒƒ์€ ๋‹ค์Œ ์ค„์„ ๋ช…์‹œ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š” ๋น„ํŠธ์ž…๋‹ˆ๋‹ค(๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ ํ—ค๋“œ๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—).
image

๋‚˜๋Š” ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ™์€ ํŽ˜์ด์ง€์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์ด ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ตœ๊ทผ์— ๋‹ค๋ฅธ ์ข…์†์„ฑ์œผ๋กœ ์ธํ•ด ์ด๋Ÿฌํ•œ ์ผ์ด ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๊ฒฝ๋กœ๊ฐ€ ์ƒˆ XF ๋ฒ„์ „์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ๋งŒํผ ๊นจ๋—ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์„ ์‹ค๋ง์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

Re: Xamarin Forms์šฉ ๋ฐ์Šคํฌํƒ‘/๋…ธํŠธ๋ถ/ํƒœ๋ธ”๋ฆฟ ๋Œ€์ƒ์˜ ํ•„์š”์„ฑ

๊ธฐ์—… ํ™˜๊ฒฝ์—์„œ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ๊ตฌ์ถ•ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” Android/iOS ๊ธฐ๋ฐ˜๊ณผ ๋™์ผํ•œ ๊ธฐ๋ณธ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์—์„œ "๋™์ผํ•œ" ๋ฐ์Šคํฌํ†ฑ/๋…ธํŠธ๋ถ ์‹คํ–‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. Windows ์ „์šฉ์ผ ํ•„์š”๋Š” ์—†์ง€๋งŒ(HTML/JS์™€ ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๋Œ€์ƒ๋„ ์ ํ•ฉํ•จ) ๋Œ€๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๋Š” Windows ๋ฐ์Šคํฌํ†ฑ/๋…ธํŠธ๋ถ + iPhone/Android ์ „ํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ Windows ์‹คํ–‰ ํŒŒ์ผ์€ ๋Œ€๋ถ€๋ถ„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์กฐ์ง ๋‚ด์—์„œ ๋ชจ๋ฐ”์ผ ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค ๋•Œ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋จผ์ € ๋žฉํ†ฑ/๋ฐ์Šคํฌํ†ฑ์—์„œ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์‹ถ์–ดํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ทธ๋“ค์˜ ์ „ํ™”์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠน์ • ์ˆœ๊ฐ„์— ์ž‘์—…ํ•˜๋Š” ์œ„์น˜์— ๋”ฐ๋ผ ๋ฐ์Šคํฌํ†ฑ์ด๋‚˜ ์žฅ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ๋™์˜(๋ฐ ํ”ผ๋“œ๋ฐฑ)๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

Xamarin Forms๋Š” ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ Shell ๋ฐ CollectionView๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๋ฐ์Šคํฌํ†ฑ/๋…ธํŠธ๋ถ ์ž‘์—… ์œ ์‚ฌ ์ œํ’ˆ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€๋Š” ์„ ๋ฐ˜์›จ์–ด์ž…๋‹ˆ๋‹ค...

@dotMorten ๋”ฐ๋ผ์„œ ์˜ˆ์™ธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” WinUI๊ฐ€ ๋„ˆ๊ฒŸ์— ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ์žˆ์œผ๋ฏ€๋กœ UWP ํ—ค๋“œ์— XF๋ฅผ ์„ค์น˜ํ•˜๋ฉด WinUI๊ฐ€ ํ•จ๊ป˜ ์ด๋™ํ•˜์—ฌ ๋Œ€์ƒ์„ ์ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด XF ํŒจํ‚ค์ง€ ์ž์ฒด๊ฐ€ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด UWP ํ—ค๋“œ ํ”„๋กœ์ ํŠธ์— ์„ค์น˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. netstandard ํ”„๋กœ์ ํŠธ์—๋งŒ XF๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์œ„์˜ ์˜ˆ๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์˜ˆ์™ธ๋ฅผ ๋‹ค์‹œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/issues/4126

์ด๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด UWP ํ—ค๋“œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹Œ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— XF๋งŒ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ์šฐ๋ฆฌ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์‹ถ์€์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์— ๋Œ€ํ•ด ์•ฝ๊ฐ„ ๋…ผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@pureween ์•Œ์•˜์–ด. ๊ทธ๋•Œ๋„ ๊ฐ™์€ ๊ฒƒ์„ ๋ณด๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ† ๋ก ์—์„œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ:

  • WinUI์˜ ๋‚ด PR์ด ๋ณ‘ํ•ฉ๋˜๋ฉด VS2017 ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ํŒ€์—์„œ ๋‘˜ ๋‹ค ์‚ฌ์šฉํ•˜๊ณ  ์ผ๋ถ€ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์˜ํ–ฅ์„ ์ฃผ๋Š” ๊ฒฝ์šฐ ์ด์ƒํ•ด์งˆ ์ˆ˜ ์žˆ์Œ).
  • Init() ์ค‘์— ์ด๊ฒƒ์„ ๊ฐ์ง€ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ ๊ณ ํ†ต์ด ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚˜๋Š” XF์— ์•„์ง ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ฐธ์กฐ ํ”„๋กœ์ ํŠธ์— ์ข…์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์ƒ ํŒŒ์ผ์ด ์žˆ์ง€๋งŒ
    ์ด์ƒํ•œ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • WinUI๊ฐ€ ํ”Œ๋žซํผ์—์„œ ๋ถ„๋ฆฌ๋˜๋ฉด ๋ชจ๋“  UWP ํ”„๋กœ์ ํŠธ๋Š” ํ•ญ์ƒ ์ด ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋•Œ๊นŒ์ง€๋Š” VS2017์ด ์ง€์›๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ).

    • ์ด ๋ณ€๊ฒฝ์œผ๋กœ ๋” ๋‚ฎ์€ ๋ฒ„์ „์˜ Win10์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์ •๋‹นํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๊ฐ€ ๊ฐ€์น˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ํŒ€์— ๋”ฐ๋ฅด๋ฉด ์–ด์จŒ๋“  UWP๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์€ ์•„๋ฌด๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๋„ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜œ j/k

๋˜ ๋‹ค๋ฅธ ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹: ์ดˆ๊ธฐํ™” ์ค‘์— WinUI๊ฐ€ ์ฐธ์กฐ๋˜๋Š”์ง€ ๊ฐ์ง€ํ•˜๋˜ ์•ฑ์€ ์‹คํ–‰ํ•˜๋„๋ก ๋‘ก๋‹ˆ๋‹ค. WinUI์— ์˜์กดํ•˜๋Š” ๋ชจ๋“  ๋ Œ๋”๋Ÿฌ๋Š” ๋Œ€์‹  ์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ ๋˜์ง‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์•ผ๊ธฐ๋Š” "Shell ๋˜๋Š” PullToRefresh๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด WinUI์— ๋Œ€ํ•œ ์ฐธ์กฐ๋„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(VS2017์— ์žˆ๋Š” ๊ฒฝ์šฐ)"๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

@dotMorten Shell์„ UWP๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์ด๊ฒƒ์€ ๋งค์šฐ ํ•„์š”ํ•˜๋ฉฐ ํ•ต์‹ฌ Xamarin ํŒ€์—์„œ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ CV ๋ฐ Shell์„ ์‚ฌ์šฉํ•˜์—ฌ UWP์—์„œ ์‹คํ–‰๋˜๋Š” Xaminals์˜ ๋ง›์ž…๋‹ˆ๋‹ค!!!

image

ํ›Œ๋ฅญํ•œ ์ผ!

๋ฉ‹์ง„ ์ง์—…. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‚˜์˜ค๋Š” ์ฆ‰์‹œ ํฌํ•จํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ–ฅํ›„ ๋‚ด ์•ฑ ๋ฆด๋ฆฌ์Šค์—์„œ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ;)

์˜ˆ, Xamarin์ด ํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ Uno๋กœ ์ด์‚ฌํ•œ๋‹ค๋Š” ํ•œ ์‚ฌ๋žŒ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ!!!! Xamarin์€ ์šฐ๋ฆฌ์—๊ฒŒ ํ›Œ๋ฅญํ–ˆ์œผ๋ฉฐ swift + Java๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธ๋‚ด์‹ฌ์„ ๊ฐ–๊ณ  ํŒ€์„ ์ง€์›ํ•˜์ž

#6015์— ์˜ํ•ด ํ์‡„

์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํŒ€ <3์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

ํ›Œ๋ฅญํ•œ ์ž‘ํ’ˆ, ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํ™•์ธ ์ด์ƒํ•œ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 4.3.0.947036์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ form.init๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.
'Windows ๋Ÿฐํƒ€์ž„ ์œ ํ˜• 'Microsoft.UI.Xaml.Controls.XamlControlsResources๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งค์šฐ ์ด์ƒํ•œ ์ ์€ ํ˜„์žฌ XamlTypeInfo.g.cs์—์„œ ๋ฐœ๊ฒฌ๋œ ์ฝ”๋“œ์˜ ์–‘์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ Xamarin์—์„œ๋Š” ํ•ญ๋ชฉ์ด 13๊ฐœ์˜€์ง€๋งŒ ์ง€๊ธˆ์€ 43๊ฐœ๊ฐ€ ๋„˜์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— Win.UI Nuget์„ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์•„์ด๋””์–ด

@abrantie1z - (๋น„๋ก ์ฃผ์ œ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ์–ธ๊ธ‰ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.) Uno์™€ Xamarin Forms๋Š” ๋” ์ด์ƒ ์ƒํ˜ธ ๋ฐฐํƒ€์ ์ธ ์„ ํƒ์ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. - https://platform.uno/xamarin-forms/ ๋ฐ https:/ ์ฐธ์กฐ /visualstudiomagazine.com/articles/2019/09/19/uno-platform-2.aspx ์ฃผ์˜ ์‚ฌํ•ญ: Uno๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ง€์›์ด ์–ผ๋งˆ๋‚˜ ๊ฐ•๋ ฅํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ธŒ๋ผ์šฐ์ €์—์„œ XF์— ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์€ ์ผ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰