Maui: Xamarin.Forms์˜ 1675๊ฐœ ์—ด๋ฆฐ ๋ฒ„๊ทธ ์ •๋ณด

์— ๋งŒ๋“  2020๋…„ 05์›” 25์ผ  ยท  52์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dotnet/maui

@davidortinau์˜ ์ด ๋Œ“๊ธ€์„ ์ฝ์–ด์ฃผ์„ธ์š”.

https://github.com/dotnet/maui/issues/109#issuecomment -635078640

์—ฌ๊ธฐ๋ฅผ ์ฝ์œผ๋ฉด์„œ Xamarin.Forms์˜ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์„œ ๋ฌด์—‡์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. @ Happypig375 ์˜ ์›๋ž˜ ์งˆ๋ฌธ์œผ๋กœ

๊ฐœ์„  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ๋ถ€ํ„ฐ .NET MAUI ์ถœ์‹œ ์‚ฌ์ด์˜ ์ฃผ์š” ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ๊ธฐ๋ฐ˜, ์ถœ๋ฐœ์ ์„ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ์Šคํ”„๋ฆฐํŠธ์˜ ๋Œ€๋ถ€๋ถ„์„ CollectionView ๋ฌธ์ œ์— ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Xamarin.Forms 5์—์„œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ž๋ฅผ ์ผ์‹œ ์ค‘์ง€ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜๋ฏ€๋กœ 2020๋…„ 9์›”๋ถ€ํ„ฐ 2021๋…„ 11์›”๊นŒ์ง€ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์Šคํ”„๋ฆฐํŠธ ํ”„๋กœ์ ํŠธ ๋ณด๋“œ ์—์„œ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๋ณธ ์„ค๋ช…

Xamarin.Forms๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ 1675๊ฐœ์˜ ๋ฏธํ•ด๊ฒฐ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋Š” ๋ชจ๋…ธ์˜ 1676๊ฐœ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ ๋ฅผ ๋Šฅ๊ฐ€ํ• 

์ด์ œ MAUI์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ Xamarin.Forms์—์„œ ๋ณต์‚ฌ๋˜์—ˆ์œผ๋ฏ€๋กœ MAUI๊ฐ€ Xamarin.Forms๋งŒํผ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ Flutter ๋ฅผ ๋”ฐ๋ผ MAUI

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

์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์‚ฌ๋žŒ๋“ค์€ ๋ฒ„๊ทธ์— ์˜์กดํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ธ์‹๋ฉ๋‹ˆ๋‹ค.

Xamarin.Forms๋Š” 2015๋…„์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ์—ˆ๊ณ  Xamarin.Forms๋Š” 2018๋…„์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ์—ˆ๊ณ  Xamarin.Forms๋Š” ๋ฒ„๊ทธ๊ฐ€ ์ฒœ์ฒœํžˆ ์ˆ˜์ •๋˜๋ฉด MAUI๊ฐ€ ๋ฆด๋ฆฌ์Šค๋˜๋Š” 2021๋…„์—๋„ ์—ฌ์ „ํžˆ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ์ด‰๋ฐ•ํ•œ ๋งˆ๊ฐ ์‹œ๊ฐ„๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์ ์šฉํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํ—ˆ๋น„ํ•ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๋„์ €ํžˆ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์—†๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

MAUI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•œ ํ•œ ๋น ๋ฅธ ๋ฒ„๊ทธ ์ˆ˜์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์„  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

ํ’ˆ์งˆ์€ ํ•ญ์ƒ Xamarin ๊ฐœ๋ฐœ์˜ ๋ชจ๋“  ์ธก๋ฉด์—์„œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ๋น„ํ˜ธํ™˜์„ฑ, VS์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋นŒ๋“œ ๋˜๋Š” ์ƒˆ ๋ฒ„์ „์˜ Forms๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋‚ด ์•ฑ์ด ์ถฉ๋Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ขŒ์ ˆ๊ฐ์„ ๋Š๋‚๋‹ˆ๋‹ค. ๋ฌผ๊ฑด์ด ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ปจํŠธ๋กค์ด๋‚˜ ๋ ˆ์ด์•„์›ƒ์ด ๋‹จ์ˆœํžˆ ํ•จ๊ป˜ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ธ ๋ฒˆ์งธ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ด€๋ จ ํฌ์ธํŠธ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

1) ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Forms์—์„œ ์ž‘์—…ํ•˜๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ ์ œ๊ฐ€ ๋ณด๊ธฐ์—๋Š” ํŒ€์ด ๋„ˆ๋ฌด ์ž‘์•„์„œ ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋‚˜ PR์˜ ๋น ๋ฅธ ์„ฑ์žฅ ์†๋„๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Forms์™€ Maui ์‚ฌ์ด์— ์ฃผ์˜๋ฅผ ๋ถ„์‚ฐ์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ ์ƒํ™ฉ์ด ๋”์šฑ ์•…ํ™”๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒ€์ด ๊ณง ์ƒ๋‹นํ•œ ๋ฐœ์ „์„ ์ด๋ฃจ๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค.

2) Microsoft๊ฐ€ ์‹ค์ œ๋กœ ์ž์ฒด ์•ฑ์—์„œ Forms๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ์ •๋ง ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ๋ฐ๋ชจ๋‚˜ ํšŒ์˜ ์•ฑ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. Teams ๋˜๋Š” Outlook๊ณผ ๊ฐ™์€ ์‹ค์ œ ์•ฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ํ‹€๋ ธ๋‹ค๋ฉด ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒ์ ์—์„œ MS Forms ์•ฑ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๊ณ  ์ด ํŠธ์œ—๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ์ถœ์ฒ˜์— ๋”ฐ๋ฅด๋ฉด https://twitter.com/safaiyeh/status/1219294459298344961 ๊ทธ๋“ค์€ ์ฃผ๋กœ ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. ํ† ์ข…์˜.

  • MS๊ฐ€ ์ž์ฒด ๊ธฐ์ˆ (XF)์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์™œ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ข‹์€ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณต์žกํ•œ ์•ฑ์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ Forms๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ ๊ณ„์ธต์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ณต๊ฐœ ๋ฆด๋ฆฌ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฌธ์ œ์˜ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ทธ๋“ค์€ Forms๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋“ค์ด ๋งํ•˜๋Š” ๊ฒƒ๋งŒํผ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

3) MS๊ฐ€ Win UI Xaml๊ณผ ๊ฐ™์ด ์ด๋ฏธ ๊ฒ€์ฆ๋œ ๊ธฐ์กด ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  XF Xaml์˜ ํ˜•ํƒœ๋กœ ๊ณ„์†ํ•ด์„œ ๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ทธ๋กœ ์ธํ•ด ๋„์ž…๋œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผ ํ•˜๋ฉฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์œ„ํ•œ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

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

7049๋Š” ๋ฒ„๊ทธ ๋ณด๊ณ  7์ผ ํ›„ PR์„ ๋ณ‘ํ•ฉํ•ด๋„ ๋กค์•„์›ƒํ•˜๋Š” ๋ฐ 1๊ฐœ์›” ์ด์ƒ ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

ํŒ€์ด PR + ๋ฆด๋ฆฌ์Šค ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จ๋œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ œ๊ฑฐํ•  ๊ณ„ํš์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ๋†’์€ ๊ฐ€์‹œ์„ฑ ๋ฌธ์ œ์—์„œ ์–ธ๊ธ‰๋œ ํ›„ Xamarin.Forms ํŒ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋งˆ์นจ๋‚ด xamarin/Xamarin.Forms#7728 ์— ์‘๋‹ตํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒ€์— ๊ณต๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฅ˜/๊ด€๋ฆฌ/์ˆ˜์ •ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ ๋ฐ PR์„ ์ถ•์†Œํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ’ˆ์งˆ์€ ํ•ญ์ƒ Xamarin ๊ฐœ๋ฐœ์˜ ๋ชจ๋“  ์ธก๋ฉด์—์„œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ๋น„ํ˜ธํ™˜์„ฑ, VS์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋นŒ๋“œ ๋˜๋Š” ์ƒˆ ๋ฒ„์ „์˜ Forms๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋‚ด ์•ฑ์ด ์ถฉ๋Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ขŒ์ ˆ๊ฐ์„ ๋Š๋‚๋‹ˆ๋‹ค. ๋ฌผ๊ฑด์ด ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ปจํŠธ๋กค์ด๋‚˜ ๋ ˆ์ด์•„์›ƒ์ด ๋‹จ์ˆœํžˆ ํ•จ๊ป˜ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ธ ๋ฒˆ์งธ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ด€๋ จ ํฌ์ธํŠธ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

1) ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Forms์—์„œ ์ž‘์—…ํ•˜๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ ์ œ๊ฐ€ ๋ณด๊ธฐ์—๋Š” ํŒ€์ด ๋„ˆ๋ฌด ์ž‘์•„์„œ ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋‚˜ PR์˜ ๋น ๋ฅธ ์„ฑ์žฅ ์†๋„๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Forms์™€ Maui ์‚ฌ์ด์— ์ฃผ์˜๋ฅผ ๋ถ„์‚ฐ์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ ์ƒํ™ฉ์ด ๋”์šฑ ์•…ํ™”๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒ€์ด ๊ณง ์ƒ๋‹นํ•œ ๋ฐœ์ „์„ ์ด๋ฃจ๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค.

2) Microsoft๊ฐ€ ์‹ค์ œ๋กœ ์ž์ฒด ์•ฑ์—์„œ Forms๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ์ •๋ง ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ๋ฐ๋ชจ๋‚˜ ํšŒ์˜ ์•ฑ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. Teams ๋˜๋Š” Outlook๊ณผ ๊ฐ™์€ ์‹ค์ œ ์•ฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ํ‹€๋ ธ๋‹ค๋ฉด ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒ์ ์—์„œ MS Forms ์•ฑ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๊ณ  ์ด ํŠธ์œ—๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ์ถœ์ฒ˜์— ๋”ฐ๋ฅด๋ฉด https://twitter.com/safaiyeh/status/1219294459298344961 ๊ทธ๋“ค์€ ์ฃผ๋กœ ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. ํ† ์ข…์˜.

  • MS๊ฐ€ ์ž์ฒด ๊ธฐ์ˆ (XF)์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์™œ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ข‹์€ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณต์žกํ•œ ์•ฑ์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ Forms๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ ๊ณ„์ธต์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ณต๊ฐœ ๋ฆด๋ฆฌ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฌธ์ œ์˜ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ทธ๋“ค์€ Forms๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋“ค์ด ๋งํ•˜๋Š” ๊ฒƒ๋งŒํผ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

3) MS๊ฐ€ Win UI Xaml๊ณผ ๊ฐ™์ด ์ด๋ฏธ ๊ฒ€์ฆ๋œ ๊ธฐ์กด ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  XF Xaml์˜ ํ˜•ํƒœ๋กœ ๊ณ„์†ํ•ด์„œ ๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ทธ๋กœ ์ธํ•ด ๋„์ž…๋œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผ ํ•˜๋ฉฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์œ„ํ•œ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

@Reveon์— 100% ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
์•„, ๊ทธ๋ฆฌ๊ณ  Xamarin๊ณผ ํ•จ๊ป˜ Windows์šฉ VisualStudio๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฌ์šด ๊ฒฝํ—˜์ž…๋‹ˆ๋‹ค.

