♣ 개발

Xamarin를 이용한 Cross-Platform 앱 개발

SlowDreamer 2020. 4. 13. 10:13

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)이상 그러나 최소 APIAndroid5.0(API21)로 권장

-       Windows 10 유니버셜 Windows 플랫폼

-       Samsung Tizen

-       macOS

-       GTK#

-       WPF

 

※ iOS, Android UWPXamarin.Forms 앱은 Visual Studio에서 빌드할 수 있으나, 최신버전의 XCode Apple이 지정한 macOS 최소버전을 사용하려면 네트워크로 연결된 Mac이 필요

※ iOS AndroidXamarin.Forms 앱은 MacVisual 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