모바일 크로스 플랫폼 개발도구 Xamarin

기업이 iOS와 안드로이드를 동시에 개발하는 데에 드는 비용은 결코 작지 않다. 이러한 이유 때문에, 그 때문에 Apache Cordova, Titanium, PhoneGap과 같은 크로스 플랫폼 개발도구가 각광을 받는다. 하지만, 앞에 언급한 솔루션들은 모두 웹 기반의 Javascript, HTML5을 사용하기 때문에 네이티브 앱과는 차이가 있을 수 밖에 없다. 이로한 크로스 플랫폼의 한계에도 불구하고 하나의 코드베이스로 여러 플랫폼을 지원할 수 있다는 장점때문에 크로스 플랫폼은 계속 각광받고있다.

크로스 플랫폼의 단점을 해결해보자 Xamarin

이런 개발 뉴스를 더 만나보세요

Xamarin은 이러한 크로스 플랫폼의 단점을 극복할 수 있는 대안으로 최근 급속도로 인기를 얻고있는 크로스 플랫폼 개발환경이다. Xamarin은 C# 기반으로 되어있어 기존의 .NET 개발자들이 배우기가 매우 쉽고 iOS, Android의 대부분 기능을 사용할 수 있도록 해준다.

Xamarin은 Mono라는 .NET 호환 개발 도구를 개발하는 오픈소스를 만드는 개발자들이 만들었다. 오랫동안 .NET 호환 개발도구를 Linux를 비롯한 다양한 플랫폼에 포팅한 경험이 있는 개발자들이 만들었기 때문에, Xamarin안에는 .NET에 경험이 많은 개발자들의 노하우가 잘 녹아들어있다. 또한 Windows Phone 플랫폼을 지원하는 앱을 늘리고 싶은 마이크로소프트의 입장에서 Xamarin과 같은 C#기반의 개발 플랫폼은 반가운 일이다. 그래서 Xamarin 컨퍼런스 를 보면 마이크로소프트가 가장 큰 후원사이기도 하고, 또 마이크로소프트가 Xamarin을 인수하는 것 아니냐는 루머도 꾸준히 있어왔다.

개발환경

개발자들은 Xamarin Studio를 사용해서 윈도우나 Mac에서 앱을 개발할 수 있으며, Visual Stuido를 위한 plugin을 사용하여 개발 할 수도 있다.

다른 크로스개발 플랫폼도 마친가지 이지만 Xamarin은 완전 무료는 아니다. 처음에 무료로 시작할 수 있는 다양한 기회를 제공하고 있지만 제대로 쓰기 위해서는 유료로 사용해야 한다 유료 plan을 사용하면 Xamarin 플랫폼 뿐 아니라 테스트 클라우드, 분석 플랫폼 등도 같이 제공한다.

또한 다양한 앱을 빠르게 개발할 수 있도록 도와주는 컴포넌트 라이브러리를 제공함 으로서 앱을 빠르게 개발할 수 있도록 도와주는 역할을 하고 있다. 유니티를 비롯판 개발 플랫폼의 성공에서 다양한 컴포넌트의 제공은 안정적이고 빠른 개발을 도와준다.

Xamarin은 iOS에서 C# 이 ARM 어셈블리 언어로 컴파일 된다. .NET 프레임웍이 포함되며 링킹 과정에서 사용되지않는 코드는 제거된다. 하지만 애플이 runtime 코드 생성을 허용하지 않으므로 Generic과 같은 기능 사용에 제약이 있다. Android에서는 컴파일시 Mono VM이 포함되며, Java/Dalvik과 같이 병렬로 실행된다.

Xamarin의 단점도 장점도 크로스 플랫폼이라는 데에서 온다

C#과 윈도우 개발환경 (Visual Studio등)에 익숙해서 Java나 Object-C / Swift공부를 없이 앱을 제작하고 싶은 개발자가 아니라면, 굳이 크로스 플랫폼 개발을 하기 위해서 C# 을 배워서 Xamarin을 쓰기에는 아직도 불편한 점이 많이 있다. Xamarin의 iOS 제약사항Android 제약사항과 같은 기술적인 문제도 있지만 어쩌면 더 큰 부분은 Android의 Back button, 메뉴바의 위치, 다른 앱과의 상호작용이나 플랫폼 철학 등 iOS/Android/Windows Phone 사이의 차이를 따로 처리해주어야 하거나 어느 부분은 포기해야 한다는 점이 더 클 수도 있다.

하지만 PhoneGap 이나 Titanium또한 웹 기술에 익숙한 개발자들이 앱을 개발할 수 있도록 도와주듯이 C#에 익숙한 개발자들은 충분히 고려해볼 만한 완성도 있는 개발환경이다. 또한 일단 제품을 빨리 개발하고 고객에 반응에 맞도록 추구 개선해야 하는 스타트업이나, UX의 중요성이 덜하고 빠르게 다양한 내부 사용자들을 위한 사내용 업무 앱을 개발해야하는 업무용 앱개발 팀에게 더욱더 매력적인 플랫폼이다.

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


Realm Korea

Realm Korea Team

4 design patterns for a RESTless mobile integration »

close