๊ทธ๋“ค์€ ๊ณ„์†ํ•ด์„œ ๋›ฐ์–ด๋‚œ ์ฐจ๋‹จ, ๋ฒ„๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค... ๊ทธ๊ฒŒ ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ์ง€์กฐ์ฐจ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค(๋ชจ๋“  ios ์žฅ์น˜ ๋นŒ๋“œ ๊นจ๊ธฐ, ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœํ•„ ๊นจ๊ธฐ, ์ œ์Šค์ฒ˜ ์ธ์‹๊ธฐ ๊นจ๊ธฐ ๋“ฑ... ์ด๋Ÿฌํ•œ ๋ฒ„๊ทธ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ”„๋กœ๋•์…˜์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋ช‡ ์ฃผ ๋˜๋Š” ๋ช‡ ๋‹ฌ์ด ๊ฑธ๋ฆฌ๋‚˜์š”? ๋ชฐ๋ผ์š”....)

์ €๋Š” ๊ทธ๊ฒƒ์„ ์œ„ํ•ด Rider๋กœ ์ „ํ™˜ํ–ˆ๊ณ  ์ง€๊ธˆ์€ ์–ด๋””์—์„œ๋‚˜ Jetbrains ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. :) ์ ์–ด๋„ iOS์™€ Windows์—์„œ ์ •ํ™•ํžˆ ๋™์ผํ•œ IDE๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๊ณ„์†ํ•ด์„œ ์ƒ์‚ฐ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MAUI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋Ÿฌํ•œ ๊ฒƒ๋“ค์ด ๋ฐ”๋€” ๊ฒƒ์ด๋ฉฐ ์กฐ๋งŒ๊ฐ„ Microsoft๋Š” ์‹ฌ๊ฐํ•œ ํ”„๋กœ์ ํŠธ์— ๋‚ด๋ถ€์ ์œผ๋กœ MAUI๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์ฆ์–ธ:
https://github.com/xamarin/Xamarin.Forms/issues/10482#issuecomment -633730446
@EmilAlipiev :

์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด PR ์ด 1.5๊ฐœ์›” ๋™์•ˆ ๋ณ‘ํ•ฉ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Ios์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฌธ์ œ ๊ฐ€ ์žˆ๊ณ  android๋Š” 2019๋…„ 7์›”์— ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ ์•„๋ฌด๋„ uwp๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 4์›”์— ์ˆ˜์ •ํ–ˆ๊ณ  ๊ฒ€ํ†  ๋ฐ ๋ณ‘ํ•ฉ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. xamarin ํŒ€์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์€ ์ •๋ง ์งœ์ฆ๋‚ฉ๋‹ˆ๋‹ค. ํ•˜๋ฃจ์— 1~2๊ฐœ์˜ PR๋งŒ ๊ฒ€ํ† ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
#10316

์ข…์ข… ์ขŒ์ ˆํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ "Xamarin is buggy"๋Š” ๊ฑฐ์นœ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค. Flutter๋ฅผ ํ™•์ธํ•˜๋ฉด ์˜ค๋Š˜ 2000๊ฐœ ์ด์ƒ์˜ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ 5000๊ฐœ ์ด์ƒ์˜ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆซ์ž๋Š” ๊ทธ๋ ‡๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Xamarin.forms๋Š” uwp(xbox ํฌํ•จ), wpf, mac, gtk, tizen๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ํฌ๋กœ์Šค ํ”Œ๋žซํผ๋ณด๋‹ค ๋” ๋งŽ์€ ๊ฒƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์šฐ๋ฆฌ ๋Œ€๋ถ€๋ถ„์—๊ฒŒ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ Wpf์— ๋Œ€ํ•œ ๋งŽ์€ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Xamarin.forms์˜ ํ•ต์‹ฌ์€ ios, android ๋ฐ uwp์—ฌ์•ผ ํ•˜์ง€๋งŒ Xamarin ํŒ€์€ ์ข…์ข… uwp๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ ˆ์ด์•„์›ƒ, ๋ชฉ๋ก ๋ณด๊ธฐ, ํšŒ์ „ ๋ชฉ๋งˆ, ์ปฌ๋ ‰์…˜ ๋ณด๊ธฐ, ์ด๋ฏธ์ง€, ์ง€๋„, ๋ ˆ์ด๋ธ”, ํŽธ์ง‘๊ธฐ ๋“ฑ๊ณผ ๊ฐ™์€ ํ•ต์‹ฌ ์š”์†Œ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๋‚˜ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ˆˆ์— ๋„๋Š” ๋ฒ„๊ทธ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ตœ๋Œ€ 1์ฃผ์ผ ์ด๋‚ด์— ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Xamarin ํŒ€์€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ(์ปค๋ฎค๋‹ˆํ‹ฐ์˜ 10%์—์„œ ์ด ๋ฉ‹์ง„ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ?)๊ณผ ์ด๋ฏธ์ง€ ์ œ์–ด ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ ๋ฉ‹์ง„ "4.5-4.6"์„ ์ถœ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ ๋Š” 3์›” ์ดˆ์— ๋ณด๊ณ ๋˜์—ˆ์œผ๋ฉฐ ์˜ค๋Š˜๊นŒ์ง€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ "๋„ค์ดํ‹ฐ๋ธŒ ์–ด์…ˆ๋ธ”๋ฆฌ๋กœ ๋ฒˆ๋“ค"์ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ค‘์š”ํ•œ ์ด์œ ๋กœ 4.5 ๋ฐ 4.6์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” 4.7๋กœ ๊ณ„์† ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์™€ ์šฐ๋ฆฌ ๋Œ€๋ถ€๋ถ„์€ ๋ฒ„๊ทธ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ์ฃผ์‹œํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€๋Š” ๋” ์ด์ƒ ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. Xamarin ํŒ€์€ ์ด๊ฒƒ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Xamarin์„ ์„ ํƒํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” "UWP"์ž…๋‹ˆ๋‹ค. ์ €๋Š” ํ”„๋ฆฌ๋žœ์„œ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ณ ๊ฐ์—๊ฒŒ ์™œ ํŽ„๋Ÿญ์ด์ง€ ์•Š๊ฑฐ๋‚˜ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋ฐ˜์‘ํ•˜๋Š”์ง€ ๋ฌป์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” Xamarin์— UWP๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋„ UWP๋ฅผ ์›ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Uwp๋Š” ๋Œ€๋ถ€๋ถ„ Xamarin.forms์—์„œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. CollectionView๋ฅผ ๋„์ž…ํ–ˆ๋Š”๋ฐ ์ •๋ง ํ›Œ๋ฅญํ•˜์ง€๋งŒ 1๋…„ ์ดํ›„๋กœ ๊ทธ ๋ฒ„๊ทธ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ ์•„๋ฌด๋„ ๋ฆฌ๋ทฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋” ์ด์ƒ ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์„ ๋‚™๋‹ดํ–ˆ์Šต๋‹ˆ๋‹ค.
  3. Hotreload๊ฐ€ ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํŠธ์œ„ํ„ฐ์—์„œ hotreaload๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋Œ€๋‹จํ•œ์ง€ "kiss kiss"๋ฅผ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ข…์ข… hotreload๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ livexaml ๋“ฑ๊ณผ ๊ฐ™์€ ํƒ€์‚ฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ๋‚ด ์ž์‹ ์˜ hotreload๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ์ฝ˜์†” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. 1์ผ์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. Xamarin๋ณด๋‹ค ํ›จ์”ฌ ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ uwp์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๊ทธ๋“ค์ด ๊ทธ๊ฒƒ์„ ๋ฐฐ๋‹ฌํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋“ค์€ livereload๊ฐ€ ์ž‘๋™ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.
  4. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ; @Reveon์ด ์–ธ๊ธ‰ํ•œ ๊ฒƒ. xamarin.forms์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ์‹ค์ œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•„์š”ํ•˜๋ฉฐ ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ ๋ฆด๋ฆฌ์Šค๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ "๋ฐ˜์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š๋‹ค"๊ณ  ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, ์ด ๋ฌธ์ œ๊ฐ€ ํ•  ์ผ ์•ฑ์ด ์•„๋‹Œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋งŒ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ UI๋ฅผ ๋ณต์ œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ์•„๋‚ผ ๋•Œ๊นŒ์ง€ ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. twitch, youtube, twitter ๋“ฑ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” Xamarin ๊ฐœ๋ฐœ์ž ์ค‘ xamarin.forms๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•œ ์ ์ด ์žˆ๋Š”์ง€ ์ •๋ง ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

  5. ๋น„ ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์ง€๋งŒ ๋‚ด ์•ฑ์˜ 50% ์ด์ƒ์ด syncfusion ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์„ ์ธ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Syncfusion์ด ์—†์œผ๋ฉด ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ž‘์—… ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์–ป๋Š” ๊ฒƒ์ด ๋งค์šฐ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ xamarin์ด ์—†๋Š” ๊ฒƒ ๋˜๋Š” xamarin buggy๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ, ์Šค์™€์ดํ”„ ๋ทฐ, ์„ ํ˜• ๋ฐ ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ, ๋” ๋‚˜์€ ๊ฐ€์ƒํ™” ๋“ฑ์„ ๊ฐ–์ถ˜ ์ˆ˜๋…„ ๋™์•ˆ sfListView ๋Œ€์ฒดํ’ˆ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๋งˆ์นจ๋‚ด xamarin์ด CollectionView์™€ ํ•จ๊ป˜ ๋‚˜์™”๊ณ  Listview์˜ "๋ฉ‹์ง„ ๋ฒ„์ „"์œผ๋กœ ์šฐ๋ฆฌ ์–ผ๊ตด์— ๋˜์กŒ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ธฐ๋‹ค. Uwp์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๋ˆ„๋ฝ๋œ ๊ธฐ๋Šฅ. ๋ฌธ์ œ ๋‚ด์—์„œ CollectionView๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์ˆ˜์‹ญ ๊ฐœ์˜ ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ Xamarin์ด ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์œ„ํ•œ ์ตœ๊ณ ์˜ ๋„๊ตฌ๋ผ๊ณ  ๋ฏฟ๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ๋“ค์ด ์ด ๋ฌธ์ œ๋ฅผ ๊ฑด์„ค์ ์ธ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ๋ฐ›์•„๋“ค์ด๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

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

์–ธ๊ธ‰ํ–ˆ์œผ๋‹ˆ๊นŒ...

์ €๋Š” Android์™€ WPF(Windows Desktop) ๊ฐ„์˜ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋ฅผ ์ด๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ณต์‹ ํŒŒ์ดํ”„๋ผ์ธ์— ๋ฒ„๊ทธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ์†Œ๊ทœ๋ชจ ํŒ€์—๊ฒŒ ์ •๋ง ๋น„์šฉ ์ด ๋งŽ์ด ์ข‹์Šต๋‹ˆ๋‹ค .

xamarin์˜ wpf ๋ถ€๋ถ„์—์„œ ํ•  ์ผ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์€ ๋‚˜์˜๊ณ  ๋‹จ์ˆœํ•œ ๋ฒ„๊ทธ์˜ ์ง€์˜ฅ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ฉด์˜ ์•„์ด๋””์–ด์™€ ๊ธฐ๋ฐ˜์€ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋ณด๋ฉด ์•ˆํƒ€๊นŒ์›Œ์š”...

