자마린으로 굿닥앱 만들기 – 1 – Xamarin 소개

XAMARIN 소개


자마린은 iOS, Android, Windows Phone 개발을 위한 크로스 플랫폼 도구이며 최근에 MS가 인수하여 주목을 받고 있다.

기존 유니티, 폰갭등의 크로스 플랫폼 도구와 다른 큰 특징 중 하나는 공통화된 자마린 프레임웍이 존재하면서도 플랫폼별 네이티브 계층에 접근이 가능한 점이다. 그래서 각 플랫폼의 고유 기능을 대부분 같게 구현할 수 있다.image_9beb523f-8a48-4812-a600-818fc9630e54

아직 여타 다른 크로스 플랫폼 도구보다는 인지도가 많이 적은 상황이지만 슬랙, 다우존스, ING같이 규모 있는 회사들이 자마린으로 앱을 개발해 서비스 중이다. 게다가 MS에 인수된 뒤 라이센스가 무료로 전환되어 크로스 플랫폼 도구를 검토 중이라면 좋은 선택이 될 수 있다.

해당 연재 글의 최종 목적은 자마린으로 Windows Phone 그리고 Android 앱을 만들어 각 마켓에 올리는 것 (굿닥 앱 개발팀 의문의 실업자행). 그리고 새로운 플랫폼을 적용해보며 겪는 갖은 삽질과 분노를 공유하고자 하며 아래 독자들에게 특히 더 유용할 듯하다.

  • 같은 일을 반복하는 것이 싫으신 분
  • 최소한의 자원으로 iOS, Android, Windows Phone 앱을 동시에 개발하시고 싶으신 분
  • 저는 서버 개발자인데 갑자기 사장님이 앱을 만들래요(…)
  • MS 기반 개발이나 C#에 익숙하신 분

그럼 자마린이 어떻게 동작하는지 간략히 살펴보도록 하자.

플랫폼 구조도 #1


공통 로직 부분이 존재하고 플랫폼별로 특성화된 UI 로직을 따로 작성할 수 있다. 안드로이드는 기존 JAVA 로직과 거의 같게 C#으로 앱을 작성할 수 있다. (약간의 제약이 있는 점을 제외하면 iOS도 같다.)

플랫폼 구조도 #2 – 자마린 폼즈


또 다른 특징으로 자마린을 하며 아마도 가장 많은 삽질과 분노를 겪을 자마린 폼즈(Xamarin Forms)라는 것이 존재한다. 위 그림에선 공통 로직 부분이 플랫폼별 UI와 완전히 분리되어 있었지만 아래 그림은 조금 다르다.

container2

플랫폼별 네이티브 계층이 얇아진 것을 볼 수 있는데 자마린 폼즈가 각 UI 로직을 일부 담당하게 되어 그렇다. 자마린 폼즈를 이용하면 UI 중복 작업 제거를 기대해 볼 수 있겠다. 잘 안돼서 분노도 증가하겠지만.

자마린 폼즈는 객체지향 프로그래밍 원칙 중 DIP(의존성 역전 원칙)를 염두에 두며 작업하면 좋을 듯하니 잠시 짚고 넘어가 보자.

#자마린 폼즈를 위한 DIP 설명

간략히 자마린을 살펴보았으니 다음 글에서는 굿닥 메인 화면을 컴파일해 보도록 하자. 메인 화면이 궁금하신 분은 스토어에서 내려받아 미리 앱을 실행해보면 된다. 별 다섯 개를 주는 것도 잊지 말자.

글쓴이

CHO

차가운 도시 개발자.
하지만 여성 기획자에겐 따듯합니다.