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.Forms๋ 2015๋ ์ ๋ฒ๊ทธ๊ฐ ์์๊ณ Xamarin.Forms๋ 2018๋ ์ ๋ฒ๊ทธ๊ฐ ์์๊ณ Xamarin.Forms๋ ๋ฒ๊ทธ๊ฐ ์ฒ์ฒํ ์์ ๋๋ฉด MAUI๊ฐ ๋ฆด๋ฆฌ์ค๋๋ 2021๋ ์๋ ์ฌ์ ํ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค.
์ด๋ ์ด๋ฐํ ๋ง๊ฐ ์๊ฐ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์ ์ฉํ๋ ๋ฐ ์๊ฐ์ ํ๋นํด์ผ ํ๋ ์ฌ๋๋ค์๊ฒ๋ ๋์ ํ ๋ฐ์๋ค์ผ ์ ์๋ ์ผ์ ๋๋ค.
MAUI๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ ํ ๋น ๋ฅธ ๋ฒ๊ทธ ์์ ํ๋ก์ธ์ค๊ฐ ์์ด์ผ ํฉ๋๋ค. ๊ฐ์ ๋ฐฉ๋ฒ์ ๋ํ ์๊ฐ์ด ์์ต๋๊น?
7049๋ ๋ฒ๊ทธ ๋ณด๊ณ 7์ผ ํ PR์ ๋ณํฉํด๋ ๋กค์์ํ๋ ๋ฐ 1๊ฐ์ ์ด์ ์์๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ ๋ฆฌํ์คํธ๋ฅผ ์ด๋ฉด Xamarin์ ๋ด๋น์๊ฐ ๋ณ๊ฒฝ๋ ํ์ผ์ ์ดํด๋ณผ ์๊ฐ์ ํ ์ ํ ๋๊น์ง ์ฌ์ ํ ์์ฒญ์ด ๋ฆผ๋ณด ์ํ์ ๋น ์ง ์ ์์ต๋๋ค.
ํ์ด PR + ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค์ ๊ด๋ จ๋ ๋ณ๋ชฉ ํ์์ ์ ๊ฑฐํ ๊ณํ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทธ๋ฆฌ๊ณ , ๋์ ๊ฐ์์ฑ ๋ฌธ์ ์์ ์ธ๊ธ๋ ํ Xamarin.Forms ํ์ ๋๊ตฐ๊ฐ๊ฐ ๋ง์นจ๋ด https://github.com/xamarin/Xamarin.Forms/pull/7728์ ์๋ตํ์ต๋๋ค
๊ทธ๋ฆฌ๊ณ ๋์ ๊ฐ์์ฑ ๋ฌธ์ ์์ ์ธ๊ธ๋ ํ 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๋ฅผ ๋ฌด์ํฉ๋๋ค.
๊ฐ์ฅ ์ค์ํ ์ ; @Reveon์ด ์ธ๊ธํ ๊ฒ. xamarin.forms์ ํจ๊ป ์๋ํ๋ ์ค์ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์ํ๋ฉฐ ์ค์ ๋ฌธ์ ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ์ ๋ฆด๋ฆฌ์ค๋ก ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ๊ทธ๋ค์ "๋ฐ์ฑํ๋ ๊ฒ์ด ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์๋ค"๊ณ ๋ถํํฉ๋๋ค. ์, ์ด ๋ฌธ์ ๊ฐ ํ ์ผ ์ฑ์ด ์๋ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ง ๋ฐ์ํ๋ค๋ฉด ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ๋์ผํ UI๋ฅผ ๋ณต์ ํ๋ ค๊ณ ์๋ํด์ผ ํฉ๋๋ค. ์์๋ผ ๋๊น์ง ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ์ง ์ฌ๋์ด ์์ด์ผ ํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค. twitch, youtube, twitter ๋ฑ์์ ๋ณผ ์ ์๋ Xamarin ๊ฐ๋ฐ์ ์ค xamarin.forms๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์ด ์๋์ง ์ ๋ง ๊ถ๊ธํฉ๋๋ค.
๋น ์คํ ์์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ข์ํ์ง ์์ง๋ง ๋ด ์ฑ์ 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๋ก ์ ๋ฐ์ดํธํ ํ ๋ด ์ฑ์ด ์ถฉ๋ํ๊ธฐ ๋๋ฌธ์ ์ข์ ๊ฐ์ ๋๋๋๋ค. ๋ฌผ๊ฑด์ด ์๋ํด์ผ ํฉ๋๋ค. ์ผ๋ถ ์ปจํธ๋กค์ด๋ ๋ ์ด์์์ด ๋จ์ํ ํจ๊ป ์ ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ธ ๋ฒ์งธ๋ก ๋ ์ด์์์ ๋ค์ ์์ฑํด์ผ ํ๋ ๊ฒ์ ์๋๋๋ค.
๋ช ๊ฐ์ง ๊ด๋ จ ํฌ์ธํธ๊ฐ ๋ณด์ ๋๋ค.
- ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด Forms์์ ์์ ํ๋์ง ๋ชจ๋ฅด์ง๋ง ์ ๊ฐ ๋ณด๊ธฐ์๋ ํ์ด ๋๋ฌด ์์์ ์๋ก์ด ๋ฒ๊ทธ๋ PR์ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ ์๋๋ฅผ ๋ฐ๋ผ์ก์ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. Forms์ Maui ์ฌ์ด์ ์ฃผ์๋ฅผ ๋ถ์ฐ์์ผ์ผ ํ๋ฏ๋ก ์ํฉ์ด ๋์ฑ ์ ํ๋ ๊ฒ์ ๋๋ค. ํ์ด ๊ณง ์๋นํ ๋ฐ์ ์ ์ด๋ฃจ๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋๋๋ค.
- Microsoft๊ฐ ์ค์ ๋ก ์์ฒด ์ฑ์์ Forms๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ค๋ฉด ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋จ์ํ ๋ฐ๋ชจ๋ ํ์ ์ฑ์ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. Teams ๋๋ Outlook๊ณผ ๊ฐ์ ์ค์ ์ฑ์ ์๋ฏธํฉ๋๋ค. ๋ด๊ฐ ์ด๊ฒ์ ๋ํด ํ๋ ธ๋ค๋ฉด ๊ธฐ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ ์์ MS Forms ์ฑ์ ์ฐพ์ง ๋ชปํ๊ณ ์ด ํธ์๊ณผ ๊ฐ์ ์ผ๋ถ ์ถ์ฒ์ ๋ฐ๋ฅด๋ฉด https://twitter.com/safaiyeh/status/1219294459298344961 ๊ทธ๋ค์ ์ฃผ๋ก ๋ฐ์ํฉ๋๋ค. ํ ์ข ์.
- MS๊ฐ ์์ฒด ๊ธฐ์ (XF)์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ข์ ์ ํธ๋ฅผ ๋ณด๋ด์ง ๋ชปํฉ๋๋ค.
- ๋ณต์กํ ์ฑ์์ ๋ด๋ถ์ ์ผ๋ก Forms๋ฅผ ์ฌ์ฉํ๋ฉด ์ถ๊ฐ ํ ์คํธ ๊ณ์ธต์ด ๋ ์ ์์ผ๋ฉฐ ๊ณต๊ฐ ๋ฆด๋ฆฌ์ค์ ์ํฅ์ ๋ฏธ์น๋ ๋ฌธ์ ์ ์๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๋ํ ๊ทธ๋ค์ Forms๋ก ์์ ํ๋ ๊ฒ์ด ๊ทธ๋ค์ด ๋งํ๋ ๊ฒ๋งํผ ์ฝ์ง ์๋ค๋ ๊ฒ์ ์ ์ ์์์ต๋๋ค.
- 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, ์ ์ฌ์ ๋ฒ๊ทธ ํฌ์ธํธ:
@davidortinau ๋ , ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์ข์ ๋ฐฉ๋ฒ์ ๊ณต๊ฐ์ ์ผ๋ก ๋๊ตฐ๊ฐ๋ฅผ ์์ ํ ์ฐธ์ฌํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ/๊ทธ๋
๋ ๋ฌธ์ ๊ฐ ๋๋ฌด ๋๋ฆฌ๊ฒ ์งํ๋๋ ๊ฒฝ์ฐ ์ฐ๋ฆฌ์ ์ฐ๋ฝ ๋ด๋น์๊ฐ ๋์ด ์งํ ์ํฉ์ ์ค๋ช
ํ ์ ์์ต๋๋ค.
๋ํ ๋ฒ์ ์ฅ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋๊ตฐ๊ฐ๊ฐ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ฑฐ๋ ์จ๋ผ์ธ์ผ๋ก 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์ ์ด ๋ฌธ์ ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค .
์ฌ๊ธฐ ์ฌ๋๋ค์ด ๋ด๊ฐ ํ๋ ค๊ณ ํ๋ ๋๋ถ๋ถ์ ์ธ๋ถ ์ฌํญ์ ํ๋ฅญํ๊ฒ ์ค๋ช ํ์ผ๋ฏ๋ก ๋นจ๋ฆฌ ๋งํ๊ฒ ์ต๋๋ค.
๊ธฐ์ ์ ๋ฌธ์
๊ธฐ์ ์ ์ด์ง ์์
์๋ฃจ์
๋ด ๊ณต๊ฒฉ์ ์ธ ํ๋๊ณผ ๋์ ์์ด์ ๋ํด ๋งค์ฐ ์ ๊ฐ์ค๋ฝ๊ฒ ์๊ฐํฉ๋๋ค. ์ ๋ 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๋ฅผ ๋ฒ ํ ํ์ง์์ ์์ ์ํ๋ก ๋ง๋๋ ๊ฒ์ ๋งค์ฐ ํฐ ์์ ์ด๋ฉฐ ๋น ๋ฅธ ์์ ์ด๋ ๋จ์ผ ์ ๋ต์ผ๋ก๋ ์ด๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ์กฐ์ง์ , ์ฒ ํ์ , ๊ตฌ์กฐ์ ๋ณํ๊ฐ ํ์ํฉ๋๋ค. ๋ด๊ฐ ์ ์ ํ ๊ฒ:
์ฐ๋ฆฌ์ ๊ฒฝํ: ์ฐ๋ฆฌ๋ ์ฌ์ฉํ ์ ์๋ ๋ค๋ฅธ ๊ฒ์ ์ ๋ขฐํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ 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์ด ๋ช ๋ฌ ๋์ ๋๊ธฐ์ด์ ์์ ๋์
๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ ๋ฏฟ๋ ๊ฐ์ฅ ํฐ ์ข์ ์ด๋ค.
github์ ๋ชจ๋ ๊ณต๊ฐ ๋ฐ ํ์ธ๋ ๋ฒ๊ทธ๋ ์ต๋ํ ๋นจ๋ฆฌ ์์ ๋์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๋ถ๋ช
ํ ๋นํ์ค์ ์
๋๋ค. Microsoft๊ฐ Xamarin.Forms ํ ๊ท๋ชจ๋ฅผ ํฌ๊ฒ ๋๋ฆฐ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
๊ทธ๋ค์ ๋ ์ด์ฌํ ์ผํ์ง ์๊ณ ๋ ๋๋ํ๊ฒ ์ผํ๋ค๊ณ ๋งํฉ๋๋ค(์ด ๊ฒฝ์ฐ ์ด๋ PR์ ํ๊ท ํ
์คํธ๋ฅผ ํฌํจํ์ฌ ๋ฒ๊ทธ๊ฐ ๋ค์ ๋ํ๋์ง ์๋๋ก ํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํด์ผ ํฉ๋๋ค. PR์ ์ ์ ๋ ๊ธธ์ด์ง ๊ฒ์
๋๋ค).
๋ ๋ง์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ง ๋ง์ญ์์ค.
์ด๊ฒ์ ์ ๋ ๊ณต์ ํ๋ ์๊ฒฌ์ ๋๋ค. ๊ทธ๋ฌ๋ ์๊ฒฉํ๊ฒ ๋งํด์ MAUI<>Xamarin.Forms ์ ํ ๊ณํ์ ์ด๋ฏธ ์ด๋ฅผ ํฌํจํฉ๋๋ค. Xamarin.Forms๋ ๋ฒ๊ทธ ์์ ๋ชจ๋๋ก๋ง ์ ํ๋๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ Maui์๋ง ์ ์ฉ๋ฉ๋๋ค.
(์ด ๊ฒฝ์ฐ, ์ด๋ ๋ฒ๊ทธ๊ฐ ๋ค์ ๋ํ๋์ง ์๋๋ก ํ๊ธฐ ์ํด ํ๊ท ํ ์คํธ๋ฅผ ํฌํจํ๋๋ก PR์ ์๊ตฌํด์ผ ํจ์ ์๋ฏธํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ์ฌํ PR์ ๋ํ ๊ฒํ ๊ฐ ์ ์ ๋ ๊ธธ์ด์ง๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ํ ์ ์ถฉ์ ์ ๋๋ค.)
์ ์ ์ผ๋ก. ์ด๊ฒ์ ์ฐ๋ฆฌ๋ ์ด๋ ค์์ ๊ฒช๊ณ ์๋ ์ ์ถฉ์์ ๋๋ค. ์๋ํ๋ ์์ฒ(!) ๊ฐ์ ํ ์คํธ๊ฐ ์์ผ๋ฉฐ ์ฌ๋ฌ ์ฅ์น์์ ์คํํฉ๋๋ค. ๋ฌธ์ ๋ ์๋ฃํ๋ ๋ฐ ๋ช ์๊ฐ(ํ์ฌ ์ฅ์น๋น ์คํ๋น ์ฝ 4์๊ฐ)์ด ๊ฑธ๋ฆฌ๊ณ ๋ถํํ๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ธํด ๋๋๋ก ์ฝ๊ฐ ๋ถ์์ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด์ ํฉ๋ฒ์ ์ผ๋ก ์คํจํ๋ค๊ณ ์๊ฐํ๋ ํ ์คํธ์ ๋ํด ๊ธฐ๊ณ ์์๊ฒ ํ์ ์ณค๋๋ฐ, Chrome์์ ์๋ก์ด ์๋น์ค ์ฝ๊ด์ ๋์ํ๋๋ก ์์ฒญํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์คํจํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๐คฆ
์ด๋ก ์ธํด ๋ง์ ์ง์ฐ์ด ๋ฐ์ํ๊ณ PR์ด ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๋ฐ ๋ฉฐ์น ์ด ๊ฑธ๋ฆด ์ ์์์ ์๋ฏธํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ ๋ชซ์ด๊ณ , ์ฐ๋ฆฌ๊ฐ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ์ ๋๋ค.
๋คํํ๋ ์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํจ์ฌ ๋ ์์ ์ ์ด๊ณ ๋น ๋ฅธ UI ์๋ํ๋ณด๋ค ๋จ์ ํ ์คํธ์ ๋ ๊ฐ๊น์ด ํ๋ซํผ ๋ ๋๋ฌ๋ฅผ ํ ์คํธํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๊ฒ๊น์ง... @knocte๊ฐ ๋งํ๋ฏ์ด ์ ํ ๊ณํ์ ์ด๋ฅผ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์์ต๋๋ค. .NET MAUI์ ๋ชฉํ๋ ๊ฐ๊ฒฐํ๊ณ ๋น ๋ฅด๋ฉฐ ์์ ์ ์ธ ๊ฒ์ ๋๋ค. ๊ทธ ์ผํ์ผ๋ก ์ฐ๋ฆฌ๋ ์ด๋ค ๊ธฐ๋ฅ์ด ํต์ฌ ํ๋ก์ ํธ์ ์ค์ ๋ก ์ํ๊ณ ์ด๋ค ๊ธฐ๋ฅ์ด ์๋ก์ด Community Toolkit์ ๋ ์ ํฉํ์ง ํ๊ฐํ๊ณ ์์ต๋๋ค.
๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋ ํญ์ ๊ทํ์ ๊ทํ์ ๊ณ ๊ฐ์ ์ผ๋์ ๋๊ณ ์์ผ๋ฉฐ ๊ทํ์ ํผ๋๋ฐฑ์ ๊ท๋ฅผ ๊ธฐ์ธ์ด๊ณ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํ์ง์ ํญ์ 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์ ํํ๋ก ๊ณ์ํด์ ๋ฐํด๋ฅผ ์ฌ๋ฐ๋ช ํ๋ ค๊ณ ํ๋ค๋ ์ฌ์ค์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋ด ๋๋ค. ๊ทธ๋ค์ ์ด๋ฏธ ์กด์ฌํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ณ ๊ทธ๋ก ์ธํด ๋์ ๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ฐ ์๊ฐ์ ํฌ์ํด์ผ ํ๋ฉฐ ๋ค๋ฅธ ๊ธฐ๋ฅ ๋ฐ ๋ฒ๊ทธ ์์ ์ ์ํ ์๊ฐ์ด ์ค์ด๋ญ๋๋ค.