ํ’ˆ์งˆ์€ ํ•ญ์ƒ Xamarin ๊ฐœ๋ฐœ์˜ ๋ชจ๋“  ์ธก๋ฉด์—์„œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ๋น„ํ˜ธํ™˜์„ฑ, VS์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋นŒ๋“œ ๋˜๋Š” ์ƒˆ ๋ฒ„์ „์˜ Forms๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋‚ด ์•ฑ์ด ์ถฉ๋Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ขŒ์ ˆ๊ฐ์„ ๋Š๋‚๋‹ˆ๋‹ค. ๋ฌผ๊ฑด์ด ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ปจํŠธ๋กค์ด๋‚˜ ๋ ˆ์ด์•„์›ƒ์ด ๋‹จ์ˆœํžˆ ํ•จ๊ป˜ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ธ ๋ฒˆ์งธ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ด€๋ จ ํฌ์ธํŠธ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค.

  1. ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Forms์—์„œ ์ž‘์—…ํ•˜๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ ์ œ๊ฐ€ ๋ณด๊ธฐ์—๋Š” ํŒ€์ด ๋„ˆ๋ฌด ์ž‘์•„์„œ ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋‚˜ PR์˜ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๋Š” ์†๋„๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Forms์™€ Maui ์‚ฌ์ด์— ์ฃผ์˜๋ฅผ ๋ถ„์‚ฐ์‹œ์ผœ์•ผ ํ•˜๋ฏ€๋กœ ์ƒํ™ฉ์ด ๋”์šฑ ์•…ํ™”๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒ€์ด ๊ณง ์ƒ๋‹นํ•œ ๋ฐœ์ „์„ ์ด๋ฃจ๊ธฐ๋ฅผ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค.
  2. Microsoft๊ฐ€ ์‹ค์ œ๋กœ ์ž์ฒด ์•ฑ์—์„œ Forms๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ์ •๋ง ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ๋ฐ๋ชจ๋‚˜ ํšŒ์˜ ์•ฑ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. Teams ๋˜๋Š” Outlook๊ณผ ๊ฐ™์€ ์‹ค์ œ ์•ฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ํ‹€๋ ธ๋‹ค๋ฉด ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒ์ ์—์„œ MS Forms ์•ฑ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๊ณ  ์ด ํŠธ์œ—๊ณผ ๊ฐ™์€ ์ผ๋ถ€ ์ถœ์ฒ˜์— ๋”ฐ๋ฅด๋ฉด https://twitter.com/safaiyeh/status/1219294459298344961 ๊ทธ๋“ค์€ ์ฃผ๋กœ ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. ํ† ์ข…์˜.
  • MS๊ฐ€ ์ž์ฒด ๊ธฐ์ˆ (XF)์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์™œ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์ข‹์€ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณต์žกํ•œ ์•ฑ์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ Forms๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ ๊ณ„์ธต์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ณต๊ฐœ ๋ฆด๋ฆฌ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฌธ์ œ์˜ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ทธ๋“ค์€ Forms๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋“ค์ด ๋งํ•˜๋Š” ๊ฒƒ๋งŒํผ ์‰ฝ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  1. MS๊ฐ€ Win UI Xaml๊ณผ ๊ฐ™์ด ์ด๋ฏธ ์ž…์ฆ๋œ ๊ธฐ์กด ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  XF Xaml์˜ ํ˜•ํƒœ๋กœ ๊ณ„์†ํ•ด์„œ ๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์—์„œ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ทธ๋กœ ์ธํ•ด ๋„์ž…๋œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผ ํ•˜๋ฉฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์œ„ํ•œ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ์–ธ๊ธ‰ํ•œ ๋งŽ์€ ๋ฌธ์ œ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. Microsoft๋Š” Xamarin Forms ๋˜๋Š” iOS ๋˜๋Š” Android๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์•ฑ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ์ž‘๋™ํ•˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์•ฑ ์˜ˆ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ์ „๋ฌธ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์‹ค๋ง์Šค๋Ÿฝ๋‹ค๊ณ  ๋ถˆํ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Xamarin Forms๋Š” ์•ฑ์„ ํ•œ ๋ฒˆ ๋งŒ๋“ค๊ณ  ๋ชจ๋“  ๊ณณ์—์„œ ์ž‘์—…ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ํ”Œ๋žซํผ ๊ฐ„ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์•ฑ์„ ๋งŒ๋“ค๋ฉด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ถ„ํ• ๋œ ํƒญ, ๋ฐ์ดํ„ฐ ๊ฐ€์ƒํ™”, ๋ณต์žกํ•œ ๋ ˆ์ด์•„์›ƒ ๋“ฑ๊ณผ ๊ฐ™์€ ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ์ „๋ฌธ์ ์ธ ์•ฑ์„ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ๊ธฐ๋Šฅ์„ ์ž‘๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ ์  ๋” ์‹ธ์›Œ์•ผ ํ•˜๋Š” ์ž์‹ ์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ž‘์—…์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž‘๋™ํ•˜๋ ค๋ฉด ํ•ดํ‚น์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

Xamarin Hot Reload์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์€ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์•„์ง ์‹œ๊ธฐ์ƒ์กฐ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, App.xaml์—์„œ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ App.xaml์—์„œ ์ฐธ์กฐํ•˜๋Š” ๋ฆฌ์†Œ์Šค ์‚ฌ์ „(๋‚ด ์Šคํƒ€์ผ๊ณผ ๋ฆฌ์†Œ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ)์„ ๋งŒ๋“ค๋ฉด Hot Reload๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์•ฑ์˜ ๋ ˆ์ด์•„์›ƒ์„ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ถฉ๋Œํ•˜๋Š” ์•ฑ.

Visual Studio๋Š” Xamarin ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์—„์ฒญ๋‚˜๊ฒŒ ๋ฒ„๊ทธ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด Android ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ ํ”„๋กœ์ ํŠธ๋กœ ์„ ํƒํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•œ ๋‹ค์Œ iOS ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ ํ”„๋กœ์ ํŠธ๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์ž˜๋ชป๋œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. bin ๋˜๋Š” obj ํด๋”๋ฅผ ํŒŒ๊ดดํ•ด๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. VS๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์˜ˆ์—์„œ VS๋Š” ๋‚ด ์•ฑ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ ๋‚ด Mac์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๋ฌด์ž‘์œ„๋กœ ๋Š์–ด์ง‘๋‹ˆ๋‹ค. ๋‚ด VS๊ฐ€ ์ •์ง€๋ฉ๋‹ˆ๋‹ค. ํ™”๋ฅผ ๋‚ด๊ณ  ์ทจ๋ฏธ์™€ ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ์‚ถ์— ์˜๋ฌธ์„ ์ œ๊ธฐํ•˜๊ณ  ์ž‘์—… ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VS๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Visual Studio์˜ ํ–ฅํ›„ ๋ฒ„์ „์—๋Š” ์ด์ „ ๋ฒ„์ „์—์„œ ์ˆ˜์ •๋œ ๋ฒ„๊ทธ๊ฐ€ ๋‹ค์‹œ ๋„์ž…๋ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์ด ์ถœ์‹œ๋œ ํ›„ ์ด์ „ ๋ฒ„์ „์˜ VS๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฑฐํ•˜๊ณ  ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ญ์ƒ ์ตœ์‹  ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฒ„์ „์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” NuGet ํŒจํ‚ค์ง€์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ถ„ํ• ๋œ ํƒญ ์ปจํŠธ๋กค์ด ์ด๋ฏธ Xamarin ๋„๊ตฌ ํ‚คํŠธ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์„ธ๊ทธ๋จผํŠธ ํƒญ์€ ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ์ผ๋ฐ˜์ ์ธ ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Syncfusion ํˆดํ‚ท์ด๋‚˜ ๋‹ค๋ฅธ ํˆดํ‚ท์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Xamarin ๋ฐ Visual Studio๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ์ž์˜ ๋งŽ์€ ์ขŒ์ ˆ์ด ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๋‚ด๊ฐ€ ๊ฐœ๋ฐœํ•˜๋Š” ๋ชจ๋“  ์ „๋ฌธ ์•ฑ์—์„œ MAUI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์ด ๊ธด์žฅ๋ฉ๋‹ˆ๋‹ค. ๋‚˜์˜ค๋ฉด ํ”Œ๋ ˆ์ดํ•ด๋ณด๊ณ  ์‹คํ—˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ๋‚˜์™€์„œ ๋‹จ์ˆœํ•œ ๋ฐ๋ชจ ์•ฑ์ด ์•„๋‹Œ MAUI๋ฅผ ํ™œ์šฉํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์•ฑ์„ ๋งŒ๋“ ๋‹ค๋ฉด ๋” ๋ฏฟ์Œ์ด ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ Xamarin Forms ๋ฐ MAUI ๋กœ๋“œ๋งต์— ๋Œ€ํ•ด ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ณ‘๋ ฌ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๊นŒ? Xamarin Forms ์ง€์›์— ๋Œ€ํ•œ ์ค‘๋‹จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? Microsoft๋Š” ํ–ฅํ›„ Visual Studio ์—…๋ฐ์ดํŠธ์—์„œ MAUI๋ฅผ ๋ชฉ์— ๊ฑธ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

@SunnyMukherjee FAQ์—์„œ,

Xamarin.Forms์˜ ๋ฏธ๋ž˜๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Xamarin.Forms์˜ ๋‹ค์Œ ์ฃผ์š” ๋ฒ„์ „์€ 2020๋…„ 9์›”๊ฒฝ์— .NET MAUI(.NET 6 ํฌํ•จ) ๋ฆด๋ฆฌ์Šค๋ฅผ ํ†ตํ•ด ๊ณ„์† ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„์—๋„ Xamarin.Forms๋Š” 12๊ฐœ์›” ๋™์•ˆ ์šฐ์„  ์ˆœ์œ„ ์„œ๋น„์Šค๋ฅผ ๊ณ„์† ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Xamarin.Forms๋Š” ๋ฒ„์ „ 5 ์ดํ›„์— ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

@SunnyMukherjee FAQ์—์„œ,

Xamarin.Forms์˜ ๋ฏธ๋ž˜๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Xamarin.Forms์˜ ๋‹ค์Œ ์ฃผ์š” ๋ฒ„์ „์€ 2020๋…„ 9์›”๊ฒฝ์— .NET MAUI(.NET 6 ํฌํ•จ) ๋ฆด๋ฆฌ์Šค๋ฅผ ํ†ตํ•ด ๊ณ„์† ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„์—๋„ Xamarin.Forms๋Š” 12๊ฐœ์›” ๋™์•ˆ ์šฐ์„  ์ˆœ์œ„ ์„œ๋น„์Šค๋ฅผ ๊ณ„์† ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Xamarin.Forms๋Š” ๋ฒ„์ „ 5 ์ดํ›„์— ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

