Xamarin.Forms ๋ฐ Xamarin.Essentials๋ Android 13 ํธํ์ฑ ๋ฐ .NET MAUI๋ก์ ์ ํ์ ์ค๋นํฉ๋๋ค
Xamarin.Forms ๋ฐ Xamarin.Essentials๋ ํ๋ซํผ ๊ฐ ๊ฐ๋ฐ์ ๋ฏธ๋์ธ .NET MAUI๋ก์ ์ํํ ์ ํ ๊ณํ๊ณผ ํจ๊ป Android 13์ ๋์์ผ๋ก ํ๋ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐํํ์ต๋๋ค.

Xamarin ํ์ ์ต๊ทผ Xamarin.Forms ๋ฐ Xamarin.Essentials Android 13์ ๋์์ผ๋ก ์ ๋ฐ์ดํธ๋์๋ค๊ณ ๋ฐํํ์ต๋๋ค. ์ด๋ 2023๋ 8์๋ถํฐ Android 13 ์ด์์ ๋์์ผ๋ก ํ๋ ์ Android ์ฑ์ ๋ํ Google์ ์๊ตฌ ์ฌํญ๊ณผ ์ผ์นํฉ๋๋ค. ์ ๋ฐ์ดํธ๋ ํ์ฌ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ํ์ ๋๋ค. ๋จ๊ณ๋ ์ต์ Android ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๋ ๋์์ ๋ฏธ๋์ ๊ต์ฐจ ํ๋ซํผ ๊ฐ๋ฐ์ธ .NET MAUI ํ๋ ์์ํฌ๋ก ์ํํ๊ฒ ์ ํํ ์ ์๋ ๊ธธ์ ๋ฆ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
์ด ์ ๋ฐ์ดํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก Xamarin.Forms ๋ฐ Xamarin.Essentials MonoAndroid13์ ๋ง์ถฅ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ Android 13์์ ์ ๊ณตํ๋ ์ต์ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ฌํญ์ ํ์ฉํ ์ ์์ต๋๋ค. ์ ๊ทธ๋ ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ํ๋ฆฌ๋ทฐ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋์ด ๊ฐ๋ฐ์๊ฐ ์ฑ์ ํ๊ฐํ๊ณ ์๋ฐํ ๋ณํ์ ๋๋นํ ์ ์์ต๋๋ค.
Xamarin์ ์ง์์ด 2024๋ 5์ 1์ผ์ ์ข ๋ฃ๋ ์์ ์ด๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ด๋ฏธ Android 13์ ์ง์ํ๋ .NET MAUI๋ก ์ ํํด์ผ ํฉ๋๋ค. ์ฐ์ํ ๊ต์ฐจ ํ๋ซํผ ๊ฐ๋ฐ ์์ฝ์์คํ ์ ์ ๊ณตํ๋๋ก ๊ตฌ์ถ๋ .NET MAUI๋ฅผ ์ฌ์ฉํ๋ฉด Xamarin์์ .NET ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ๋ฏธ๋. ๊ฐ๋ฐ์๋ ์์ธํ ์ ๊ทธ๋ ์ด๋ ๊ฐ์ด๋์ ์ต๊ทผ ์ถ์๋ Visual Studio 2022์ฉ .NET ์ ๊ทธ๋ ์ด๋ ๋์ฐ๋ฏธ ํ์ฅ์ ์ฌ์ฉํ์ฌ ์ฑ์ .NET MAUI๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค.
Xamarin.Forms ์ ๋ฐ์ดํธ๋ AndroidX ๋ฐ์ธ๋ฉ ํจํค์ง ๋ฐ ๊ธฐํ ์ข ์์ฑ์ ๋ํ ํธํ์ฑ ๊ฐ์ ๋ ์ ๊ณตํฉ๋๋ค. ๋ง์ ํจํค์ง๊ฐ ์ ๋ฐ์ดํธ๋์์ง๋ง Xamarin.AndroidX.Lifecycle์ ํ์ฌ ์กฐ์ฌ ์ค์ธ ์๋ ค์ง ๋ฌธ์ ๋ก ์ธํด ๋ฒ์ 2.6.1๋ก ์ ์ง๋ฉ๋๋ค. ๊ฐ๋ฐ์๋ ์ ์ ์๋ ์ด๊ฑฐํ ์์ Scope.LIBRARY_GROUP_PREFIX์ ๊ด๋ จ๋ ๋น๋ ์ถ๋ ฅ์์ ๊ฒฝ๊ณ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. Gerald Versluis์ ๋ฐํ ๊ฒ์๋ฌผ์์ ๊ฐ์กฐํ ๋ฐ์ ๊ฐ์ด ์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌ ์ค์ ๋๋ค.
Xamarin.Forms ๋ฐ Xamarin.Essentials ๋ก Android 13์ ๋์์ผ๋ก ์ง์ ํ๊ธฐ ์ ์ ๊ฐ๋ฐ์๋ Xamarin.Android 13์ด ์ค์น๋์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๋ค์์ผ๋ก NuGet ํจํค์ง๋ฅผ ์ต์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ์ (Xamarin.Forms 5.0.0.2599-pre1 ๋ฐ Xamarin.Essentials 1.8.0-preview1)์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ Android ํ๋ก์ ํธ์ AndroidManifest.xml์์ targetSdkVersion์ 33(Android 13)์ผ๋ก ์์ ํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ค์ ๋น๋ํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ฑ์ ๊ธฐ๋ฅ๊ณผ ํธํ์ฑ์ ํ๊ฐํ ์ ์์ต๋๋ค.
ํด๋น ์ ํ์ ๋ํ Xamarin์ ์ง์์ด 2024๋ 5์ 1์ผ์ ์ข ๋ฃ๋๋ฏ๋ก ๊ฐ๋ฐ์๋ ํฅํ ํ๋ซํผ ๊ฐ ํ๋ก์ ํธ๋ฅผ ์ํด .NET MAUI๋ก์ ์ ํ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. .NET MAUI๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๊ฒ์ด ์ข์ผ๋ฉฐ ๊ธฐ์กด Xamarin.Forms ํ๋ก์ ํธ๋ .NET Upgrade Assistant๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค. .NET MAUI ์ฑํ์ ์ํ ํฌ๊ด์ ์ธ ๋ฆฌ์์ค๋ ์ค๋ช ์๋ฅผ ํตํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ Xamarin.Forms ๋ฐ Xamarin.Essentials ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์์ Android 13์ ๋์์ผ๋ก ํ๊ณ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ต์ Android ๊ธฐ๋ฅ์ ํ์ฉํ๊ณ .NET MAUI๋ก์ ์ ํ์ ์ค๋นํ ์ ์์ต๋๋ค. ์ด ์ ๋ฐ์ดํธ๋ ํธํ์ฑ์ ๋ณด์ฅํ๊ณ ๊ฐ๋ฐ์๊ฐ ํ๋ก์ ํธ๋ฅผ ์ ํํ ์ ์๋ ์ถฉ๋ถํ ์๊ฐ์ ์ ๊ณตํฉ๋๋ค. ํ๋ฆฌ๋ทฐ ๋จ๊ณ ์ดํ Android 13์ ๋์์ผ๋ก ํ๋ Google์ 2023๋ 8์ ๊ธฐํ ํจ์ฌ ์ด์ ์ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. Xamarin์ ์ง์ ์ธ์๋ AppMaster ํ๋ซํผ์ ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์ ์ํ no-code ์๋ฃจ์ ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์์ ๋น์ฆ๋์ค ๋ชจ๋๋ฅผ ์ํ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํฉ๋๋ค.


