본문 바로가기

기록/란?

Xamarin Forms 란?

반응형

ref : https://docs.microsoft.com/en-us/xamarin/

 

보통 자마린은 자마린폼즈를 칭한다.

자마린폼즈와 자마린 네이티브의 차이점은 아래 포스팅에서 확인 가능

Xamarin.Forms vs Xamarin.Native

 

자마린은 크로스플랫폼 프레임워크이다.

 

C#을 사용하여 Android, iOS 앱 개발을 동시에 할 수 있다.

 

이론상 100%에 가까운 크로스플랫폼개발을 진행할 수 있다. (현실은 그렇게 녹록지 않다)

 

Visual Studio 에서 Xamarin foms 솔루션 생성시 기본적으로 공유프로젝트Android, iOS 총 3개의 프로젝트가 만들어진다.

 

공유프로젝트에 UI코드 및 로직코드가 들어간다.

 

공유프로젝트에서 View나 Page class를 이용해 화면을 구성하고 주로 MVVM패턴을 사용한다.

 

Android와 iOS에는 각각 MainActivity, AppDelegate 클래스가 있고 프로그램의 진입점이다.

 

프로그램 실행시 진입점에서 공유프로젝트에 있는 App class를 호출한다.

(즉, 기본적인 실행순서는 Native -> 공유코드 이다)

 

공유코드에서 DependencyService를 이용하여 Native쪽 코드 사용도 가능하다. (공유코드 -> Native)

 

HelloWord만 출력하는 기본앱도 실행시 3-4초가 걸린다.

(크로스플랫폼 관련 설정 최적화 및 SplashScreen을 사용하면 상용화에는 큰 무리가 없다)

 

Android 관련 최신 이슈들 반영이(당연하게도)느리다. (java 코드의 래퍼이다보니)

 

Android, iOS 각각 구현해주어야만 하는 것들이 있다.

(Push Notification, store 관련 처리, 리소스 핸들링 등.. 생각보다 많음)

 

내가 만들려는 앱의 스펙이 위 내용들을 많이 포함할수록 크로스플랫폼의 매리트는 떨어진다. (각각 구현해줘야 하므로)

각각 구하려면 Android, iOS관련 내용을 알아야해서 해야할게 많아지고 고민이 시작된다.

 

Android의 기피포인트중 하나인 다양한 버전 대응은 자마린 역시 피해갈 수 없다.

 

결론 : 크로스플랫폼을 최대한 활용할 수 있는(각각 구현해주어야 할 것이 거의 없는) 앱을 개발할 예정이라면

자마린 (폼즈) 사용할 만 하다.

 

반응형