2021๋…„ ์ค‘๋ฐ˜๊นŒ์ง€ . . . ๊ทธ ์ „์— Covid๊ฐ€ ๋‚˜๋ฅผ ์ฃฝ์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด Maui ๋˜๋Š” Xamarin Forms๊ฐ€ ๊ทธ ์ผ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@SunnyMukherjee ๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ณ ํ†ต์„ ๋“ฃ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Xamarin.Forms๊ฐ€ ์ฒ˜์Œ ๋‚˜์™”์„ ๋•Œ๋ถ€ํ„ฐ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ๊ทธ ์ดํ›„๋กœ ๊ณ„์† ๋ฐœ์ „ํ•ด ์™”์Šต๋‹ˆ๋‹ค. Microsoft๋Š” Xamarin.Forms๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•˜์œผ๋ฉฐ 2018๋…„์—๋งŒ Xamarin์„ ๊ตฌ์ž…ํ–ˆ์Œ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค. ๋”ฐ๋ผ์„œ MAUI๋Š” ๋” ๋‚˜์€ ์ƒํƒœ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ์ „์ฒด .net์—์„œ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” Microsoft์˜ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. Xamarin.Forms๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์†Œํ•œ ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Uno ๋˜๋Š” Flutter๊ฐ€ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ปจํŠธ๋กค ์ž์ฒด๋ฅผ ์™„์ „ํžˆ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” Xamarin.Forms์— ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ - ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋„ค์ดํ‹ฐ๋ธŒ ์ปจํŠธ๋กค์„ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž‘์€ ์ž‘์—…์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋˜ํ•œ Xamarin.Forms์— ๋Œ€ํ•ด ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ๋™์ผํ•œ ์•ฑ์„ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ˆ์•ฝํ•œ ์‹œ๊ฐ„์ด ๋ฌธ์ œ๋ณด๋‹ค ํ›จ์”ฌ ํฝ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฑ์—”๋“œ ASP.Net ํ•ต์‹ฌ ํ”„๋กœ์ ํŠธ์™€ ์ฝ”๋“œ์˜ 90%๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์–ด ํ›จ์”ฌ ๋” ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
MAUI์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์„ Microsoft์— ์•Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜์ง€๋งŒ Microsoft์—๊ฒŒ ์ด๊ฒƒ์ด ์ž‘์€ ์ผ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ด์•ผ ํ•˜๋ฉฐ MAUI๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋Š” ํฐ ๋ฐœ๊ฑธ์Œ์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๋ฐ๋ชจ์˜ MAUI์— ๋Œ€ํ•œ ์ตœ๊ทผ ๋นŒ๋“œ์˜ ์ด ๋น„๋””์˜ค๋ฅผ ๋ณด๊ณ  ๋กœ๋“œ๋งต์— ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ณ  ๊ทธ ๋™์•ˆ Xamarin.Forms์—์„œ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ง€์›ํ•  ์ž‘์—…์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
https://channel9.msdn.com/Events/Build/2020/BOD106?ocid=AID3012654&WT.mc_id=Build2020_pmmsocialblog

์—ฌ๊ธฐ๋ฅผ ์ฝ์œผ๋ฉด์„œ Xamarin.Forms์˜ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์„œ ๋ฌด์—‡์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. @ Happypig375 ์˜ ์›๋ž˜ ์งˆ๋ฌธ์œผ๋กœ

๊ฐœ์„  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ๋ถ€ํ„ฐ .NET MAUI ์ถœ์‹œ ์‚ฌ์ด์˜ ์ฃผ์š” ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ๊ธฐ๋ฐ˜, ์ถœ๋ฐœ์ ์„ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ ์Šคํ”„๋ฆฐํŠธ์˜ ๋Œ€๋ถ€๋ถ„์„ CollectionView ๋ฌธ์ œ์— ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Xamarin.Forms 5์—์„œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ž๋ฅผ ์ผ์‹œ ์ค‘์ง€ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜๋ฏ€๋กœ 2020๋…„ 9์›”๋ถ€ํ„ฐ 2021๋…„ 11์›”๊นŒ์ง€ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์Šคํ”„๋ฆฐํŠธ ํ”„๋กœ์ ํŠธ ๋ณด๋“œ ์—์„œ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ:

  • ์ปค๋ฎค๋‹ˆํ‹ฐ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜์„ธ์š”.

๋‚˜๋Š” ๋ฉฐ์น  ์ „์— ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ–ˆ๋‹ค. ๋ฆฌ๋ทฐ๊ฐ€ ์™œ์ด๋ ‡๊ฒŒ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋‚˜์š”?

WPF-Renderer, ์ž ์žฌ์  ๋ฒ„๊ทธ ํฌ์ธํŠธ:

  • ์ปจํŠธ๋กค์˜ ์ธก์ •/๋ฐฐ์—ด
  • Logical/Visual-Childtree๊ฐ€ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ

@davidortinau ๋‹˜ , ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ์™„์ „ํžˆ ์ฐธ์—ฌํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ๋ฒ„๊ทธ ๋ฌธ์ œ ๋ถ„๋ฅ˜
  • PR ๊ฒ€ํ†  ๋ฐ ๋ณ‘ํ•ฉ์„ ์œ„ํ•ด ๊ด€๋ฆฌ, ํŒŒ๊ฒฌ ๋ฐ ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.

๊ทธ/๊ทธ๋…€๋Š” ๋ฌธ์ œ๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ฆฌ๊ฒŒ ์ง„ํ–‰๋˜๋Š” ๊ฒฝ์šฐ ์šฐ๋ฆฌ์˜ ์—ฐ๋ฝ ๋‹ด๋‹น์ž๊ฐ€ ๋˜์–ด ์ง„ํ–‰ ์ƒํ™ฉ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋ฒ•์  ์žฅ์• ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜จ๋ผ์ธ์œผ๋กœ PR์„ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ๋Š” Twitch ์ฑ„๋„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ™˜์ƒ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. IHMO, ์ด๊ฒƒ์€ ์™ธ๋ถ€ ๊ฐœ๋ฐœ์ž์˜ ๊ด€์‹ฌ๊ณผ ํ˜‘์—…์— ์—„์ฒญ๋‚œ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” .NET MAUI ๋ฐ Xamarin Forms์— ๋ชจ๋‘ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜๋Š” ๋‹จ์ง€ ๋ชฝ์ƒ๊ฐ€์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

Xamarin.Forms๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ํ”Œ๋žซํผ์˜ ์ˆ˜์™€ ํ”Œ๋žซํผ ๋˜๋Š” ์ž์ฒด ๊ฐœ๋ฐœ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜๋ฉด Xamarin.Forms์— ๋งŽ์€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๊ทธ๋‹ค์ง€ ๋†€๋ž์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋Š” MAUI์šฉ Xamarin.Forms์—์„œ ์–ป์€ ๊ตํ›ˆ์œผ๋กœ ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋œ PR๋กœ ์ฆ‰์‹œ ํ•ด๊ฒฐ๋˜๋Š” ๋Œ€์‹  ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๊ณ ๋œ ๋งŽ์€ ๋ฌธ์ œ์™€ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ "ํ•ต์‹ฌ ๊ธฐ๋Šฅ"๊ณผ "์ค‘์š”ํ•œ ๋ฒ„๊ทธ"๋ผ๊ณ  ๋งํ–ˆ์„ ๋•Œ. ์ด๊ฒƒ์ด ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ง€๊ธˆ ๋งค์šฐ ์„ฑ๊ฐ€์‹œ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์‹ค์ œ๋กœ ์•Œ์ง€ ๋ชปํ•œ ์ฑ„ ์ผ์ฃผ์ผ ๋™์•ˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ฑ ์œ ์ง€์œจ์ด ๊ธ‰๊ฒฉํžˆ ๋–จ์–ด์ง„ ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋Œ€๋ถ€๋ถ„ ์˜์–ด๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž์ด๊ณ  ์ŠคํŽ˜์ธ์–ด ๋˜๋Š” ๋…์ผ์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ์—ด์—ˆ๋Š”๋ฐ ์ด ๋ฒ„๊ทธ ๋•Œ๋ฌธ์— ์˜์–ด๋ผ๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š”. ๋‚ด ์•ฑ์ด ํ•ด๋‹น ์–ธ์–ด๋กœ ๋ฒˆ์—ญ๋˜๋”๋ผ๋„ ๊ทธ๋Š” ์ฆ‰์‹œ ์•ฑ์„ ์ œ๊ฑฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งˆ์šดํŠธ ์ „์— ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์™œ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Appcenter ๋ฐ Azure Pipelines์—๋„ ํ•ด๋‹น ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค:

์ž์‹ ์˜ ๋ Œ๋”๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. internal ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.

Microsoft๋Š” GitHub์— ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” ๋Œ€์‹  Xamarin Forms, iOS ๋˜๋Š” Android๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OneDrive ๋˜๋Š” Xbox ์•ฑ๊ณผ ๊ฐ™์€ ์ „๋ฌธ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์•ฑ์„ ๋งŒ๋“ค๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก App Store์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Microsoft๋Š” ์ด์ „์— Visual Studio๋ฅผ C++์—์„œ C# ๋ฐ WPF๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค(์ด ๊ฒฝ์šฐ ๊ณ ๊ฐ์ด ๊ฐœ๋ฐœ์ž์ž„์„ ํ—ˆ์šฉํ•จ). ์ด๋Š” Microsoft์— ์šฐ๋ฆฌ์˜ ๊ณ ์ถฉ์— ๋Œ€ํ•ด ์•Œ๋ ค์ค„ ๊ฒƒ์ด๋ฉฐ ์„ฑ๊ณตํ•  ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์— Xamarin์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์—„์ฒญ๋‚œ ํ™•์‹ ์„ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๊ฒŒ์‹œ๋ฌผ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๊ธฐ์˜๊ณ  ๋‚ด ์ขŒ์ ˆ๊ฐ์— ๋ฌด๊ฒŒ๋ฅผ ๋‹ฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ข…์ข… ๊ธฐ์กด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ๊ฒŒ์‹œํ•˜๋Š” ๋ฐ ์ˆ˜๋™์ ์ด์ง€๋งŒ, ๋‚˜๋ฅผ ์ด‰๋ฐœ์‹œํ‚ค๋Š” ๊ฒƒ์€ BundleAssemblies ์™€ ๊ด€๋ จ๋œ ์ด ๋ฌธ์ œ ์ž…๋‹ˆ๋‹ค. ์ด ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ์ง€ 2๊ฐœ์›”์ด ๋„˜์—ˆ์ง€๋งŒ Xamarin ๊ตฌ์„ฑ์›์˜ ์†”๋ฃจ์…˜, ์ƒํƒœ ๋˜๋Š” ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ํ‘œ์‹œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ €๋Š” Agile Scrum ํŒ€์„ ์šด์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ KPI๋Š” Velocity(์™„๋ฃŒ๋œ ์ž‘์—…๋Ÿ‰)์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ๋ฌธ์ œ๊ฐ€ ํŠน์ • ์ˆ˜์ค€๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ”์„ ๋•Œ ๋‚ด ๊ฒฐ๋ก ์€ ํ•ญ์ƒ "... ๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ " [์šฐ๋ฆฌ ์ œํ’ˆ]์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์‹ค๋ก€๊ฐ€ ๋˜์ง€๋Š” ์•Š์ง€๋งŒ(์ •๋ง๋กœ) ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋‚ด ์ƒ์‚ฌ๋‚˜ ๊ณ ๊ฐ์„ ์• ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ํ† ๋ก  ์ƒํ™ฉ์—์„œ ๋‚ด๊ฐ€ ๋งํ•  ๋•Œ ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๋‚˜ ๋˜๋Š” ๋‚ด ์ œํ’ˆ ์†Œ์œ ์ž๊ฐ€ ์ผ์„ ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ์—ฌ์ „ํžˆ ๊ฑฐ๋ถ€ ๋˜๋Š” ์ตœ์•…์˜ ์ƒํƒœ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ •๋ง๋กœ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. (์ €์˜ ๊ฐ๊ฐ์„ ๋•Œ๋ฆฐ ์ดํ•ด ๊ด€๊ณ„์ž ์ค‘ ํ•œ ๋ช…์—๊ฒŒ ๊ฐ์‚ฌ)

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

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

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

ํ•œ ๊ฐ€์ง€ ์ข‹์€ ์˜ˆ๋Š” BundleAssemblies์— ๋Œ€ํ•œ ํšŒ๊ท€์ž…๋‹ˆ๋‹ค (์ด๋ฏธ ์—ฌ๋Ÿฌ ๋ฒˆ ์–ธ๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค).
๋˜ ๋‹ค๋ฅธ ์ข‹์€ ์˜ˆ๋Š” CollectionView์— ๊ด€ํ•œ ์ด ๋ฌธ์ œ ์ž…๋‹ˆ๋‹ค.

