Xamarin 과연 쓸만한가

Xamarin은 한마디로 애증의 기술입니다.

WebView를 이용하는 하이브리드앱 기술이든 중간자를 이용한 Xamarin 같은 멀티플랫폼앱 기술이든 5년 내내 개발자들과 CTO들을 갈등하게 만듭니다.

▲ Xamarin과 Blockchain 연동이라지만 그냥 Azure Blockchain WebAPI 용례입니다. 속았잖아!

Xamarin의 장점은 하이브리드앱 보다 네이티브API 연동이 더 직관적이고, 단점은 안드로이드/iOS 둘 모두 중급의 실력을 필요로 한다는 것입니다. ‘네이티브로 컴파일된다’는 기치를 걸고 있는 ReactNative, NativeScript는 Xamarin보다 복잡도가 더 높다는 생각이 듭니다. 저는 그래요.

왜냐하면 네이티브 프로그래밍에 가까운건 C# 코드와 1:1 변환 수준인 Xamarin과 HTML+JS+CSS를 동원하는 다른 것들과는 중간자의 복잡도에 있어서 시작부터 게임이 안되거든요. 아키텍처 관점에서의 논리랄까요.

JS기반 하이브리드앱 프레임워크(대표적으로 Cordova, Phonegap)들은 네이티브 연동을 위해서는 npm 모듈이 나올 때까지 멍때려야 하는 경우도 있지만 양쪽 플랫폼 모두 중급의 실력까지는 필요 없다는 점이 장점입니다. 뭐 실력이 좋으면 직접 모듈을 작성하면 되겠지만 하이브리드가 아닌 경우에는 ‘그냥’ 되는걸 굳이 왜그래야하나 싶은 생각이 들기 마련이죠. 특히 비슷한 기능의 npm이 여러개인데 뭐가 좋은지 어디까지 믿어야 하는지 고민할 때마다 ‘내가 지금 왜 하이브리드앱을 선택했다는 이유로 이런 것에 시간을 써야하나’싶죠.


저는 클라이언트 개발에 있어서 언제나 네이티브 주의자인데, 요즘은 ‘평범한 소셜 앱서비스’ 정도는 하이브리드로 최대한 버티려는 마음도 있습니다. 특히 다른 분들에게는 하이브리드를 추천합니다. 왜냐하면 저희 팀처럼 보폭을 착착 잘맞추는 팀은 많지 않기 때문입니다.

그래도 여전히 Xamarin을 눈여겨보는 이유는 양쪽 플랫폼의 발전에 꽤 빠른 속도로 따라가고 있는 점을 높이 사기 때문입니다. 예를 들어 지문인식 API 등 OS에 강하게 결합하는 API의 지원은 여느 하이브리드앱보다 빠르게 대응해왔습니다.

Xamarin의 인기가 적은 이유는 두가지라고 생각합니다.
멀티플랫폼 모두에 대한 중급 이상의 실력이 필요: Microsoft는 외계인들이 많겠지만, 평범한 회사는 둘 중 하나만 잘하거나 둘 다 못하는 개발자들이 대부분이죠.
훌륭한 설계가 필요: Microsoft는 IT 역사에서 가장 아키텍처링을 잘 하는 회사입니다. 하지만 대부분의 IT회사는 하루하루 먹고살기 바빠서 아키텍처에 쓸 시간이 부족하고 언제나 레거시에 허덕이고 있습니다.


그런데 요즘 하이브리드, 멀티플랫폼 모두 의미없게 만드는 경향이 작년부터 강하게 밀려옵니다.

다름 아닌, kotlin/swift 언어인데요. 공교롭게도 두 언어의 느낌이 비슷~합니다. 그러다보니 많은 개발자들에게 언어간 적응력이 뛰어납니다. 이제는 Android/iOS 양측의 이해도만 적당히 갖추면 두 언어를 오가며 개발하는 것도 큰 불편이 없어질거라 생각합니다.

여러분이 앱개발자라면, 2019년에는 완전히 kotlin/swift로 전향하는 것을 목표로 하길 권합니다. Xamarin은 XAML Standard가 성숙한 다음에 고려하는 것이 맞겠습니다.

광고

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중