Flutter ๋๋ถ์ ๋ง์ xamarin ํฌ์ด ์ด๋์์๋ ๋ณผ ์ ์๋ @Mike-EEE๋ฅผ ์ง์งํ๊ฒ ๊ณ ๋ คํ๊ณ ์์ง๋ง ์ค์ ๋ก @kekekeks๋ ์๋ ๊ฐ ์๋ฐ๋ก๋์๊ฐ ์์์ต๋๋ค.
Skixam, @adamped ๋๋ถ์ flutter์ ๊ฐ์ ๋ ๋ค๋ฅธ ํ๋ซํผ์ ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์ํ ํ๋ก์ ํธ์ ๋๋ค.
Xamarin.Forms๋ ์ฌ๋๋ฐ๊ณ ์ฆ๊ธฐ๊ณ ์์ง๋ง wpf ๋ฐ avalonia์์ ๊ฐ๋ ฅํ ์ฌ์ฉ์ ์ง์ ๊ธฐ๋ฅ์ด ๋ถ์กฑํ ๊ธฐ๋ณธ ๋ํผ ํํ์ "์ ํ๋" ์ถ์ํ์ ๋๋ค. ๋ฐ๋ผ์ ํ์ฌ xf ์ปจํธ๋กค์ ๋ํ ๋ ๋๋ง ์ต์ (๋ํผ ๋ ์คํค์ด ๋...)์ ์ ๊ณตํ๋ Miguel de Icaza์ ์์ด๋์ด๋ Flutter ๋๋ Avalonia์ ์๋ฆ๋ค์์ ์ ๊ณตํ์ง ์์ต๋๋ค.
Skixam์ ํ๋ฅญํ์ง๋ง Xamarin.Forms์ "ํ๋ ํฌํฌ"์ ๋๋ค. Ubiquitous UX๋ ํ๋ฅญํ์ง๋ง ๊ธฐ๋ณธ UX๋ ํ์ํฉ๋๋ค(์: alert ๋ฐ listView ์๋ก ๊ณ ์นจ ์ ๋๋ฉ์ด์ ). ๊ธฐ์กด ๋ํผ ์ปจํธ๋กค์ ์ฌ์ ํ โโ์ข์ต๋๋ค.
๋ฐ๋ผ์ ๋๋ ๊ฒฝ์ํ๊ฑฐ๋ ๋์ฒดํ๋ ๊ฒ์ด ์๋๋ผ ํํ์ ๋ํ ์ํ๊ณ๋ฅผ ๊ฐํํ๋ ์ ๋น์ฟผํฐ์ค ๋ชจ์์ ๋ค๋ฅธ ์ปจํธ๋กค ์ธํธ(Ubis)๊ฐ ์์ด์ผ ํ๋ค๊ณ ์ ์ํฉ๋๋ค. ๋ด ์ ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
UbiGrid, UbiStackPanel, UbiLabel....... ์ ๋น์ค๋ ๊ธฐ์กด ํผ์ API์ ์๋ฌด๋ฐ ๋ณํ ์์ด ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ก์ด ํ๋ซํผ๋ณด๋ค ๋ซ๋ค.
์ค์ฒฉ์ ๊ฒฝ์ฐ "only-ubi"์ ๊ฒฝ์ฐ skixam' ์์ด๋์ด์ฒ๋ผ ๋ ๋๋ฌ๊ฐ ํ๋๋ง ์์ด์ผ ํฉ๋๋ค.
<UbiGrid>
<UbiStackPanel>
<UbiLabel/>
<UbiButton/>
<UbiLabel/>
</UbiStackPanel>
</UbiGrid>
<Grid>
<StackPanel>
<UbiLabel/>
<UbiButton/>
<UbiLabel/>
</StackPanel>
</Grid>
<UbiGrid>
<UbiStackPanel>
<Grid>
<UbiButton/>
</Grid>
<UbiButton/>
<UbiLabel/>
</UbiStackPanel>
</UbiGrid>
<UbiGrid Engine="Skia">
<UbiStackPanel Engine="Urho">
<Grid>
<UbiButton/>
</Grid>
<UbiButton/>
<UbiLabel/>
</UbiStackPanel>
</UbiGrid>
FWIW @juepiezhongren ์ฌ๊ธฐ์์ Ooui๋ฅผ ์กฐ์ฌํ๊ณ ์์ต๋๋ค.
https://github.com/praeclarum/Ooui
Trigger.io ๋ก ํจํค์งํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด iOS, Droid, Windows ๋ฐ ์น์ ์ฃผ์ 4๊ฐ์ง ์ํ ๊ทธ๋ฃน ๋ชจ๋์์ .NET์ ์คํํ ์ ์์ต๋๋ค.
์์ง ์ฝ๊ฐ์ ๋ฐ๋ชจ ์ํ์ด์ง๋ง ๋ด ๊ด์ฌ์ ๋์์ต๋๋ค. ๐
OP๋ ์ดํดํ๊ธฐ ์ด๋ ต์ง๋ง "ubi"๋ "SkiaSharp ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์ฌ์ฉํ์ฌ ํ๋ซํผ ๋ ๋ฆฝ์ ์ธ ๋ฐฉ์์ผ๋ก ๋ ๋๋ง๋ Xamarin.Forms ๋ณด๊ธฐ"๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด ๊ฒฝ์ฐ "ubi" ์ปจํ ์ด๋๋ ubi๊ฐ ์๋ ๊ฒ์ ํฌํจํ ์ ์์ต๋๋ค. OP๊ฐ ๋ ๋ง์ ์ฌ๋๋ค์ด "ubi" ๋ณด๊ธฐ๋ฅผ ์์ฑํ๊ธฐ ์ํ ์์ฒญ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๊น? "ubi" ๋ณด๊ธฐ๊ฐ ์์ฑ๋๋ค๋ฉด ์ฐ๋ฆฌ ๋๋ถ๋ถ์ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ๋ฐ ๋ฐ๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ์ ์ผ๋ถ๋ "๋ค์ดํฐ๋ธ" ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๋ ๋ฐฉ์, ์ฆ ๋ ๋๋ง ๋ฐฉ์์ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. HTML5๋ ์ฌ๊ธฐ์์ ์ ๋ง ์ต๊ณ ์ ์์ ๋๋ค. ๋ชจ๋ ๊ธฐ๊ธฐ์์ HTML5 ํ์ด์ง๋ฅผ ๋ณผ ์ ์์ผ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๊ธฐ์ ๊ด๊ณ์์ด ๋์ผํ๊ฒ ๋ณด์ ๋๋ค. IMO ์ด๊ฒ์ด ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ๋๋ง๋๋ ๋ฐฉ์์ ๋๋ค. "ํ๋ซํผ๋ณ" ๋ ๋๋ง ๋๋ ์ํธ ์์ฉ์ ์ํ๋ฉด ์คํ์ผ๋ง ๋ฐ/๋๋ ํ ํ๋ฆฟ์ ๋ฌธ์ ์ฌ์ผ ํฉ๋๋ค(WPF ๐๋ก ์ฝ๊ฒ ๊ฐ๋ฅํ๋ ๊ฒ). ์ฆ, ๊ฐ๋ฐ์๋ ํ ๋ง๋ฅผ ์ ์ฉํ๋ ๊ฒ๋ง์ผ๋ก iOS ๊ธฐ๋ฐ์ UX๋ฅผ Droid ๊ธฐ๊ธฐ์์ ๋๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ์๋ ์ ์ํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ชจ๋ ์๋์ ๋ชฉ์ ์ ์ํด HTML5 ๋ ์ ๋น์ฟผํฐ์ค ๋ ๋๋ง ๋ฉ์ปค๋์ฆ์ด์ง๋ง JavaScript์ ๋๋ฌด ๋ฟ๋ฆฌ๋ด๋ ธ๊ธฐ ๋๋ฌธ์ .NET๊ณผ ๊ฒฐํฉํ ๋ ์์ฒญ๋ TCO๊ฐ ๋ฐ์ํฉ๋๋ค. Ooui๊ฐ ์๊ฐํ๋ ๊ฒ์ HTML5/CSS๋ฅผ ๋ ๋๋ง ๋ฉ์ปค๋์ฆ์ผ๋ก ํ์ฉํ๋ ๋์์ ๋๋จธ์ง ๋ชจ๋ ๊ฐ๋ฐ์ .NET์ ๋ ์ ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ์ง์์ ์ ์งํ๊ณ ๊ธฐ์กด ํฌ์๋ฅผ ํ์ฉํ์ฌ _์ ์ฒด ๊ฐ๋ฐ ๋น์ฉ์ ์ ๊ฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ฐ๋ฐ์๋ ํ๋ ์ ํ ์ด์ ๊ณผ ์ง์ ์ธํ๋ผ ๋ชจ๋์ ๋ํด ํ๋์ ์ฝ๋๋ฒ ์ด์ค๋ง ๋จ๊ฒ ๋๋ฉฐ iOS, Droid, Windows ๋ฐ ์น์์ ์์ ํ๊ฒ ๋ฉ๋๋ค. ๋ง์ .NET ๊ฐ๋ฐ์๋ค์ด ๋ช ๋ ๋์ ์๊ตฌํด ์จ ๊ฒ์ ๋๋ค.
๋จ์ ์ .NET ๊ฐ๋ฐ์๊ฐ CSS๋ฅผ ์ฒ๋ฆฌํด์ผ ํ์ง๋ง ์ง์ ํ ์ ๋น์ฟผํฐ์ค ์๋ฃจ์ ์ ์ค๋ซ๋์ ๊ธฐ๋ค๋ ค์จ ์ด ์์ ์์ ์ฐ๋ฆฌ๊ฐ ๊ธฐ๊บผ์ด ์๋ณดํ ์ ์๋ค๋ ์ ์ ๋๋ค. ์ ์ด๋, ๋๋ ํ ๊ฒ์ด๋ค. ๐
uservoice ์ค๋ ๋๋ Xamarin.Forms์ ๊ฐ์ ๊ฒ์ ๋ํ ํธ์ถ์ด์์ต๋๋ค. Microsoft๊ฐ Xamarin์ ์ธ์ํ๊ธฐ ์ ์ธ 2015๋ ์ ๊ฒ์๋์์ต๋๋ค. ์๊ตฌ ์ฌํญ ์ค Xamarin.Forms๋ 1) Windows 10 4) Droid 5) iOS์์ ๋ฆด๋ฆฌ์ค๋์์ผ๋ฉฐ 3) *nix(Unix/Linux) 6) Macintosh์์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ก ์ ๊ณต๋๋ฉฐ 2) Legacy Windows๋ก ์์๋์์ผ๋ฉฐ ์ด์ ๋ง 7) ๋๋ฌด ๋ค๋ฅธ HTML5๋ฅผ ํ์ง ๋ง์ญ์์ค. ์ค์ ๋ก Windows 10, Droid, iOS, Legacy Windows ๋ฐ Mac์ ํด๋ผ์ด์ธํธ ์ฅ์น์ 99.5%๋ฅผ ์ฐจ์งํฉ๋๋ค. Xamarin.Forms๊ฐ ์กด์ฌํ๊ณ ์ง๊ธ ์ด ๋ชจ๋ ์์ ์ ์ํํ๋ฏ๋ก ๋ค๋ฅธ ํ๋ฅญํ ์๋ฃจ์ ์ด ํ์ํ์ง ์์ต๋๋ค.
ํ์ํ ์ ์ผํ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ํ๋ ๊ฒ์ ๋ค๋ฅธ ๊ฒ์ ๋๋ค. ๋์ผํ ํฌ๋ก์ค ํ๋ซํผ ๋ ๋๋ง์ ๋๋ค. ๋๋ ์ด ํ์๋ฅผ ์ดํดํ ์ ์๋ค. Xamarin.Forms์ ๊ฒฝ์ฐ ํด๋น ํ๋ก์ ํธ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ถํ ๋ ์ ์์ต๋๋ค.
@charlesroddie, ์๊ฐ์ ๋ด์ด ์๊ฒฌ์ ์ ์ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ ๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค.
7) ๋๋ฌด ๋ค๋ฅธ HTML5๋ฅผ ์ํํ์ง ์์ต๋๋ค.
๋ถํํ๋ ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ์ธ์ฐ๊ณ ์๋ ์ฌ๊ณ ๋ฐฉ์/ํ๋์ ๋๋ค. ์น์ ๊ธฐ๋ณธ ํ๋ซํผ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํ๊ฒฝ์ ํธ์คํ ํ๋ ๋ฐฉ์๊ณผ ์ ํํ ๋์ผํ ํธ์คํ ํ๊ฒฝ์ ๋๋ค. ์น์ "๋ค๋ฅธ" ๊ฒ์ผ๋ก ๋ณด๋ฉด ๋ ๊ฐ์ ๋ณ๋ ์ฝ๋ ๊ธฐ๋ฐ์ ๊ฐ๋ฐํ๊ณ ์ ์ง ๊ด๋ฆฌํด์ผ ํ๋
๋ ๋ค๋ฅธ ํฐ ํด๊ฒฐ์ฑ ์ด ํ์ํ์ง ์์ต๋๋ค.
์ฌ๊ธฐ์ ์๋ ์์ด๋์ด๋ ๋ ๋ค๋ฅธ ํ๋ฅญํ ์๋ฃจ์ ์ด ์๋๋ผ ๋ ๊ฐ๋จํ ์๋ฃจ์ ์ ๋๋ค. ๊ทธ UserVoice์ ์๊ฒฌ์ ์ฝ๋ ๋ฐ ์๊ฐ์ ๋ค์ด๋ฉด(๋งค์ฐ ์์ํฉ๋๋ค. ๐), ๊ฑฐ๊ธฐ์๋ Xamarin.Forms์ ํฌ์ด ๋ง์ง ์์ต๋๋ค. ๋ ์์ ๋ ํ๋ก์ ํธ(๋ฐ Xamarin์ ๋ชจ๋ ๊ฒ!)๋ฅผ ์ง์ํ์ง๋ง ๊ฒฐ๊ตญ์๋ ๊ฐ๊ฐ ๊ณ ์ ํ ํน์ฑ๊ณผ ๊ณ ๋ ค ์ฌํญ์ด ์๋ n๊ฐ์ ํ๋ ์ ํ ์ด์ ์คํ์ ์ง์ํ๊ณ ์์ต๋๋ค(์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๊ณ ์๋ฏ์ด ์ด ๋๋ฌธ์ ํ์ง์ด ๋งค์ฐ ๋ฎ์ต๋๋ค. ์ด์ ๋ง ์ค์ค๋ก๋ฅผ ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค). ๋ํ ํ๋ซํผ๋ณ๋ก ํน์ ๋ ๋๋ง์ด ํ์ํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๋ฒ๊ฑฐ๋ก์ด ์ ์ฒด ์ฌ์ฉ์ ์ง์ ๋ ๋๋ฌ๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ๋จ์ํ ํ๋์ ํ๋ ์ ํ ์ด์ ๊ธฐ์ (HTML5)์ ์ ์ง ๊ด๋ฆฌํ๋ ํจ๋ฌ๋ค์๊ณผ ํ๋ซํผ์ด ์๋ ๋์ ์ง์ํ๊ณ ์ํํ ์ ์๋ HTML5๋ฅผ ๋จ์ํ ๋ ๋๋งํ๋ ๊ฒ๊ณผ ๋์กฐ๋ฉ๋๋ค. ํน์ ์คํ์ผ์ ์ ์ฉํ๋ ๊ฒ๋ง์ผ๋ก ํ๋ซํผ๋ณ ๋ ๋๋ง์ด ์ ์ฉ๋ฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์๋ฒฝํ๋ค๊ณ ๋งํ์ง๋ ์์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก ํจ์ฌ ๋ ๊ฐ๋ณ๊ณ ์ ์ง ๋ณด์๊ฐ ์ฉ์ดํ๋ค๋ ๋๋์ด ๋ญ๋๋ค. ๋ ์ธ๊ณ , LOL!
์ฆ, HTML5 ๋์์ธ ๊ณต๊ฐ์ ํนํ CSS์ ๊ด๋ จ๋ ๋ ธ๋ จํ ์ฌ๋ฅ์ผ๋ก ๊ฐ๋ ์ฐจ ์๋ค๋ ์ ์ ๊ณ ๋ คํ์ญ์์ค. ๋น์ฆ๋์ค ๊ด์ ์์ ์ด๊ฒ์ ํ๋์ ํ๋ฆฌ์ ํ ์ด์ ๊ธฐ์ ์คํผ๋ง(n+๊ฐ ์๋)์ ๊ด์ฌ์ ๊ฐ์ง ๋ฟ๋ง ์๋๋ผ ์ด ๊ณต๊ฐ์์ ์์ง์ ์์ ์ ์ ๊ณตํ๊ธฐ ์ํด ์์ ํ ์ ์๋ ๋ง์ ๋ฆฌ์์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ TCO๋ฅผ ์ค์ ๋๋ค. ์๋ฅผ ๋ค์ด ํ์ ์จ์ด ์๋ ๊ฒฝ์ฐ n+(์ผ๋ฐํ - ๋ฎ์ ํ์ง)๋ฅผ ์๊ณ ์๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ํ๋์ ํ๋ ์ ํ ์ด์ ๊ธฐ์ (์ ๋ฌธ - ๋์ ํ์ง)์ ์๊ณ ์๋ ๋ฆฌ์์ค๋ฅผ ์ฐพ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค.
๋๋ ์ฐ๋ฆฌ ์ปค๋ฎค๋ํฐ์์ ์น์ "๋ค๋ฅด๋ค"๊ณ ์๊ฐํ๋ ๊ฒ์ด ๋ฟ๋ฆฌ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, "๋ค๋ฅด๋ค"๋ ๊ฒ์ด .NET ๊ณต๊ฐ์์์ ํ๋ ์ ํ
์ด์
์ ๋ํด ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๋ชจ๋ ๊ฒ์ ๋ค์ง์ ์ ์๋ค๋ ๊ฒ์ด ์ ์ ๋ ๋ง์ด ๋ณด์
๋๋ค.
๊ทธ๊ฒ์ด ์ ์ด๋ ์ผ์ด๋๊ณ ์๋ ์ผ์ ๋ํ ๋์ ์ธ์์
๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋๋๋ก ์๋ชป๋ ๊ฒ์ผ๋ก ์๋ ค์ก์ต๋๋ค. ๐
๋๋ ์น ๊ธฐ์ ์ ๋ํ ์ ๋ฌธ ์ง์์ด ์์ผ๋ฉฐ ๋๋ฌด ๋ค๋ฅด๋ค๊ณ ๋งํ์ ๋ ํ์ฌ ๊ธฐ์ ์ด ๊ธฐ๋ณธ ๊ตฌ์กฐ์ ์น ์ฑ ๊ตฌ์กฐ ์ฌ์ด์ ๊ฐ๊ทน์ ๋ฉ์ฐ๋๋ฐ๋ ๋ฉ๊ฒ ๋ณด์ธ๋ค๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค. Xamarin.Web์ ์ข์ ์์ด๋์ด์ง๋ง ๊ตฌํํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ๋น๋ก ์ด๋ฏธ Ooui๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฐ๋ ์ฆ๋ช ์ด ์์ ์ ์์ง๋ง ๋ง์ ๋๋ค. Xamarin.Forms ์ปจํ ์คํธ์์ ์ด๊ฒ์ ๋ฌผ๋ก ๋ ์ ์ ๊ฒ์ด ์๋๋ผ ๋ ์ ์ html์ ์๋ฏธํฉ๋๋ค.
์ฌ๊ธฐ๊ฐ ๋ฐ๋ก ์์์
๋๋ค. ์๊ฐํด๋ณด๋ฉด ๊ทธ๋ ๊ฒ ์ด๋ ต์ง๋ ์์ ๊ฒ ๊ฐ์์. Ooui๋ (์์ง) ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ๋๋ ๋ชจ๋ ์ข
๋ฅ์ Xaml ๊ตฌ์ฑ์ ์ง์ํ์ง ์์ง๋ง ๊ตฌํํ๊ธฐ์ ์ถฉ๋ถํ ์ฌ์์ผ ํฉ๋๋ค. ๋ํ ์ ๋ HTML์ ํฌ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ์คํดํ์ง ๋ง์ญ์์ค. ์ฌ์ค Xaml์ ์์์ ์ธ๊ธํ UserVoice์ div
๋ฐ yuck
ํ๊ทธ๋ฅผ ์ฒ๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค. ๐ ๋ฌด์๋ณด๋ค๋ ์ฌ๊ธฐ์์ ๋ด ๊ด์ฌ์ ๋์์ต๋๋ค.
@Mike-EEE Avalonia๋ ์ ๋ง ์ข์ ์คํ์ ๋๋ค.
Xamarin Forms ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ์์ฐ์ ์ธ ๊ฒ์ SkiaSharp๋ก ์ด์ํ์ฌ https://github.com/chrfalch/NControl ์ ๋์ด๋ฆฌ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ํน์ ์ ํ์ ์ํธ ์์ฉ๋ง ํ์ํ ์ปจํธ๋กค์ ์ฝ๊ฒ ๋ง๋ค ์ ์์ผ๋ฉฐ ์ด๋ฌํ ์ปจํธ๋กค์ ํ๋ซํผ ๊ฐ์ ๋์ผํ๊ฒ ์๋ํ๊ณ SkiaSharp๊ฐ ์ง์ํ๋ ๋ชจ๋ ํ๋ซํผ์ ์ฆ์ ์ง์ํฉ๋๋ค.
Flutter๊ฐ ๋์ฌํ์ฒ๋ผ ๋ค๊ฐ์ค๊ณ ์์ต๋๋ค. ํด๋น ํ๋ ์์ํฌ์ ํด๋น ๋ฌธ์๋ฅผ ๋ง๋๋ ๋ฐ ๋ง์ ์์ ์ด ์งํ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ข๊ฒ๋ ์คํ ์์ค์ ๋๋ค!
ํ๋ฌํฐ ์์ง์ C++์ด๊ณ Dart๋ ๊ฑฐ์ C#์ ํ์ ์งํฉ์ด๋ฉฐ C# ๋ฐ Xamarin์ผ๋ก "๋ณํ ๊ฐ๋ฅ"ํด์ผ ํฉ๋๋ค.
์คํค ์ด์ฐจ์ ํ์นํ๋ ๊ฐ์ฅ ์์ฐ์ ์ธ ๋ฐฉ๋ฒ์ Xamarin์ด Flutter๋ฅผ ์์ฉํ๊ณ Google์ด ์์ผ๋ก ๋์๊ฐ๋๋ก ๋๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. Xamarin์ ๋ ๋์ ํ๋ซํผ ํตํฉ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์, Forms ์์ ์ ์๋์ง๋ง(์: Redux๊ฐ MVVM๋ณด๋ค ๋ ํ์คํ ์ ํ์), ์ ๋ง ๋ฉ์ง ๊ฒ์ ๋๋ค. :)
๊ฐ์ MS. ์ด์ ์ฒ๋ผ ํฌ์ฉํ๊ณ ํ์ฅํ์ญ์์ค. Fuchia๊ฐ ๋ฌผ๊ฑด์ด ๋๋ค๋ฉด ์ด์จ๋ ํด์ผ ํฉ๋๋ค.
์ค ์๋
. ๋ฐ๋ผ์ flex, CSS ๋ฐ ์ค์ ๋ก ์์ ํ ์๋ํ์ง ์๋ ๊ธฐํ ๋ฏธ์น ๊ฒ๋ค ์ดํ์ ์ด์ Flutter? Xamarin Forms, ๋ชจ๋ ๊ฑฐ๋์ ์ญ, ๋๊ตฌ์ ์ฃผ์ธ๋ ์๋๋๋ค.
๋จผ์ Xamarin Forms๋ฅผ ์ง์ ์ผ๋ก ์ฑ์ํ๊ณ ์์ ์ ์ธ ์ผ๊ธ ํ๋ ์์ํฌ๋ก ๋ง๋๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ํ์ง๋ง ์ ๊น๋ง์, ๊ทธ๊ฑด ๋๋ฌด ๊ธฐํ์ด ์ง๋ ๊ฒ ๊ฐ์์...
@timahrentlov ๋ ๋ด๊ฐ ์๊ณ ์ถ์ดํ๋ redux์ mvvm์ ๋น๊ต๋ฅผ ๋ณด์ฌ์ค ์ ์์ต๋๊น?
@juepiezhongren ๋๋ ํ๋ฌํฐ์ ๋ํ ๊ทธ๋ฐ ๋น๊ต๋ฅผ ๋ณธ ์ ์ด ์์ต๋๋ค.
@timahrentlov xamarin.forms์ mvvm ๋ redux๋ฅผ ๊ณ ๋ คํ์ฌ ๋ค์ดํฐ๋ธ ๋ฐ์์ ๋น๊ตํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
@Mike-EEE ๋ธ๋ ์ด์ ์ ํ๋ญํฌ์ ooui-wasm์์ ํญํ์ฐ๋ฅผ ๋์น์ฑ์ จ๋์?
@juepiezhongren ์ ๋ง... ์ํฉ์ด ๋จ๊ฑฐ์์ง๊ธฐ ์์ํ์ต๋๋ค! ๐
@Mike-EEE๋ wasm์ ๋ํ ubis๋ฅผ ๊ณ ๋ คํ๊ณ , skiasharp๋ ์ข์ ์ ํ์ด ์๋๋๋ค.
@samhouts t-enhencement๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น?
์์งํ @juepiezhongren , ๋๋ ์ ์ผํ ์ฅ๊ธฐ์ ์ต์ ์ด HTML5/CSS๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ WebSocket Bridge(Ooui) ์ ๊ทผ ๋ฐฉ์์ ๊ด์ฌ์ ๊ฐ๋ ์ด์ ์ ๋๋ค. WASM๋ณด๋ค ๊ฐ๋ณ๊ณ ์ค๋ฒํค๋๊ฐ ์ ์ต๋๋ค. CSS๋ ํํธ์์ง๋ง ์ฝ๊ฐ์ ๊ธฐ๋ฆ๊ธฐ๊ฐ ์์ผ๋ฉด ๊ฐ๋ฐ์๋ก์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์๋์ํฌ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๐ ์ด์จ๋ , ๋๋ ์ฐ๋ฆฌ๊ฐ ์ ๋ง๋ก ์คํ ๊ฐ๋ฅํ ๋ฌด์ธ๊ฐ๋ก๋ถํฐ ์ฝ 12-18๊ฐ์์ด ๋จ์๋ค๋ ๋๋์ ๋ฐ์ต๋๋ค. ์ ๋ง ๋๋จํฉ๋๋ค. Ooui์ Blazor๋ ์์์ ๋ถ๊ณผํฉ๋๋ค.
๋ํ ์ ๋ MSFT์ @stevesanderson ์ด Blazor ์ด๋์ ํฐ๋ธ๋ฅผ ํตํด ์คํ์ ์ด๊ณ ํ์ ์
@Mike-EEE ์, baidu๊ฐ ํ์ํ๋ echarts.js์ ๋ง์ฐฌ๊ฐ์ง๋ก html5์ CANVAS๋ก ๋ ๋๋ง์ด ๋งค์ฐ ์ข์ต๋๋ค. ๋ฐ๋ผ์ ๋ ๋ ์์ง์ ๋ถ๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
์์ HTML5๊ฐ ๋ ๋น ๋ฆ ๋๋ค, @juepiezhongren. ๊ฐ์ฅ ์ด์์ ์ธ ์๋๋ฆฌ์ค๋ ๋ ๋๋ง์ด ์ด๋ฏธ NATIVE ์บ๋ฒ์ค์์ ๋ฐ์ํ๊ณ ์๊ธฐ ๋๋ฌธ์ HTML5 DOM ์ปจํธ๋กค์ ํ์ฉํ๋ ๊ฒ์ ๋๋ค. ๐ ๊ทธ๋ ์ง ์์ผ๋ฉด HTML5 Canvas์์ ๋ ๋๋งํ๊ณ ๋น๊ต ๋ฐ โโ๋ฆฌ์์ค ์ง์ฝ์ ์ธ JavaScript๋ฅผ ํตํด ์ ๋ฐ์ดํธํฉ๋๋ค. ๋ฌผ๋ก HTML5 Canvas๋ ๋ณต์กํ ๋น ๊ธฐ๋ณธ ์ปจํธ๋กค(์: ์ฐจํธ ์์ฑ ๋ฑ)์ ๊ณ์ ์ฌ์ฉํ ์ ์์ง๋ง ๋ ๋๋ง ํ๋ฉด์ธ IMO๋ก ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค.
์์ํ HTML5๋ ๋ฌด์์ ๋๊น? @Mike-EEE js๊ฐ ์๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
๋ง์, @juepiezhongren ... HTML5 canvas
์ปจํธ๋กค์ ํตํด ๋ ๋๋งํ ์ ์ปจํธ๋กค์ ๋ง๋๋ ๋์ HTML5์ ๊ธฐ๋ณธ "๋ค์ดํฐ๋ธ"(LOL์ด๋ผ๋ ๋จ์ด์ ์ฃผ์ํด์ผ ํจ) ์ปจํธ๋กค์ ๋ชจ๋ ํ์ฉํฉ๋๋ค. Unity ๋๋ JSIL ์์ ๋ณผ ์
๋ฌผ๋ก ์ด๋ ๊ตฌ์ถ ์ค์ธ ์ปจํ
์คํธ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ๋ด ๋ชจ๋ ๋ํ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น์ฆ๋์ค/LOB๋ฅผ ๊ฐ์ /๊ณ ๋ คํ๋ฏ๋ก "์์ํ" HTML5๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ฒ์/๊ทธ๋ํฝ ์ง์ฝ์ ์ธ ์๋๋ฆฌ์ค๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ WASM์ด ์ฒซ ๋ฒ์งธ ์ ํ์ด๊ณ ๊ทธ ๋ค์์ด canvas
์ปจํธ๋กค์
๋๋ค.
๋๋ HTML5๊ฐ SkiaSharp๋ณด๋ค XF์ ์ฐฌ์ฑํ์ฌ ๋ค์ ๋จ๊ฒจ์ง๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค. ooui๋ ์ข์ง๋ง ํญ์ XF ์ปจํธ๋กค์ HTML๋ก ๋ณํํด์ผ ํ๋ ์ด๋ ค์์ ๊ฒช์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฅ ์บ๋ฒ์ค๋ก ๋ฐ๋ก ์ด๋ํฉ๋๋ค. ์ ๊ทผ์ฑ/SEO๊ฐ ์ด์ ๋ฌธ์ ๊ฐ ๋์ง๋ง GDI๋ฅผ ์ฌ์ฉํ๋ winforms์ ์ก์ธ์คํ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ทน๋ณตํ ์ ์๋ ์ด์ ๋ฅผ ์์ง ๋ชปํฉ๋๋ค.
๋ง์ @yowl ... ์๋๋ฆฌ์ค์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๊ฐ๋จํ LOB ์์ฉ ํ๋ก๊ทธ๋จ์ Ooui์ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋งค์ฐ ์ ์๋ํฉ๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก Ooui๊ฐ ์๋๋ผ ์ ๊ทผ ๋ฐฉ์(WebSocket ๋ธ๋ฆฌ์ง)์ ๋งํฉ๋๋ค. Ooui๋ ํฉ๋ฒ์ ์ธ ์ด๊ฐ๋๊ตญ์ด๋๋ ๊ฒ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ต๋๋ค.
SkiaSharp๋ ์น์์ ์๋ํ์ง ์์ผ๋ฏ๋ก ์น์์ ์คํํ๋ ค๋ฉด ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ด์ผ ํฉ๋๋ค. ๋ฌผ๋ก WASM์ ์ฌ์ฉํ์ง ์๋ ํ. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ ํฐ ๋ค์ด๋ก๋์ ๋๋ค. ์์ฆ ๋ชจ๋ ๊ฒ์ด HTML5/์น/๊ฒฝ๋ํ๋๊ณ ์์ต๋๋ค. ๋ ๋น ๋ฅด๊ฒ ๋ก๋๋๊ณ ๋ ๋น ๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ์๋ฅผ ํ๋ณดํ์ฌ ์์ฅ ๊ฒฌ์ธ๋ ฅ์ ์ป๋ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ PWA์ ์น ๊ธฐ์ ์ ์ฒด์์ ์ด๊ฒ์ ๋ณด๊ณ ์์ต๋๋ค.
๋ค์ดํฐ๋ธ/์คํ ์ด๋ ์น์ด ์ ์ ๋ ๊ทธ๋ค๊ณผ ์ ์ฌํด์ง๊ณ ๊ทธ๋ค์ ํ์ ์ฐจ์งํจ์ ๋ฐ๋ผ ์ง๋์ณ ๊ฐ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ์ง์ค์/๊ถํ ๋ถ์ฌ/์ง์/๊ฒ์ด/์ ์ฅ/๋ฑ๋ก/์ง์นจ BS ์์ด ๋ถํ ํฉ๋๋ค. ๐ ๊ธฐ์ ์ ์๋ ์ค๊ณ, ์๋ ๋ฐ ์๋๋ ๋ฐฉ์์ธ ํ์ค์ํ/์์ ๋ก์ด ๋น์ฆ๋์ค ๋ฐฉ์์ผ๋ก ๋ค์ ์ด๋ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฌ๊ธฐ์๋ ๊ถ๊ทน์ ์ผ๋ก ๋ ๊ฐ์ง ์๋๋ฆฌ์ค๊ฐ ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๋๋ถ๋ถ์ ์์ฉ ํ๋ก๊ทธ๋จ(์ ๊ทผ์ฑ/SEO ๐์ด ํ์ํจ)์ ์ํ HTML5์ ์ ๋ฌธํ/๊ทธ๋ํฝ ์ง์ฝ์ /๊ฒ์ ๋ฑ์ ์ํ WASM์ ๋๋ค. ์ด์์ ์ธ ํ๋ ์ ํ ์ด์ ๊ธฐ์ ์ ๊ฐ๋ฐ์๊ฐ ๋ ์ค ํ๋์ ์ฐจ์ด์ (์: ๊ณจ์น์ํ)์ ์๊ฑฐ๋ ์ฒ๋ฆฌํ ํ์๊ฐ ์๋๋ก ๋ ์ง์ ๋ชจ๋์ ์ํํ๊ฒ ์ ๊ณต๋ฉ๋๋ค.
SkiaSharp๋ ์น์์ ์๋ํ์ง ์์ผ๋ฉฐ ๋ด๊ฐ ์๋ ํ ์๋ฌด๋ wasm์ ์ํด ๊ตฌ์ถํ์ง ์์์ง๋ง Skia๋ ๊ทธ๋ ๊ฒ ํ๋ค๊ณ ๋๋ ์์ํฉ๋๋ค. ๋๋ Skia ๋ฐฑ์๋๋ก XF๋ฅผ ๋น๋ํด๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ชจ๋ ธ ์ฌ๋๋ค์ ์์ ์ ์๋งค์ ๋ญ๊ฐ๊ฐ ์๋ค๊ณ ํ์ ํฉ๋๋ค. Build in May์์ ๋ญ๊ฐ๋ฅผ ์ฐพ์ผ์ญ์์ค.
์, //build๊ฐ ํฅ๋ฏธ๋ก์ด ๊ฒ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ง๊ธ _๋ _์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค, @yowl. ์ฌ์ง์ด Connect(); ์ด๋ฒคํธ๋ .NET์ ์น ํ์ด์ง(๋งค์ฐ ๋์ ๊ฐ์น)๊ฐ ์๋ ๋์ฅ๊ณ ๋ฐ ๊ธฐํ ๊ธฐ๊ธฐ(๋งค์ฐ ๋ฎ์ ๊ฐ์น)์์ ์คํํ๋ ๊ฒ์ ๋ํด ์๋ํ๋ ๊ฒ์ผ๋ก ์ถ์๋์์ต๋๋ค.
์์ฆ์ '๋ณด๋ฉด ๋ฏฟ๊ฒ ๋ค'๋ ์์ผ๋ก ์ ๊ทผํ๊ณ ์๋ค. ๐ ์ฌํด์ ์์ปค์ค์์ ์ ๋ Progressive Web Applications, ๊ทธ๋ฆฌ๊ณ MSFT๊ฐ ์ด๋ป๊ฒ .NET ๊ฐ๋ฐ์์ ํจ๊ป ์์ ํ๋ ๋ฐ ๋น์ฉ์ ์ต๋ํ ๋ง์ด ๋ค์ด๋ฉด์๋ ์ด๋ฅผ ์ฐ๋ฆฌ ์ํ๊ณ์ "ํตํฉ"ํ ์ ์์๋์ง ์ธ์ ๋ค๋ฅธ ์ค์ํ ์์์ ๋ฃ๊ฒ ๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ์์ต๋๋ค. ๐ ๋น์ ์ ์ํ ์ฝ๊ฐ์ ๋๊ด๋ก ์ด ์์ต๋๋ค. ๐
Skia + Canvas๋ http://webassembly.org์์ ์๋ http://webassembly.org/demo/Tanks/ ๋ Skia ๋น์ฆ๋์ค ์ฑ์ผ ์๋ ์์ต๋๋ค.
@timahrentlov ์คํค์+์บ๋ฒ์ค? 10M ๋ค์ด๋ก๋, ์ ๋ง ํฝ๋๋ค.
xamarin.flutter๋ ์ด๋ป์ต๋๊น?
@juepiezhongren ์ ๋์ํฉ๋๋ค ,
ํฅ๋ฏธ๋ก์ด ํ ๋ก . ํํธ ListView์ ๊ฐ์ ๊ธฐ๋ณธ ์ปจํธ๋กค์ ์ฌ์ ํ โโiOS ๋ฐ Android์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. XAML ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ ์์ ํ ์๋ํ์ง ์์ต๋๋ค. ์์ง ๊ตฌํ๋์ง ์์ ๊ธฐ๋ณธ ์ปจํธ๋กค์ด ์์ต๋๋ค. ์ฑ๋ฅ์ ์ฌ์ ํ โโ๋ค์ณ์ ธ ์์ต๋๋ค. ์ด์ผ๊ธฐํ๊ณ ๊ฟ๊พธ๋ ๊ฒ์ ์ข์๋ฐ XF์ ์ํ๋ ๊ฑฐ์ 3๋ ์ด ๋์์์๋ ๋ถ๊ตฌํ๊ณ ์ค์ ๋ก ์์ด์ผ ํ ์์น๊ฐ ์๋๋๋ค.
XF์ ๋ฌธ์ ๋ ๊ธ๋ ์ณ ์์ ์ง์ ์ง๋ ๊ฒ๊ณผ ๊ฐ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ๊ฑฐ๋ํ UI ํ๋ซํผ ๋ฐ์๊ตญ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์๋์ ๊ท ์ด๊ณผ ํ์๊ฐ ํ์ฑ๋ฉ๋๋ค.
๊ทธ๊ฒ๋ค์ ์์ ํ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ ๋ง์ ํ๋ซํผ์ด ์ถ๊ฐ๋ ์๋ก ์ ํ๋๋ ๋์์๋ ์ค๋ฅด๋ง ์ธ์์ ๋๋ค. Mac OS x, OOUI/Web, Tizen ๋ฑ. ๊ทธ๊ฒ์ ๋ฉ์ถ ๊ฒ์ ๋๋ค. ๊ฑฐ์ ๊ทธ๋ฌ์ต๋๋ค. DOA ๋ฐฉ์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ flutter์ ๊ฐ์ ๋๊ตฌ๋ XF ์ฃผ๋ณ์์ ์์ ๊ทธ๋ฆฌ๋ฉฐ ์คํ๋ฉ๋๋ค.
XF๋ ์์ฒด UI๋ฅผ ๊ฐ์ ธ์ ์ ๋์ ์ผ๋ก ํ์ํ ํน์ ํ๋ซํผ UI๋ง ํตํฉํด์ผ ํฉ๋๋ค. ์ง๋, ์นด๋ฉ๋ผ ๋ณด๊ธฐ ๋ฑ. ๋จธ์ง ์์ Xamarin์ Fuchia ๋๋ ํธ์ถ๋๋ ๋ชจ๋ ๊ฒ์ ์ง์ํ๋ ค๋ ๊ฒฝ์ฐ ์ด์จ๋ ๊ตฌํํด์ผ ํฉ๋๋ค(์คํ ์์ค ํ๋ฌํฐ ์์ง!).
๋๋ Flutter๋ Tizen ๋๋ ๋ค๋ฅธ ๊ฒ๋ค์ ๋ํด์๋ ๋ณ๋ก ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ ์ธก๋ฉด์์ ์ค์ํ ๊ฒ์ iOS์ Android๋ฟ์
๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์๋ง๋ UWP. ์ฌ๋๋ค์ ๋ง์๋ ๋ถ๊ตฌํ๊ณ ๋๋ Mac OS X์ โโWPF์ ๋ํด ๊ทธ๋ค์ง ์ ๊ฒฝ์ ์ฐ์ง ์์์ต๋๋ค. ๋ชจ๋ฐ์ผ(iOS์ ์๋๋ก์ด๋)๋ ์ ๋๋ก ๋ค๋ฃฐ ์ ์๋ ์ํฉ์์ ๋ชจ๋ฐ์ผ๊ณผ ๋ฐ์คํฌํฑ์ ํ๋๋ก ํตํฉํ๋ ค๋ ๊ฒ์ ์ฌํ ์ผ์ด๋ค.
Xamarin Forms๋ ์ ๋ง ๋ชจ๋ ๊ฑฐ๋์ ๋๊ฐ์ธ Jack์ ๊ฐ์ฅ ์ข์ ์์
๋๋ค. ์ฃผ๋ง ํ๋ก์ ํธ๋ก ์์ํ OSS ํ๋ก์ ํธ์
๋๋ค. ์ ์ผํ ์ค์ํ ์์
์ XAML ์ปดํ์ผ์
๋๋ค.
๊ทธ ์ธ์ Xamarin์ ๊ฐ๋ฐ์๊ฐ ์์
์ ๊ณ์ํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ํ๋ ์์ํฌ๋ฅผ ์ค์ ๋ก ์ด๋ป๊ฒ ๋ง๋ค์ด์ผ ํ๋์ง์ ๋ํ ์ง์งํ ์ฝ์์ ์์ง ์์ต๋๋ค.
๋น๋ ํ์๊ฐ ๋ค๊ฐ์ค๊ณ ์์ผ๋ฉฐ Xamarin Forms 3.0์ด ์ผ๋ง๋ ํ๋ฅญํ์ง ์๋ฆด ๊ฒ์
๋๋ค. ์ค์ ๋ก๋ ์ฌ์ ํ ๋์ผํ ๋ฒ๊ทธ์ ์ ํ ์ฌํญ์ด ์์ต๋๋ค.
๋ค์ดํฐ๋ธ์ ubi๊ฐ ๋ชจ๋ ํ์ํฉ๋๋ค. xf๋ C#๊ณผ ํจ๊ป ๋ชจ๋ ๊ธฐ๋ณธ API๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ถฉ๋ถํ ์ข์ต๋๋ค. ์ ๋น์ค๋ ์ค์ํฉ๋๋ค.
๋๊ตฐ๊ฐ Xamarin Forms์ ๊ฐ์ ๋ง์ ๋ฐฉํฅ์ด ์๋ ๋ค๋ฅธ ํ๋ก์ ํธ/ํ๋ ์์ํฌ/๋๊ตฌ์ ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น? "๊ธธ์ฐพ๊ธฐ"๊ฐ ์๋ฏธํ๋ ๊ฒ์ Android, iOS, UWP, Mac OS X, CSS, Flexbox, Tizen, WPF์
๋๋ค. ๋ด๊ฐ ๋์น ๊ฒ ์๋? ์น/HTML? ๋ฏธ์น...
๋๊ตฐ๊ฐ๊ฐ ๊ณ์ํด์ "์ค๋ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ๋ค๋ฅธ ๊ฒ์์ด ์์ด์"๋ผ๊ณ ๋งํ๋ ๊ฒ๊ณผ ๋น์ทํฉ๋๊น? ๋๊ตฐ๊ฐ๊ฐ ๋์์์ด ์คํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์คํํ๋ ๊ฒ์ด ์๋ชป๋ ๊ฒ์ ์๋์ง๋ง, ์ค์ ๋ก ๋ชจ๋ ๊ฒ์ด ์คํ์ธ๋ฐ, ๋ง์น ๋จ๋จํ ๊ฒ์ฒ๋ผ ์์
์ค์ธ ์์
์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ์ด์ํฉ๋๋ค.
XF๊ฐ iOS์ ์๋๋ก์ด๋์๋ง ์ง์คํ๋ค๋ฉด..
MS๊ฐ ์์ฒด ์ฑ์ XF๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ค๋ฉด..
MS๊ฐ ๋ ๋ง์ ๋ฆฌ์์ค์ ํด๋จผ ํ
์คํฐ๋ฅผ ์ ์ฉํ๋ค๋ฉด..
Xamarin์ด ๊ธฐ์ ์ด๋ฒคํธ๋ฅผ ์ฃผ์ ๋ฆด๋ฆฌ์ค์ ์ด์ ์ผ๋ก ๋ง๋๋ ๋ฐ ์ด์คํ์ง ์์๋ค๋ฉด..
์ ํ
๋ฐ..
์ง๋ ๋ช ๋ ๋์ ์ง์ ์ด๋ฅธ์ด ์๋ฌด๋ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋๊ฐ ์ด์ ๋๋ฅผ ์ก๊ณ ์ฝ์ค๋ฅผ ๊ณํํ์ต๋๊น? ๋ฌด์จ ์ฝ์ค?
๋ฆด๋ฆฌ์ค๋ ๊ธฐ์ ๋ฐ๋ชจ ํ์ง์ ๊ฐ์ก๊ณ ์์ ์ ์ธ ๊ฒ์ ํ์คํ ์์ ์ ์ด์ง ์์์ผ๋ฉฐ ๋ฌผ๊ฑด์ ์ผ๋ฐ ์ ๋ต์ ์ ํฉํ๊ธฐ ๋๋ฌธ์ ๋ฆด๋ฆฌ์ค๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ์ ์ ๋ฌธ๊ฐ๊ฐ ์์ด๋์ด๋ฅผ ์ป์๊ณ ๊ทธ๋ ๊ฒ ํ ์ ์์๊ธฐ ๋๋ฌธ์ ๋ฆด๋ฆฌ์ค๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ธฐ์กฐ์ฐ์ค์ ๋ํ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๋ ๊ฒ ์ธ์๋ XF๋ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๋ฐ๋ผ๋ ์ฑ๊ณต์ ๊ฑฐ๋์ง ๋ชปํ์ต๋๋ค. ์ง๊ธ์ฏค์ด๋ฉด ๊ทธ๋ฌ์ด์ผ ํ๋ค.
๋๋ ์ฌ์ ํ XF๊ฐ ์ฃฝ์์ ๋ฌธํฑ์์ ๋ฒ์ด๋ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์์ต๋๋ค. ๋๋ ์ฌ์ ํ ์ด๋ฅธ์ด ์ด์ ์ ํด์ฃผ๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์๋ค. ๊ฒ์ ํ๋ฐ์๋ ์์ฒญ๋ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ์ ์ด๋ MS๊ฐ XF์ ํ์ฌ UI ํจ๋ฌ๋ค์์ ์ฌ์ฉํ์ฌ ์ฑ๊ณตํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด.
MS๋ ์ค์ค๋ก๋ฅผ ๋ ์ฝ๊ฒ ๋ง๋ค ์ ์๊ณ , ๊ธ์์, ํ๋ฌํฐ์ฒ๋ผ ๋ง๋ค ์ ์์ต๋๋ค. _XF๋ ์์ฒด UI๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๋ค!_
์ง๊ธ ๋น์ฅ์ ๋คํธ ์ชฝ์ด ํ์คํ ๋งค๋ ฅ์ ์ผ๋ก ๋ณด์ ๋๋ค!
Microsoft๋ Xamarin Forms์ ๋ํด ๋ ์ ๊ฒฝ ์ฐ์ง ์์ ์ ์์์ต๋๋ค. Microsoft๋ Xamarin์ ๋ชจ๋ฐ์ผ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ .NET ๊ณผ๋ ๊ด๊ณ ์ ์์ค์ ์ ์งํ๊ณ ์ ํํ๋ ค๊ณ ์๋ํ๊ณ ์์ต๋๋ค. Microsoft๋ ์ฌ์ ํ "๊ฐ๋ฐ์, ๊ฐ๋ฐ์, ๊ฐ๋ฐ์"๋ผ๋ ๊ณผ๊ฑฐ์ ์ด๊ณ ์์ต๋๋ค. " ๊ณผ๋ ๊ด๊ณ ์๋. ์ด๋ ์ชฝ์ด ๋์์ง ์์์ง, ๋์ ์ ์ ์ง๊ธ ํ์ง๋ณด๋ค ๊ณผ๋ ๊ด๊ณ ๊ฐ ๋ ๋ง๋ค๋ ๊ฒ์
๋๋ค.
ํ์ค์ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๊ฐ MacBook์ ์ฌ์ฉํ๋ฉฐ ์ค๋ซ๋์ Windows์ .NET์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. Microsoft๋ ๋ชจ๋ฐ์ผ ๋ฐ ํ๋์จ์ด ๋ถ์ผ์์ ๊ฑฐ์ ๋ชจ๋ ๊ณณ์์ ์คํจํ์ต๋๋ค. ๊ทธ๋ค์ ๊ณผ๋ ๊ด๊ณ ๋ฅผ ์ ์งํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํ์ง๋ง ๊ฝค ์ด๋ ค์ ์ต๋๋ค. ๊ด๋ฆฌ ์์ค์์ Microsoft๋ ํฌ๊ฒ ์คํจํ์ต๋๋ค. ์คํดํ์ง ๋ง์ธ์. Microsoft์๋ ์ ๋ง ํ๋ฅญํ ๊ธฐ์ ์ธ๋ ฅ์ด ๋ง์ด ์์ต๋๋ค. ์ ๋ ๋ฎ์ ์์ค์ ๊ธฐ์ ์ธ๋ ฅ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
MS๊ฐ ์์ฒด ์ฑ์ XF๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ค๋ฉด..
์ด๋ป๊ฒ ๊ทธ๋ด ์ ์์์ต๋๊น? ์ฑ๋ฅ์ ์์ด์ผ ํ ๊ณณ์ ์์ง ์์ต๋๋ค.
Reality is most of developers are on MacBooks
๋ฐฑ์
ํ ๊ฒ์ด ์์ต๋๊น?
๋น์ ์ ๊ทธ๊ฒ์ ๋ท๋ฐ์นจ ํ ๊ฒ์ด ์์ต๋๊น?
์๋์, ํ์ง๋ง ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ธฐ์ ์ ๋ณด๋ฉด ํด๋น ๊ฐ๋ฐ์์ ๋๋ถ๋ถ์ด MacBook์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ํ์ ํ ์ ์์ต๋๋ค.
@opcodewriter "์ธ๊ธฐ ๊ธฐ์ "์ด "MacBook"๊ณผ ์ด๋ค ๊ด๋ จ์ด ์์ต๋๊น? macOS์์ ์๋ํ๋ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๋ค๋ฅธ Unix ๊ธฐ๋ฐ ์ด์ ์ฒด์ ์์๋ ์๋ํฉ๋๋ค.
@encrypt0r ์, ์ ๋ฅผ ๋ฌด์ํ์ญ์์ค. ๋ชจ๋ ๊ฒ์ด ํ๋ฅญํฉ๋๋ค. ๐
๋ ์ธ๊ธฐ๋ฅผ ๊ณ ๋ คํ๋ฉด ๋๋ถ๋ถ์ ์ฝ๋๊ฐ Mac์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ด๋ป๊ฒ ๊ฐ๋ฅํ๊ฐ์?
ํํฐ์ ์กฐ๊ธ ๋ฆ์์ง๋ง Xamarin๋ ์ด์ ์น ๊ธฐ์ ์ ์ฐธ์ฌํ๊ณ ์์ต๋๋ค.
http://www.davidortinau.com/blog/styling_xamarin_forms_with_css
CSS๋ฅผ Xaml ๊ธฐ๋ฐ ๊ธฐ์ ์ ๊ฒฐํฉํ๋ Frankenstein์ฒ๋ผ ๋ณด์ด์ง๋ง ์ด๋ด. ๐ ๋ํ ์ฌ๊ธฐ์ ์ฌ์ฉ๋ CSS๋ CSS์ฒ๋ผ ์ฝ๋ Xamarin ์ปจํธ๋กค ์คํ์ผ์ ์ํ DSL์ ๊ฐ๊น์ต๋๋ค. ์ด์จ๋ ์์ ์ WHEN USED CORRECTLY ๐ ์ด๋์์๋ ์ฅ์น์์ ์ฌ์ฉํ ์ ์๋ ์ฑ์ํ ํ์ค์ ๋๋ค.
์ฌ๊ธฐ์ ๋ํ ๋ช ๊ฐ์ง ์ถ๊ฐ ํ ๋ก :
https://twitter.com/migueldeicaza/status/972525236301238272
@Mike-EEE, draw ๋ฐ materialShell ๋ฌธ์ ๋ฅผ ๋ณธ ์ ์ด ์์ต๋๊น?
@juepiezhongren ์ด ์์ต๋๋ค ... ์ด๊ฒ์ HTML ๋๋ Forms์ ๊ด๋ จ์ด ์์ต๋๊น?
๊ทธ๊ฑด ํ์์ ์ด์ผ
์, @juepiezhongren์ ๋์์ง ์์ง๋ง ์ฒ์๋ถํฐ ์ ๋น์ฟผํฐ์คํ์ง ์์ ๊ฒฝ์ฐ ์๊ฐ/๋/๋ ธ๋ ฅ/์์์ ๊ฐ์น๊ฐ ์์ต๋๋ค. :)
Material Shell์ ์ด ๋ฌธ์ ์ ๊ด๋ จ์ด ์์ง๋ง ์ฌ์ ํ ์คํ์ผ์ด ์ง์ ๋ ๊ธฐ๋ณธ ์ปจํธ๋กค์ด๋ฉฐ ์ง์ ํ ์ ๋น์ฟผํฐ์ค ์ปจํธ๋กค์ ์๋๋๋ค.
@juepiezhongren
๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ๋ฐฐ์นํ ๋ฐฉ์์ ์๋์ง๋ง ๊ฐ๋
์ ์ข์ํฉ๋๋ค.
๋ด ๊ฟ์์ Avalonia์ ๊ฐ์ ํ๋ ์ ์ํฌ๋ ์๋ฒฝํ ์ต์
์
๋๋ค. ๋ค์ดํฐ๋ธ ๋ฃฉ์คํ์ ์ ์๊ฒ ๊ทธ๋ค์ง ํฐ ๊ด์ฌ์ฌ๊ฐ ์๋๋๋ค. ์ปจํธ๋กค์ด ํ์ํ ์ฌ๋๋ค์ ์ํด ๊ฐ ํ๋ซํผ์ ๊ธฐ๋ณธ ๋ชจ์๊ณผ ๋๋ ํ
๋ง๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ต์
๊ณผ ํจ๊ป ๋ชจ๋ ๊ณณ์์ ๋์ผํ๊ฒ ๋ ๋๋ง๋๋ ์ปจํธ๋กค์ ์ ํธํฉ๋๋ค.
๊ทธ๊ฒ์ด wasm ์ง์์ ๋ฐ๋ ์ฆ์ Silverlight๊ฐ ๋์์ค๊ณ RIA Services๋ฅผ ๊ทธ๋ฆฌ์ํ๋ ์ผ๋ง ๋จ์ต๋๋ค ๐
@MisterJimson ์ค์ ๋ก ์์ด๋์ด๋ ์ฌ๋ฃ ์์ด ๋ณธ์ง์ ์ผ๋ก ์ ๋น์ฟผํฐ์ค ์ปจํธ๋กค์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค.
@jassmith ์ ํํ ์ด๋ป๊ฒ? ์์ ์ปจํธ๋กค์ ๋ ๋๋งํ๊ฑฐ๋ ๊ธฐ๋ณธ ์ปจํธ๋กค์ ์คํ์ผ๋งํ์๊ฒ ์ต๋๊น? ๊ธฐ๋ณธ ์ปจํธ๋กค ์คํ์ผ ์ง์ ์๋ ์ต์ํ์ ๊ฒฝ์ฐ์๋ ํญ์ ์ฝ๊ฐ์ ๋ถ์ผ์น๊ฐ ์์ต๋๋ค.
@MisterJimson ์์ skia ๋๋ ios CoreDraw API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@jassmith ๊ทธ๋์ fluentShell ๋๋ cupertinoShell์ด โโ์์ต๋๊น?
@misterJimson as @juepiezhongren ๋ค, ์์ด๋์ด๋ ์ฒ์๋ถํฐ ์์ ํ ๊ทธ๋ฆฝ๋๋ค. ๊ทธ๊ฒ์ ๋์ ํ๋ซํผ์ ๊ทธ๋ฆด ์์์ ์ค ๊ฑฐ์์ํ์ง๋ง ๋น์ ์ ํ์คํ ๊ทธ๊ฒ์ ์์ฒญํ ์ ์์ต๋๋ค. ๋ชฉํ๋ Material(์ต์ํ MaterialShell ํฌํจ)์ ๋ชจ๋ ๊ณณ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค.
@juepiezhongren ์ด์์ ์ผ๋ก๋ ๊ทธ๋ ์ต๋๋ค. ํ์ฌ ๋ฌธ์ ๋ FluentShell๊ณผ CupertinoShell์ด โโ๋ชจ๋ ๋ผ์ด๋ธ ๋ธ๋ฌ์ ํฌ๊ฒ ์์กดํ๋ค๋ ๊ฒ์ ๋๋ค. Android๋ ํ๋ฅญํ์ง๋ง ์ด๋ป๊ฒ๋ ํจ์จ์ ์ธ ๋ผ์ด๋ธ ๋ธ๋ฌ ๋ณด๊ธฐ๋ฅผ ํผํ๋ ๋ฐ ์ฑ๊ณตํ์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํด ์ ํํ ๋ฌด์์ ํด์ผ ํ๋์ง ์์๋ด๋ ๋์ Material์ ์์ฐ์ค๋ฌ์ด ์ฒซ ๋ฒ์งธ ๋์์ด ๋์์ต๋๋ค.
๋ถ๋ช ํ ํ์๋ฉด, Shell์ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ํ์ง ์๊ณ MaterialShell์ ํฉ๋๋ค.
์ด๊ฑฐ ๋ดค์ด- https://github.com/SteveSandersonMS/BlazorElectronExperiment.Sample ?
๋ชจ๋ฐ์ผ ํ๋ซํผ์ด ์๋ ๋ฐ์คํฌํ ์ ์ฉ์
๋๋ค.
@gulshan ์๋ฒ ์ธก์ด ์ข์ต๋๋ค
@juepiezhongren์ ๋ํ ์๊ฐ
https://github.com/xamarin/Xamarin.Forms/issues/4435
ํ๊ทธ๊ฐ ๋๋ ๋์ ์ด๋์๋ ์กด์ฌํ๋ ์์ฑ์ด๋ผ๋ ์ ์ ์ ์ธํ๊ณ ์ฌ๊ธฐ์์ ์ ์ํ ๊ฒ๊ณผ ์ ์ฌํ๋ฉฐ ๋๊ตฐ๊ฐ๊ฐ ๊ด์ฌ์ด ์๋ค๋ฉด Visual="Skia"๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
@PureWeen ๋๋ visual="skia"๋ฅผ ์ข์ ์ ์์ผ๋ก ์ทจ๊ธํ์ง ์์ต๋๋ค. ๋จ์ํ ํ์ฌ xf์ ์ปจํธ๋กค์๋ ๊ฐ์ธ ์ฌ์ฉ์ ์ ์๋ฅผ ์ํ ๋ ๊ฐ์ง ์์ฑ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ธ๋ฌ์, controlTemplate ๋ฑ
๋๋ ํ์ฌ ์ปจํธ๋กค์ ์ ์ฒด API๋ก ๊ตฌํํ๊ณ ๋ํผ ๋ชจ๋ ๋์ ์ ํจํ์ง ์์ ๋ง์ ์์ฑ์ ๋ง๋ค๊ณ skia ๋ชจ๋ ๋์ ์ ํจํ๊ฒ ๋ง๋ญ๋๋ค.
์ฐ๋ฆฌ๋ ์ง๋ ๋ช ๋ฌ ๋์ Visual์์ ๋ง์ ๋ฐ์ ์ ์ด๋ฃจ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ํ ๊ทํ์ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค. Visual Challenge๋ฅผ ์๋ํด ๋ณด๊ณ ์ด ์ ์์ ํ๊ฒ ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๋์ง ์๋ ค์ฃผ์ญ์์ค. ๊ฐ์ฌ ํด์! https://github.com/davidortinau/VisualChallenge
@samhouts ๋น์ฃผ์ผ์ ์ข์ง๋ง ๊ทธ๋ฆฌ๊ธฐ๊ฐ ํ์ํ๊ณ ์๋ฒฝํ ํฝ์ ์๋ฃจ์ ์ด ํ์ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด ๊ฐ์ ์์ฒญ์ ์๊ฐ์ ๋ฐ ๋๋ฉด ์ฌ์ https://github.com/xamarin/Xamarin.Forms/issues/2452 ์ ๋ํด ๋ณด๋ฅ๋ ๋ ์ด๋์ ํด๋นํฉ๋๊น?
๋จ์ํ ํ์ฌ xf์ ์ปจํธ๋กค์ ๊ฐ์ธ ์ฌ์ฉ์ ์ ์๋ฅผ ์ํ ๋ ๊ฐ์ง ์์ฑ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ธ๋ฌ์, controlTemplate ๋ฑ
์ด๊ฒ์ ์ฌ๊ธฐ์์ ๋ฌ์ฑํ ์ ์๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ฐพ๋ ์ฐ๊ฒฐ๋ ์์ฑ์ ํตํด ๋งค์ฐ ์ฝ๊ฒ ๊ทน๋ณต๋ฉ๋๋ค.
@samhouts
์ฐ๋ฆฌ๋ ์ง๋ ๋ช ๋ฌ ๋์ Visual์์ ๋ง์ ๋ฐ์ ์ ์ด๋ฃจ์์ต๋๋ค.
์ ํฌ๋ Windows์ ๋ฐ์คํฌํ์ ์ต์ฐ์ ์ผ๋ก ์๊ฐํฉ๋๋ค. Visual์ UWP๋ฅผ ์ง์ํ์ง๋ ์์ผ๋ฉฐ ์๋์กฐ์ฐจ ํ์ง ์์ต๋๋ค.
#2452์์ ์งํ ์ค์ด๋ฏ๋ก ์ด์ ์ด ์์ ์ ์ข ๋ฃํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ์ฌ ํด์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Flutter๊ฐ ๋์ฌํ์ฒ๋ผ ๋ค๊ฐ์ค๊ณ ์์ต๋๋ค. ํด๋น ํ๋ ์์ํฌ์ ํด๋น ๋ฌธ์๋ฅผ ๋ง๋๋ ๋ฐ ๋ง์ ์์ ์ด ์งํ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ข๊ฒ๋ ์คํ ์์ค์ ๋๋ค!
ํ๋ฌํฐ ์์ง์ C++์ด๊ณ Dart๋ ๊ฑฐ์ C#์ ํ์ ์งํฉ์ด๋ฉฐ C# ๋ฐ Xamarin์ผ๋ก "๋ณํ ๊ฐ๋ฅ"ํด์ผ ํฉ๋๋ค.
์คํค ์ด์ฐจ์ ํ์นํ๋ ๊ฐ์ฅ ์์ฐ์ ์ธ ๋ฐฉ๋ฒ์ Xamarin์ด Flutter๋ฅผ ์์ฉํ๊ณ Google์ด ์์ผ๋ก ๋์๊ฐ๋๋ก ๋๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. Xamarin์ ๋ ๋์ ํ๋ซํผ ํตํฉ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์, Forms ์์ ์ ์๋์ง๋ง(์: Redux๊ฐ MVVM๋ณด๋ค ๋ ํ์คํ ์ ํ์), ์ ๋ง ๋ฉ์ง ๊ฒ์ ๋๋ค. :)
๊ฐ์ MS. ์ด์ ์ฒ๋ผ ํฌ์ฉํ๊ณ ํ์ฅํ์ญ์์ค. Fuchia๊ฐ ๋ฌผ๊ฑด์ด ๋๋ค๋ฉด ์ด์จ๋ ํด์ผ ํฉ๋๋ค.