์ €์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์šฐ๋ ค๋Š” XF ์•ฑ์ด XF์˜ ๋ณ€๊ฒฝ์€ ๋ฌผ๋ก  Mono, Visual Studio, Xamarin Framework, DotNet ๋ฐ ์ผ๋ถ€ Microsoft ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ํŒ€๋“ค์ด ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์˜์‚ฌ์†Œํ†ต์ด ์ž˜ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋Š๋‚Œ์ด ๋“ ๋‹ค.
์ œ ์ƒ๊ฐ์—๋Š” Microsoft๊ฐ€ ์•ฑ์— ๋‚ด๋ถ€์ ์œผ๋กœ XF๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ™•์‹คํžˆ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ํ•œ ๊ฐ€์ง€ ์ข‹์€ ์˜ˆ๋Š” ์ด ํšŒ๊ท€ ์ด๋ฉฐ, ๊ทผ๋ณธ ์›์ธ์€ ์‹ค์ œ๋กœ Mono ๋ฐ AndroidX์— ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ iOS ์•ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” dotnet ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ด ๋ฌธ์ œ ๋ฅผ ์–ธ๊ธ‰ํ•˜๊ฑฐ๋‚˜ msal์—์„œ๋„ ์ด ๋ฌธ์ œ ๋ฅผ ์–ธ๊ธ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  ์†Œ์Šค ๋งํฌ์™€ ๊ด€๋ จํ•˜์—ฌ Visual Studio์˜ ์ด ๋ฌธ์ œ ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค .

์—ฌ๊ธฐ ์‚ฌ๋žŒ๋“ค์ด ๋‚ด๊ฐ€ ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํ›Œ๋ฅญํ•˜๊ฒŒ ์„ค๋ช…ํ–ˆ์œผ๋ฏ€๋กœ ๋นจ๋ฆฌ ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์  ๋ฌธ์ œ

  • Visual Studio๋Š” XF๋กœ ์ž‘์—…ํ•  ๋•Œ ๋ถ„๋‹น 3๋ฒˆ ์ด์ƒ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์ปจํŠธ๋กค์ด ๋งŽ์ด ์—†๊ฑฐ๋‚˜ ์›๋ž˜๋Œ€๋กœ ๋ชจ์–‘์„ ๋งŒ๋“œ๋Š” ๋ฐ ์ง€์˜ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • XF๊ฐ€ ์ตœ์•…์˜ ์„ฑ๋Šฅ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ๋งํ•  ๋•Œ XF๊ฐ€ ๊ธฐ๋ณธ Android/ios๋ฅผ ๋‹ค๋ฃจ๋ฉฐ ์–ด๋ ต๋‹ค๊ณ  ๋งํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ๋ถ„๋ช…ํžˆ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ด! ๋ด์ฃผ์„ธ์š”! ์‹ ์˜ ์‚ฌ๋ž‘์„ ์œ„ํ•ด! at flutter, RN, NativeScript... ๋ชจ๋‘ ๊ฐ™์€ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ XF๋Š” ํ›จ์”ฌ ๋’ค์ณ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ซ ๋ฆฌ๋กœ๋“œ๋Š” ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์™ผ์ชฝ์— ๊ธฐ๋ณธ ํ…์ŠคํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋งŒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๋ฆด๋ฆฌ์Šค์—์„œ Flutter ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ค์˜ค์˜ค ์ •๋ง ๋ฉ‹์ง„ ์ผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— XF ์ปด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ปด์˜ 10%๋งŒ ํ•„์š”๋กœ ํ•˜๋Š” ๊ณ ์žฅ์ด๋‚˜ ์ถ”๊ฐ€ํ•œ ๊ฒƒ์„ ๋ด…์‹œ๋‹ค!
  • XF๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์ž‘ ์—ฌ์ •์€ ์ง€์˜ฅ์˜ ์—ฐ์†์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ์— Playstore์˜ ๋ชจ๋“  ์•ฑ์—์„œ ๊ณตํ†ต ์ปจํŠธ๋กค ์ค‘ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ปจํŠธ๋กค์€ ๋‹จ์ˆœํ•œ ํ•˜๋‹จ ํƒญ ์•„์ด์ฝ˜๋ฟ์ž…๋‹ˆ๋‹ค. ๋ณด๊ธฐ ํ‰ํ•˜๊ณ  ๋ชจ๋‘์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๋งจ ์•„๋ž˜์— ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ 6๊ฐœ์›” ์ด์ƒ ์ „์— ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค... ๊ทธ๋ฆฌ๊ณ  ๋„์ค‘์— ์ˆ˜์ •์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์•ฑ์ด ์ƒ๊ฐ๋‚˜์„ธ์š”? ์–ด๋–ค ์•ฑ? ์ธ์•ฑ ๊ตฌ๋งค ๋˜๋Š” ์ผ์ข…์˜ ํ”„๋ฆฌ๋ฏธ์—„ ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌผ๋ก  ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹น์‹ ์€ ๊ตฌ๊ธ€ ํŽ˜์ด์™€ ์• ํ”Œ ํŽ˜์ด๋ฅผ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ฐพ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งž์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ํŽ˜์ดํŒ”๋„ ๋งž๋‚˜์š”? ๋‚ด๊ฐ€ ๋‹น์‹ ์—๊ฒŒ ๋ญ”๊ฐ€๋ฅผ ๋งํ•˜์ž, ๊ฑฐ๊ธฐ์— ์—†์Šต๋‹ˆ๋‹ค !!! XF ๊ณต์‹ ํŒ€์— ๋ฌผ์–ด๋ณด๋ฉด ๋ญ๋ผ๊ณ  ๋Œ€๋‹ตํ• ์ง€ ์•„์„ธ์š”? ๊ทธ๋“ค์€ ๋‹น์‹ ์—๊ฒŒ ์—…๋ฐ์ดํŠธ ์—†์ด 2๋…„ ์ „์— ํ•œ ์‚ฌ๋žŒ(๋‚ด๊ฐ€ ์กด๊ฒฝํ•˜๋Š”)์ด ๋งŒ๋“  ๊ตฌ์‹์˜ ๋น„๊ณต์‹ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. WTF(์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค) !!

๊ธฐ์ˆ ์ ์ด์ง€ ์•Š์Œ

  • Oh comme ooon ์‹ฌ์ง€์–ด ๊ณต์‹ ๋ฌธ์„œ๋Š” ๋งค์šฐ ์—ด์•…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํ•  ์ผ ์•ฑ ์ˆ˜์ค€ ๊ธฐ๋Šฅ๊ณผ ๋ฐฉ๋ฒ• ์ž์Šต์„œ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
  • ๋‚˜๋Š” XF๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์—๋„ ์‹ซ์–ดํ–ˆ๋Š”๋ฐ ์™œ ๊ทธ๋Ÿฐ์ง€ ์•Œ์•„? ๋‹ค๋“ค MS๋„ ์•ˆ์“ฐ๋Š”๋ฐ ์™œ F๋ฅผ ์“ฐ๋ƒ?
  • ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ XF ํŒ€์„ ๋•๊ธฐ ์œ„ํ•ด ์ž์‹ ์˜ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฌธ์ œ ๋ฐ PR์— ๋Œ€ํ•œ ๋งค์šฐ ๋Š๋ฆฐ ์‘๋‹ต !!!

์†”๋ฃจ์…˜

  • XF ํŒ€์€ ๋งค์šฐ ์ž‘์Šต๋‹ˆ๋‹ค. Microsoft๊ฐ€ ์ž์ฒด ์ œํ’ˆ์„ ๊ฐœ์„ ํ•  ๋งŒํผ ์ถฉ๋ถ„ํ•œ ์ธ๋ ฅ์„ ๊ณ ์šฉํ•˜์ง€ ์•Š๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ํšŒ์‚ฌ๊ฐ€ ๊ฑฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋งŒํผ Microsoft๋ฅผ ์‚ฌ๋ž‘ํ•˜๋Š” ์ธ์žฌ๋“ค์ด ์ „ ์„ธ๊ณ„ ์–ด๋””์—๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค!
  • XF๋Š” ์ถœ์‹œํ•˜๊ธฐ ์ „์— ๋†’์€ ์ˆ˜์ค€์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒ€์ด ์–ผ๋งˆ๋‚˜ ๋ฏธ์„ฑ์ˆ™ํ•œ์ง€ ๋ณด์—ฌ์ค„ ๋ฟ์ž…๋‹ˆ๋‹ค.
  • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ๋Œ€๋ถ€๋ถ„ ๊ทธ๋“ค์˜ ์ œํ’ˆ์— XF๋ฅผ ์‚ฌ์šฉํ•  ์˜๋ฌด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค! XF๊ฐ€ ์ข‹๋‹ค๋Š” ์‹์œผ๋กœ๋งŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด ์‹ซ์ง€๋งŒ์š” yukh
  • ๋งค์šฐ ํ’๋ถ€ํ•œ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“œ์‹ญ์‹œ์˜ค! ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์ด๋™ํ•˜๋Š” ๋ฌธ์„œ๋Š” ๋” ๋งŽ์€ ์‚ฌ๋žŒ์„ ๊ณ ์šฉํ•˜์‹ญ์‹œ์˜ค! ๊ทธ๊ฒƒ๋งŒํผ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋ธ”๋กœ๊ทธ์— ํ•จ๊ป˜ ์ผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝํ—˜ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • XF๋Š” Flutter๋งŒํผ ๋งŽ์ด ์•Œ๋ ค์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. YouTube์—์„œ ํฐ ์ฝ”๋”ฉ ์ธํ”Œ๋ฃจ์–ธ์„œ์™€ ํŒŒํŠธ๋„ˆ์‹ญ์„ ๋งบ์œผ์„ธ์š”. ๊ฐ„๋‹จํ•œ ์–ธ๊ธ‰๋งŒ์œผ๋กœ๋„ XF์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ์ œํ’ˆ์„ ์‚ดํŽด๋ณด๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ œํ’ˆ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ž์‹ ๋งŒ์˜ ๋ฒ„์ „์„ ๋งŒ๋“œ์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”Œ๋Ÿฌํ„ฐ.
  • ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ทธ๋“ค์ด ์›ํ•˜๋Š” ๊ฒƒ์„ ๋ฌป๋Š” ๊ฒƒ์„ ๋‘๋ ค์›Œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋ฐ”์œ„ ์•„๋ž˜์—์„œ ์‚ด์ง€ ๋ง๊ณ  ์•„๋ฌด๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์„ ๋งŒ๋“œ์‹ญ์‹œ์˜ค!

๋‚ด ๊ณต๊ฒฉ์ ์ธ ํ–‰๋™๊ณผ ๋‚˜์œ ์˜์–ด์— ๋Œ€ํ•ด ๋งค์šฐ ์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” XF๋ฅผ ์ •๋ง ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค!
๋งˆ์šฐ์ด๋Š” ์ƒˆ๋กœ์šด ์ถœ๋ฐœ์ ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ˜๋ช…์ด ๋˜๊ฒŒ ํ•˜์‹ญ์‹œ์˜ค. ๋ชจ๋‘๊ฐ€ ๋ฉ‹์ง„ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์šฐ๋ฆฌ๋ฅผ ์‹ค๋ง์‹œํ‚ค์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์šฐ๋ฆฌ๋Š” ํฐ ํฌ๋ง์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@Amine-Smahi ์ถฉ๋Œ๋กœ ์ด์–ด์ง€๋Š” ๋™์ž‘์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ด๋ฉ”์ผ๋กœ ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค([email protected]).

๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋”์ฐํ•˜๋‹ค๋Š” ๋ฐ ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด:
https://github.com/xamarin/Xamarin.Forms/issues/3335 - ListView.RecycleElement ์‚ฌ์šฉ ์ค‘์ง€
https://github.com/xamarin/Xamarin.Forms/issues/4168 - CompressedLayout ์‚ฌ์šฉ ์ค‘์ง€

์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ๋Š” ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๋‚ด ์•ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ์˜ค๋žซ๋™์•ˆ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://github.com/xamarin/AndroidX/issues/64
https://github.com/xamarin/Xamarin.Forms/issues/5087
https://github.com/xamarin/Xamarin.Forms/issues/5127
https://github.com/xamarin/Xamarin.Forms/issues/3168
https://github.com/xamarin/Xamarin.Forms/issues/8058 https://github.com/xamarin/Xamarin.Forms/issues/10055
https://github.com/xamarin/xamarin-android/issues/3341
https://github.com/xamarin/xamarin-android/issues/3480

ํŒ€์€ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด @StephaneDelcroix ๋Š” https://github.com/xamarin/Xamarin.Forms/pull/1136์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค https://github.com/xamarin/Xamarin.Forms/issues/4168์— ํ• ๋‹นํ•˜๊ณ  CompressedLayout ๊ด€๋ จ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ ์ •๋ณด: ๊ฐœ์ธ์ ์œผ๋กœ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋Œ€๋ถ€๋ถ„ ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ํžˆ f * d up ;) (ํ•ญ์ƒ ๋Šฆ๊ฑฐ๋‚˜ ๋ถˆ์™„์ „ํ•จ)
๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, XF์— ๋Œ€ํ•ด ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ฒด xamarin ํ”„๋ ˆ์ž„์›Œํฌ(xamarin.android, xamarin.ios, Visual Studio, mono, components...)์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์˜ˆ์ž…๋‹ˆ๋‹ค. xamarin ios ๋ฆด๋ฆฌ์Šค ์ •๋ณด

@๋ฉœ๋ฆฌ๋ฏธ์˜จ

