Xamarin을 이용한 Cross Platform 개발
l 개요
C#언어를 이용하여 Android, iOS, Windows를 개발할 수 있는 크로스플랫폼 개발도구
2016년 Microsoft에서 인수 후, Visual Studio에 통합되었으며, Visual Studio를 사용하는 한 별도의 라이센스 비용 없다.
- Xamarin의 핵심은 코드공유, 플랫폼별 코드 재사용성을 높이는 것이 목적
- C#만을 이용하여 코드를 작성하며, 다른 언어는 라이브러리형태로 포함가능
- Native 개발 방식을 이용해 플랫폼 별로 기존 앱 작성과 동일한 방식으로 앱 개발 가능
- Forms 개발 방식을 통해 모든 플랫폼에서 작동하는 앱 개발 가능
Native 앱 개발 방식 - 각 플랫폼 별도 개발 |
∙ Android, iOS, Windows를 각각 기존 방식으로 개발 ∙ 지원하는 플랫폼의 모든 Native API가 C# 스타일의 API로 구현되어있음. |
Forms 앱 개발 방식 - 하나의 화면으로 개발 / 크로스 플랫폼 지원 / 각 플랫폼 별 Look and Feel 제공 |
∙ 단일한 공유 코드 베이스에서 Android, iOS, Windows 애플리케이션 빌드 가능 ∙ 플랫폼 전반에서 UI Layout과 디자인을 공유 ∙ 플랫폼 전반에서 코드, 테스트 및 비즈니스 논리를 공유 |
l 장점
1. 높은 생산. C# 개발자들이 추가적으로 다른 언어(Kotlin, Swift)를 배우지 않아도 Android/iOS 앱을 한번에 만들 수 있다.
2. 적은 유지보수 비용. 멀티플랫폼 지원 시, 유지보수에 발생하는 비용을 줄일 수 있다.
3. Xamarin.Forms을 통해 공통 개발이 불가능한 부분은 Xamarin.Native로 작성이 가능하다.
4. 다양한 nuget 패키지를 이용할 수 있다.
5. 지속적인 지원. 플랫폼 별 OS 대응 및 Android 및 iOS 업데이트에 맞춰 API 제공 등 지속적인 지원이 되고 있다.
6. Xamarin의 Native 방식과 Forms 방식 모두 최종 생성되는 앱은 네이티브 바이너리로 코드 자체의 수행 속도는 XCode나 Android Studio로 개발한 앱과 차이가 없다.
l 단점
1. 레퍼런스가 적다. 특히 국내 서적은 없다시피하며, 커뮤니티는 매우 작은 상황. 프로젝트 도입 전, 충분한 연구 필요.
2. 추가적인 네이트브 작업 필요. 네이티브 UI의 세부적인 설정을 100% 구현하지 못하는 경우가 많아 추가적인 네이티브 코딩이 필요하다.
3. 기본 앱 용량이 크다. : 앱 빌드 시, Xamarin 플랫폼이 함께 빌드되기 때문에, 기본 앱 용량이 크다.
4. 잔여 버그 : 메모리 이슈과 같은 버그 존재. 같은 코드라 하더라도 네이티브에 비하여 기기에 따라 지연이 발생할 수 있다.
l 요약
Xamarin.Forms는 UI Layout부터 Page Logic의 코드까지 하나로 공유하기 때문에 다중 플랫폼 개발에 있어 네이티브보다 확실한 강점이 있다.
그러나 그만큼 제약이 있고, 단점들이 있기때문에 타협이 필요하다.
l Xamarin.Forms 작동방식
참고 : https://docs.microsoft.com/ko-kr/xamarin/get-started/what-is-xamarin
Xamarin.Android : C# -> IL -> 어플리케이션 시작 -> [JIT] -> native Assembly
Xamarin.iOS -> C# -> [AOT] -> native Assembly
하나의 코드로 안드로이드와 iOS에서 약 90%이상의 코드를 공유할 수 있으며, 10%이하의 OS별 코드를 작성하여 OS별 네이티브 앱 개발이 가능하다.
l 지원 플랫폼 (2020.01.22)
- iOS 9이상
- Android4.4(API19)이상 그러나 최소 API는 Android5.0(API21)로 권장
- Windows 10 유니버셜 Windows 플랫폼
- Samsung Tizen
- macOS
- GTK#
- WPF
※ iOS, Android 및 UWP용 Xamarin.Forms 앱은 Visual Studio에서 빌드할 수 있으나, 최신버전의 XCode와 Apple이 지정한 macOS 최소버전을 사용하려면 네트워크로 연결된 Mac이 필요
※ iOS 및 Android용 Xamarin.Forms 앱은 Mac용 Visual Studio에서 빌드 가능
l 기타 정보
나무 위키 : https://namu.wiki/w/Stack%20Overflow
블로그 : https://blog.naver.com/tristein/220857822732
Xamarin 공식 설명서 : https://docs.microsoft.com/ko-kr/xamarin/
'♣ 개발' 카테고리의 다른 글
홀로랜즈에 앱 배포하기 (0) | 2020.02.19 |
---|---|
UWP 앱 배포 패키지 만들기 (0) | 2020.02.19 |
Visual studio 완전 삭제 (1) | 2016.02.18 |