์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ๋Š” ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ ˆ๋Œ€์ ์œผ๋กœ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.
CollectionView๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ Android์—์„œ๋Š” ๋งŽ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  iOS์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(Disposed ์˜ˆ์™ธ, NSinconsistency ์˜ˆ์™ธ ๋“ฑ. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๊ณต์‹ ๊ฐ€์ด๋“œ(!)์— ๋”ฐ๋ผ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
CarouselView๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ์˜ค๋ž˜๋˜์—ˆ์ง€๋งŒ ๋” ์•ˆ์ •์ ์ธ Listview๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ "์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ์ œ๋ชฉ์ด ํ‘œ์‹œ๋˜๋ฉด ์ฆ‰์‹œ ๋” ์Šคํฌ๋กคํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค๋ฅธ ์š”์†Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
Swipeview,Expander๋„ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์œ„์— ์‚ฌ๋žŒ์ด ์“ด ๊ฒƒ์ฒ˜๋Ÿผ ์ž์ฒด ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๋ชจ๋…ธ, Visual Studio๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

4.7-4.8์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ทจ์†Œํ•˜๊ณ  ๋ฒ„๊ทธ ์ˆ˜์ •์— ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค.
Xamarin์—์„œ ๊ฐœ๋ฐœ์€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•, ์ž„์‹œ ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์„œํˆฌ๋ฅธ ์˜์–ด์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์–ด์ œ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ํ–ฅ๋ ฅ์ด ๋†’์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋œ ๋ฌธ์ œ๊ฐ€ 200๊ฐœ ์ด์ƒ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๋ฒ„๊ทธ๊ฐ€ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถœ์‹œํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด์ „ ์ œ์•ˆ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์„ ๋‚ด์–ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ˆ˜๋ฅผ ์ค„์ด์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ œ๋กœ ์ธํ•ด 4.4์—์„œ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค. ์ด ์ƒํ™ฉ์— ํ›จ์”ฌ ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด๋ณด์‹ญ์‹œ์˜ค. ํ˜์‹ ๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํ•  ์ธ๋ ฅ์ด ์—†๋‹ค๋ฉด ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ์ด ์šฐ์„ ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ฒ„๊ทธ๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ 4.7 ์ด์ƒ์— ๊ณ„ํš๋œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์—”์ง€๋‹ˆ์–ด๋ง ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ด๋Š” ๊ฒƒ์ด ๋” ์ข‹์€์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด XF ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ์ผ์ข…์˜ ์„ค๋ฌธ์กฐ์‚ฌ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ง์€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ž์ฒด๊ฐ€ ๋” ๋งŽ์€ ์žฌ์ž‘์—…๊ณผ ๋” ๋งŽ์€ ์ง€์—ฐ์„ ์œ ๋ฐœํ•˜๋Š” ๋” ๋งŽ์€ ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค... ๋•Œ๋•Œ๋กœ ์ข‹์€ ๊ตฌ์‹ ๊ธฐ๋Šฅ ๋™๊ฒฐ์ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.

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

@freever ์ „์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค!
์ด๊ฒƒ์€ ํ˜„์žฌ Xamarin ๊ฐœ๋ฐœ์ž๋ฅผ ๋” ํ–‰๋ณตํ•˜๊ฒŒ ๋งŒ๋“ค ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ MAUI์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ๋ฒ„๊ทธ๋„ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์ด๋Ÿฌํ•œ ๋ฒ„๊ทธ๊ฐ€ ์—ฌ๊ธฐ MAUI์—์„œ ์ˆ˜์ •๋˜๋„๋ก ์ˆ˜ํ–‰๋ ์ง€ ์•„๋‹ˆ๋ฉด Xamarin.Forms์—์„œ ์ˆ˜์ •๋ ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@davidortinau ๊ฐ€ ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์„ ์—ฌ๊ธฐ์—์„œ ๋‹ค๋ฃฌ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/dotnet/maui/issues/109#issuecomment -635078640

๋‚˜๋Š” ๊ทธ์˜ ์˜๊ฒฌ์œผ๋กœ ์„ค๋ช…์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฐ€ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด ๋‹ค์‹œ ํ•œ ๋ง์˜ ์ด ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์Šคํ”„๋ฆฐํŠธ์˜ ๋Œ€๋ถ€๋ถ„์„ CollectionView ๋ฌธ์ œ์— ์†Œ๋น„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Xamarin.Forms 5์˜ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ž๋ฅผ ์ผ์‹œ ์ค‘์ง€ํ•˜์—ฌ 2020๋…„ 9์›”๋ถ€ํ„ฐ 2021๋…„ 11์›”๊นŒ์ง€ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

PureWeen์€ 10์‹œ๊ฐ„ ์ „์— ๋‹ซ์•˜์Šต๋‹ˆ๋‹ค.

์ˆ˜์‹ญ ๋ช…์˜ xamarin ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด ํ‹ฐ์ผ“์— ์ž์‹ ์˜ ์˜๊ฒฌ์„ ํ‘œ๋ช…ํ–ˆ์œผ๋ฉฐ, ๋‚˜๋Š” ๊ทธ๋“ค์ด ๋“ค์—ˆ๋‹ค๋Š” ๋Š๋‚Œ์ด ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์Šฌํ”„๊ฒŒ๋„, ๋‹น์‹ ์€ ๋‚ด ์š”์ ์„ ์ฆ๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค

@PureWeen ์ด ๋ฌธ์ œ๋Š” ๋ฒ„๊ทธ์˜ ์ˆ˜ ์ด์ƒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์‹ฌ์ง€์–ด ํฌ์ธํŠธ ํ˜•ํƒœ๋กœ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

@tranb3r

XF์™€ ๊ด€๋ จํ•˜์—ฌ ๊ฐ€์žฅ ์‹ค๋ง์Šค๋Ÿฌ์šด ์ ์€ ์šฐ๋ฆฌ์˜ ๊ธฐ์—ฌ(์ƒˆ๋กœ์šด PR์ด๋“ , ์ƒˆ๋กœ์šด ๋ฌธ์ œ์ด๋“ , ์‹ฌ์ง€์–ด ๊ฐ„๋‹จํ•œ ์งˆ๋ฌธ์ด๋‚˜ ํ”ผ๋“œ๋ฐฑ์ด๋“ )๊ฐ€ ํŒ€์—์„œ ๋ฌด์‹œ๋  ๋•Œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@davidortinau ์˜ ์˜๊ฒฌ์ด ์–ด๋–ป๊ฒŒ ๋‹น์‹ ์—๊ฒŒ ๋ถ€์กฑํ•ฉ๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋งํ•˜๊ณ  ์žˆ๋Š” ์š”์ ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ณต๊ฐœ PR๊ณผ ๋ฒ„๊ทธ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ณ  ๊ฒฐ๊ตญ ์šฐ๋ฆฌ์˜ ์ตœ์‹  .net 6 ๊ธฐ๋ฐ˜ ์ œํ’ˆ์ด ๋  .net maui์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@Happypig375

@pauldipietro ๋Š” ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๊ฒŒ์‹œํ•œ ๊ฐœ์ธ์—๊ฒŒ ์—ฐ๋ฝํ•˜์—ฌ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๋” ์ง์ ‘์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ XF์— ๋ฒ„๊ทธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋ฌด์‹œํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด ๋ฒ„๊ทธ์™€ ๊ณต๊ฐœ PR์— ๋” ์ง‘์ค‘ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฐœ๋œ ๋ฒ„๊ทธ ์™ธ์— ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ณต๊ฐœํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๋ฏธํ•ด๊ฒฐ ๋ฒ„๊ทธ์— ๊ด€ํ•œ ๊ฒƒ์ด๋ฉฐ ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๋‹ค.

MAUI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•œ ํ•œ ๋น ๋ฅธ ๋ฒ„๊ทธ ์ˆ˜์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์„  ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” .NET Maui๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Form์—์„œ ๋งŽ์€ ๋ ˆ๊ฑฐ์‹œ ์ธก๋ฉด์„ ์ œ๊ฑฐํ•˜๊ณ  ์žˆ์œผ๋ฉฐ .NET Maui๋กœ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋„๋ก ๋ฒ„๊ทธ์™€ ๊ณต๊ฐœ PR์— ์ง‘์ค‘์ ์œผ๋กœ ์ง‘์ค‘ํ•˜๊ธฐ ์ „์— ์˜ฌํ•ด๋ฅผ ๋ณด๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์šฐ๋ฆฌ์˜ ํ”„๋กœ์ ํŠธ ๋ณด๋“œ์ž…๋‹ˆ๋‹ค.

https://github.com/xamarin/Xamarin.Forms/projects

์šฐ๋ฆฌ๊ฐ€ ๊ฐ ์Šคํ”„๋ฆฐํŠธ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
https://github.com/xamarin/Xamarin.Forms/projects/70

๋‹ค์Œ์€ ๋กœ๋“œ๋งต์ž…๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/wiki/Feature-Roadmap
์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•˜๊ณ  ์žˆ๋Š” ์ผ์„ ์ตœ๋Œ€ํ•œ ํˆฌ๋ช…ํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค

ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ฌธ์ œ๊ฐ€ ํ•‘(ping)์„ ๋ฐ›๊ฑฐ๋‚˜ ์ง‘์ค‘๋„๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ ์ƒ์œ„์— ๋ฒ„๋ธ”๋ง์„ ์‹œ๋„ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์™„๋ฒฝํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Amine-Smahi ์—ฌ๊ธฐ ์…ธ์šฉ ํ”„๋กœ์ ํŠธ ๋ณด๋“œ์™€ ์šฐ๋ฆฌ๊ฐ€ ์ฐจ๋‹จ๊ธฐ๋กœ ๋ณด๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/projects/54

์ œ๊ฐ€ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋ง์”€ํ•˜์‹  ๋ฌธ์ œ๋ฅผ ์•Œ๋ ค ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@PureWeen

@davidortinau ์˜ ์˜๊ฒฌ์ด ์–ด๋–ป๊ฒŒ ๋‹น์‹ ์—๊ฒŒ ๋ถ€์กฑํ•ฉ๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋งํ•˜๊ณ  ์žˆ๋Š” ์š”์ ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ณต๊ฐœ PR๊ณผ ๋ฒ„๊ทธ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ณ  ๊ฒฐ๊ตญ ์šฐ๋ฆฌ์˜ ์ตœ์‹  .net 6 ๊ธฐ๋ฐ˜ ์ œํ’ˆ์ด ๋  .net maui์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ด ๋ฌธ์ œ๋Š” XF์˜ ๋ฒ„๊ทธ ์ˆ˜ ๊ทธ ์ด์ƒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๊ณต๊ฐœ๋œ ๋ฒ„๊ทธ ์™ธ์— ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ณต๊ฐœํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๋ฏธํ•ด๊ฒฐ ๋ฒ„๊ทธ์— ๊ด€ํ•œ ๊ฒƒ์ด๋ฉฐ ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ๋„ˆ๋ฌด ๋งŽ์€ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค !!! ๊ทธ๋ƒฅ ๋ฌด์‹œํ•˜๊ณ  ์ƒˆ๋กœ ์—ฌ๋Š” ๊ฒŒ ๋ฌด์Šจ ์†Œ์šฉ์ด์•ผ...

์˜ˆ๋ฅผ ๋“ค์–ด ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ์ค‘์š”ํ•œ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋Š” Microsoft ํŒ€์ด ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๋•Œ xamarin์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ํ”ผ๋“œ๋ฐฑ์ด ๋“ค๋ฆฌ๋‚˜์š”? ์ด๊ฒƒ์ด ์ข‹์€ ์ƒ๊ฐ์ด๋ผ๋Š” ๊ฒƒ์„ ๋‹น์‹ ์—๊ฒŒ ํ™•์‹ ์‹œํ‚ค๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์—ด์–ด์•ผํ•ฉ๋‹ˆ๊นŒ ???

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ด ๋ฌธ์ œ๋Š” XF์˜ ๋ฒ„๊ทธ ์ˆ˜ ๊ทธ ์ด์ƒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ์ƒ์‚ฐ์ ์ด์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

XF์— ๋Œ€ํ•œ ๊ณต๊ฐœ ๋ฒ„๊ทธ/prs/์ทจ์•ฝ์„ฑ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์—†๋Š” ๋‹ค๋ฅธ ์˜๊ฒฌ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด ์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ์ค‘์š”ํ•œ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋Š” Microsoft ํŒ€์ด ์•ฑ์„ ๊ฐœ๋ฐœํ•  ๋•Œ xamarin์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ํ”ผ๋“œ๋ฐฑ์ด ๋“ค๋ฆฌ๋‚˜์š”? ์ด๊ฒƒ์ด ์ข‹์€ ์ƒ๊ฐ์ด๋ผ๋Š” ๊ฒƒ์„ ๋‹น์‹ ์—๊ฒŒ ํ™•์‹ ์‹œํ‚ค๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์—ด์–ด์•ผํ•ฉ๋‹ˆ๊นŒ ???

์˜ˆ, ๋ง ๊ทธ๋Œ€๋กœ ๋ชจ๋“  ์‚ฌ๋žŒ์ด Xamarin์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๋“ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์•ฑ ์„ ํƒ์— ๋Œ€ํ•ด ๋‚ด๋ถ€ ํŒ€๊ณผ ๋งŽ์€ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋ฉฐ ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๋…ผ์˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‚ด๋ถ€ ํ† ๋ก ์˜ ๋Œ€๋ถ€๋ถ„์€ .NET Maui์˜ ๋ฐฉํ–ฅ์„ ์•ˆ๋‚ดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

@PureWeen ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ XF์— ๋ฒ„๊ทธ๊ฐ€ ๋„ˆ๋ฌด

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

  1. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฅผ
  2. ๊ธฐ๋Šฅ๋ณด๋‹ค ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ •๋ฆฌ ์ฝ”๋“œ๋ฅผ
  3. ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์„
  4. .Net ์„
  5. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ปจํŠธ๋กค์„ ๋จผ์ € ์ˆ˜์ • ํ•œ ๋‹ค์Œ ๋‚˜๋จธ์ง€ ์ปจํŠธ๋กค์„
  6. Jettison ์ด์ „ ๋Œ€์ƒ OS ๋ฐ ์ด์ „ ํŽธ์ง‘์ž ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋ฉฐ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.
  7. ๊ณต๊ฐœ์ ์œผ๋กœ ๋ฒ„๊ทธ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•ด ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์กฐ์ง์ด ๋ฒ„๊ทธ์— ์ง‘์ค‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ธ”๋กœ๊ทธ์˜ ์ฒซ ๋ฒˆ์งธ ์„น์…˜์œผ๋กœ ๋ฒ„๊ทธ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ธฐ๋กํ•˜์„ธ์š”.
  8. ๊ธฐ๋Šฅ ์„

์šฐ๋ฆฌ์˜ ๊ฒฝํ—˜: ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ์‹ ๋ขฐํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ XF ๋ณด๊ธฐ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Label, Entry, Button, Picker, Switch, DatePicker, Slider, StackLayout, ScrollView, ContentView, Grid, ContentPage. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋•Œ์—๋„ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋ช‡ ๋‹ฌ ๋™์•ˆ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. XF์— ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€์‹  ๋ Œ๋”๋Ÿฌ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์ฝ”๋“œ์— ๋ถ™์—ฌ๋„ฃ์Šต๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๋” ์‰ฝ๊ฒŒ ๊ธฐ์—ฌํ•˜๊ณ  ๊ธฐ์—ฌ๋ฅผ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ Œ๋”๋Ÿฌ ์•„ํ‚คํ…์ฒ˜๋Š” ์ฝ”์–ด์—์„œ XAML์„ ๋Œ€์ฒดํ•˜๊ณ  ๋ Œ๋”๋Ÿฌ์— ๋ณด๋‹ค ์œ ํ˜•์ด ์•ˆ์ „ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๊ณ„ํš์ž…๋‹ˆ๋‹ค. https://github.com/dotnet/maui/issues/147 ํŒ”๋กœ์šฐํ•˜๊ฑฐ๋‚˜ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฆฌ ํ‘œ์‹œ์ž ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ๋ณด๋‹ค ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์ •๋ฆฌ ์ฝ”๋“œ๋ฅผ ์šฐ์„ ์‹œํ•˜์‹ญ์‹œ์˜ค. Xamarin์˜ ๋ฌธํ™”๋Š” ๋ฒ„๊ทธ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ํ’ˆ์งˆ ์ž„๊ณ„๊ฐ’์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ ์ƒˆ ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ๊ธˆ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋Œ€๋ถ€๋ถ„ ์šฐ๋ฆฌ์˜ ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
.Net์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ๋ฒ„๊ทธ๋ฅผ ์ค„์ด์‹ญ์‹œ์˜ค. ๊ฐ€๋Šฅํ•œ ํ•œ ์œ ํ˜• ์‹œ์Šคํ…œ ๋‚ด๋ถ€์— ๋ณด๊ด€ํ•˜๊ณ  C# 8 NRT๋ฅผ ์ฑ„ํƒํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ์ฒœ์ฒœํžˆ ์šฐ๋ฆฌ์˜ ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ „์ฒด ๋ฒ”์œ„๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด vs2017 ์ง€์›์„ ์ค‘๋‹จํ•œ ํ›„ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆ˜๋งŽ์€ ์˜๊ฒฌ์„ ๋ฐ›์€ ์ด ๋ฌธ์ œ๊ฐ€ ์—ฌ๊ธฐ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
https://github.com/xamarin/Xamarin.Forms/issues/7602

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ ํ”„๋ฅผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” 100% ๊ทธ ๋„์•ฝ์„ ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์„ ๋ฌด๋„ˆ๋œจ๋ฆด ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋„์•ฝ์— ๋Œ€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ์ง€์†์ ์œผ๋กœ ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๊ธฐ PR
https://github.com/xamarin/Xamarin.Forms/pull/10937

๋‚ด๋ถ€ CI ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜์—ฌ C# 8 ๋ฐ ๊ธฐํƒ€ ๋ฒ ํƒ€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ผ๋‹จ ๋„์•ฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์‰ฝ๊ฒŒ ๋„์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ปจํŠธ๋กค์„ ๋จผ์ € ์ˆ˜์ •ํ•œ ๋‹ค์Œ ๋‚˜๋จธ์ง€ ์ปจํŠธ๋กค์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
Jettison ์ด์ „ ๋Œ€์ƒ OS ๋ฐ ์ด์ „ ํŽธ์ง‘์ž๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋ฉฐ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์šฐ๋ฆฌ์˜ ๊ณ„ํš์ž…๋‹ˆ๋‹ค

๊ณต๊ฐœ์ ์œผ๋กœ ๋ฒ„๊ทธ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•ด ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์กฐ์ง์ด ๋ฒ„๊ทธ์— ์ง‘์ค‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ธ”๋กœ๊ทธ์˜ ์ฒซ ๋ฒˆ์งธ ์„น์…˜์œผ๋กœ ๋ฒ„๊ทธ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ธฐ๋กํ•˜์„ธ์š”.

์ด๊ฒƒ์— ๋Œ€ํ•ด ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. @samhouts ๋Š” ๋งค ์Šคํ”„๋ฆฐํŠธ๋งˆ๋‹ค ์ด๋Ÿฌํ•œ ๋ณด๊ณ ์„œ๋ฅผ ๋งŽ์ด ์‹คํ–‰ํ•˜๋ฏ€๋กœ ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ๊ด€์ ์ด ์žˆ์ง€๋งŒ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋” ์ž˜ ๋…ธ์ถœ๋˜๋„๋ก ์กฐ์‚ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜์—ฌ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ .net MAUI์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ๊ณ„ํš์ž…๋‹ˆ๋‹ค. .NET MAUI ๊ณ„ํš์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋” ํšจ๊ณผ์ ์œผ๋กœ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์˜์—ญ ๋ชฉ๋ก์„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์˜ ํฐ ๋ถ€๋ถ„์€ ๋ Œ๋”๋Ÿฌ ์ž‘์—…์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์–ธ๊ธ‰๋œ ๋ฌธ์ œ ์™ธ์—๋„ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ์–ธ์–ด์™€ ๊ด€๋ จ๋œ ๋งŽ์€ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Xamarin Forms Team์˜ ๊ด€์ ์—์„œ ์ด๋Ÿฌํ•œ ๋ฒ„๊ทธ๋Š” ๋œ ์ค‘์š”ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค(์•„๋งˆ๋„ ์˜์–ด๋‚˜ ๋‹ค๋ฅธ ์™ผ์ชฝ์—์„œ๋ณด๋‹ค ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ ์–ธ์–ด์˜ ์‚ฌ์šฉ์ด ์ ๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ์–ธ์–ด), ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๋ฌธํ™”์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ง€์› ๋ถ€์กฑ์€ ์‹ค๋ง์Šค๋Ÿฝ๊ณ  ์‹ค๋ง์Šค๋Ÿฝ๊ณ  ์‹ค์ œ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตญ์ œ/๋‹ค๊ตญ์–ด/์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ ์•ฑ์—์„œ XF๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”.

๋‹ค์Œ 2๊ฐœ์›” ๋œ ๋ฌธ์ œ: https://github.com/xamarin/Xamarin.Forms/issues/11166
๋ฒ„๊ทธ ์ƒ์„ฑ 6์›” 22์ผ
PR์ด 6์›” 25์ผ์— ์—ด๋ ธ์Šต๋‹ˆ๋‹ค.
๋ฒ„๊ทธ ์ƒํƒœ 8์›” 17์ผ: ์•„์ง ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์™œ์š”? ;(

@PawKanarek Xamarin์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํŒ€์—์„œ ๋งŒ๋“  ์ˆ˜์ • ์‚ฌํ•ญ์ด๋‚˜ Prs๋งŒ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด Xamarin์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์ด ๋‚™๋‹ด๋˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ํŒ€์˜ ๋Šฅ๋ ฅ์„ ๊ฐ์†Œ์‹œ์ผฐ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. 2-3๋ช…๋งŒ ํ”„๋กœ์ ํŠธ์— ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ž์ฒด xamarin nuget ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•˜์„ธ์š”.

@EmilAlipiev ํ•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” PR(#11166์šฉ)์ด Xamarin ํŒ€ ๊ตฌ์„ฑ์›์— ์˜ํ•ด ์—ด๋ ธ์ง€๋งŒ ์•„์ง ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค ์ •๋ณด์™€ GitHub ์ธ์‚ฌ์ดํŠธ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ˆ˜๋งŽ์€ PR์„ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ตœ๊ทผ ๋ช…๋‹จ ์— ์ด๋ฆ„์ด ๋ณด์ด๋„ค์š” @EmilAlipiev :)

์ง€๋‚œ ๋‹ฌ ์— 18๋ช…์˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด 40๊ฐœ์˜ ์ƒˆ๋กœ์šด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์—ด์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” ์™„์ „ํžˆ ํ…Œ์ŠคํŠธ๋˜๊ณ  ๊ฒ€ํ† ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์šฐ๋ฆฌ๊ฐ€ ๋ฐ›๋Š” ์–‘์— ๋”ฐ๋ผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—†๋Š” ์ฐจ๋‹จ ๋ฌธ์ œ์™€ ์ฃผ์š” ํšŒ๊ท€์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ํ•ญ์ƒ ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ๋งค์ผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ ค ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ํ•จ๊ป˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

@hamiddd1980 ์šฐ๋ฆฌ๊ฐ€ ์ง€๋‚œ ๋ช‡ ๋‹ฌ ๋™์•ˆ RTL์— ๋Œ€ํ•ด ๊ฝค ๋งŽ์€ ์ž‘์—…์„ ํ•ด ์™”๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์–ด ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์˜ ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

@samhouts ๋‹น์‹ ์€ Xamarin์˜ ์ตœ์ข… ์ œํ’ˆ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค. ์ธ๋‚ด์‹ฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋งŽ์€ ์ธ์  ์ž์›๊ณผ ๋ˆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. github์˜ ๋ชจ๋“  ๊ณต๊ฐœ ๋ฐ ํ™•์ธ๋œ ๋ฒ„๊ทธ๋Š” ๊ธฐ์ˆ  ๋ถ€์ฑ„, ๋ถ„๋…ธ ๋ฐ ๊ณ ๊ฐ๊ณผ์˜ ๋ถˆํ•„์š”ํ•œ ๊ธด์žฅ์˜ ํ˜•ํƒœ๋กœ ๋ˆˆ๋ฉ์ด ํšจ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋ง๊ณ  ๋” ๋งŽ์€ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋Šฅ๋ณด๋‹ค ์•ˆ์ •์„ฑ. ์•„์ง 1,590๊ฐœ์˜ ํ™•์ธ๋œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/xamarin/Xamarin.Forms/issues?q=is%3Aopen+is%3Aissue+-label%3As%2Funverified+label%3A%22t%2Fbug+%3Abug%3A% 22

@samhouts ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋ฃจ์— 1-2๊ฐœ์˜ ๋ณ‘ํ•ฉ์€ ๊ทนํžˆ ์ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋‹ค๋ฅธ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋„๊ตฌ์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ง€๋‚œ ๋‹ฌ์— ํ•˜๋ฃจ์— 15๊ฐœ์˜ ๋ณ‘ํ•ฉ์ด 455๊ฐœ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ์ „ํžˆ Xamarin์„ ๋„๊ตฌ๋กœ ๋” ์‚ฌ๋ž‘ํ•˜๊ณ  ํ•ญ์ƒ ๊ธฐ์—ฌํ•  ์˜ํ–ฅ์ด ์žˆ์ง€๋งŒ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐ 2๊ฐœ์›” ์ด์ƒ์ด ๊ฑธ๋ ธ๊ณ  ๋‹ค๋ฅธ ์ง€์ ์—์„œ rebased๋กœ ์ด ๋ณ‘ํ•ฉ์„ 3๋ฒˆ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ์™ธ์—๋„ ๊ท€ํ•˜์˜ ์šฐ์„  ์ˆœ์œ„ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ Device.Idiom.. ๋˜๋Š” CollectionView ๋ฒ„๊ทธ์™€ ๊ฐ™์€ ๋ฒ„๊ทธ์™€ ๊ฐ™์€ ํ•ต์‹ฌ ๋„๊ตฌ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ•„์‚ฌ์ ์œผ๋กœ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ค๋Š˜์€ ์ง€๊ธˆ๊นŒ์ง€ ์ด 8๊ฐœ์˜ ๋ณ‘ํ•ฉ์ด ์‹ค์ œ๋กœ ํฌ๊ฒŒ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณ‘ํ•ฉ ์•„๋ž˜์—์„œ ์ •์งํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์Šค์™€์ดํ”„ ๋ณด๊ธฐ, ๊ทธ๋ผ๋””์–ธํŠธ ๋ธŒ๋Ÿฌ์‹œ ๋˜๋Š” ํ…Œ๋งˆ ๋“ฑ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์ ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ค‘์š”ํ•œ PR์ด ๋ช‡ ๋‹ฌ ๋™์•ˆ ๋Œ€๊ธฐ์—ด์— ์žˆ์„ ๋•Œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ฏฟ๋Š” ๊ฐ€์žฅ ํฐ ์ขŒ์ ˆ์ด๋‹ค.

image

github์˜ ๋ชจ๋“  ๊ณต๊ฐœ ๋ฐ ํ™•์ธ๋œ ๋ฒ„๊ทธ๋Š” ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ˆ˜์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋” ๋งŽ์€ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ์ €๋„ ๊ณต์œ ํ•˜๋Š” ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—„๊ฒฉํ•˜๊ฒŒ ๋งํ•ด์„œ MAUI<>Xamarin.Forms ์ „ํ™˜ ๊ณ„ํš์€ ์ด๋ฏธ ์ด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. Xamarin.Forms๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • ๋ชจ๋“œ๋กœ๋งŒ ์ „ํ™˜๋˜๊ณ  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์€ Maui์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

(์ด ๊ฒฝ์šฐ, ์ด๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ํšŒ๊ท€ ํ…Œ์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋„๋ก PR์„ ์š”๊ตฌํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒฝ์šฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ์—ฌํ•œ PR์— ๋Œ€ํ•œ ๊ฒ€ํ† ๊ฐ€ ์ ์  ๋” ๊ธธ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๋˜ํ•œ ์ ˆ์ถฉ์ ์ž…๋‹ˆ๋‹ค.)

์ „์ ์œผ๋กœ. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๋„ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ๋Š” ์ ˆ์ถฉ์•ˆ์ž…๋‹ˆ๋‹ค. ์ž๋™ํ™”๋œ ์ˆ˜์ฒœ(!) ๊ฐœ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ ์—ฌ๋Ÿฌ ์žฅ์น˜์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„(ํ˜„์žฌ ์žฅ์น˜๋‹น ์‹คํ–‰๋‹น ์•ฝ 4์‹œ๊ฐ„)์ด ๊ฑธ๋ฆฌ๊ณ  ๋ถˆํ–‰ํžˆ๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ์ธํ•ด ๋•Œ๋•Œ๋กœ ์•ฝ๊ฐ„ ๋ถˆ์•ˆ์ •ํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์–ด์ œ ํ•ฉ๋ฒ•์ ์œผ๋กœ ์‹คํŒจํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•ด ๊ธฐ๊ณ ์ž์—๊ฒŒ ํ•‘์„ ์ณค๋Š”๋ฐ, Chrome์—์„œ ์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์•ฝ๊ด€์— ๋™์˜ํ•˜๋„๋ก ์š”์ฒญํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ์‹คํŒจํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๐Ÿคฆ

์ด๋กœ ์ธํ•ด ๋งŽ์€ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๊ณ  PR์ด ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ๋ฐ ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ ๋ชซ์ด๊ณ , ์šฐ๋ฆฌ๊ฐ€ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋‹คํ–‰ํžˆ๋„ ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ›จ์”ฌ ๋” ์•ˆ์ •์ ์ด๊ณ  ๋น ๋ฅธ UI ์ž๋™ํ™”๋ณด๋‹ค ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์— ๋” ๊ฐ€๊นŒ์šด ํ”Œ๋žซํผ ๋ Œ๋”๋Ÿฌ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ๊นŒ์ง€... @knocte๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ์ „ํ™˜ ๊ณ„ํš์€ ์ด๋ฅผ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. .NET MAUI์˜ ๋ชฉํ‘œ๋Š” ๊ฐ„๊ฒฐํ•˜๊ณ  ๋น ๋ฅด๋ฉฐ ์•ˆ์ •์ ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ผํ™˜์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๊ธฐ๋Šฅ์ด ํ•ต์‹ฌ ํ”„๋กœ์ ํŠธ์— ์‹ค์ œ๋กœ ์†ํ•˜๊ณ  ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์ƒˆ๋กœ์šด Community Toolkit์— ๋” ์ ํ•ฉํ•œ์ง€ ํ‰๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ ํ•ญ์ƒ ๊ท€ํ•˜์™€ ๊ท€ํ•˜์˜ ๊ณ ๊ฐ์„ ์—ผ๋‘์— ๋‘๊ณ  ์žˆ์œผ๋ฉฐ ๊ท€ํ•˜์˜ ํ”ผ๋“œ๋ฐฑ์— ๊ท€๋ฅผ ๊ธฐ์šธ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ด€๋ จ ๋ฌธ์ œ

jsuarezruiz picture jsuarezruiz  ยท  3์ฝ”๋ฉ˜ํŠธ

probonopd picture probonopd  ยท  50์ฝ”๋ฉ˜ํŠธ

jsuarezruiz picture jsuarezruiz  ยท  6์ฝ”๋ฉ˜ํŠธ

Joshua-Ashton picture Joshua-Ashton  ยท  9์ฝ”๋ฉ˜ํŠธ

jsuarezruiz picture jsuarezruiz  ยท  7์ฝ”๋ฉ˜ํŠธ