Xamarin 따라하기 샘플코드

요즘 Xamarin 관련  문의가 많이 오는 편입니다. 여러 기업들이 관심을 가지고 검토하고 적용하고 있습니다. 크로스 플랫폼 모바일 개발이 필요하고, 쉽지 않은 크로스 플랫폼 개발을 Xamarin이 해결을 해줄 수 있기 때문에 관심이 많아진 것 같습니다. 오랫동안 멀티플랫폼, 크로스플랫폼이라는 주제로 많은 제안들이 있었지만 제 생각에는 Xamarin이 가장 완성도가 높은 것 같습니다.

아래는 Xamarin 사이트에 있는 따라하기 문서 모음 입니다. 이걸 따라 하다보면 Xamarin 개발의 기본 컨셉이 머리속에 쏙 들어옵니다. 내용이 영어지만 그림이 많아서 괜찮습니다.^^ 약 30분 정도 시간을 내서서 쭉 따라해보시길 권해드립니다.

1. Visual Studio 설치

https://developer.xamarin.com/guides/android/getting_started/installation/windows/
Visual Studio Community Edition이 설치되고 Android SDK 등 환경이 설치됩니다. Activation은 안하셔도 됩니다. 추가로 “제어판 > 프로그램 추가 삭제 > Visual Studio 2015” 오른쪽 클릭 “Modify” 누르셔서 아래 체크 해주시면 Android Emulator를 사용하실 수 있습니다.

android emulator install

2. Android 따라하기

https://developer.xamarin.com/guides/android/getting_started/hello,android/hello,android_quickstart/
저의 경우 아이콘 관련 오류가 발생했는데 (오류 메시지가 기억이 안나고 재현이 안되네요) 이미지에 컬러 프로파일 문제로 ImageMagic 툴로 Strip 해서 해결했습니다. 두번째 과정인 Deep Dive를 따라하시면 페이지 이동까지 해볼 수 있습니다. 에뮬레이터로 실행하실 때 Andoid KitKat 5인치 에뮬레이터를 사용해보세요.

3. iOS 따라하기

먼저 iOS를 에뮬레이터에서 실행해보려면 안타깝게도 Mac이 있어야 합니다. Mac을 옆에 두고 https://developer.xamarin.com/guides/ios/getting_started/installation/ 문서를 보고 설치하면 리모트 맥에서 빌드하고 맥에서 에뮬레이터로 확인할 수 있습니다. 1단계 https://developer.xamarin.com/guides/ios/getting_started/hello,_iOS/ , 2단계 https://developer.xamarin.com/guides/ios/getting_started/hello,_iOS/hello,_iOS_deepdive/

4. 공유 라이브러리 사용

Xamarin으로 Cross Platform 개발할 때 비즈니스 로직 같은 공통 기능은 최대한 공유해서 사용해야 효율이 높습니다. Xamarin을 사용하는 이유이기도 하구요. 위의 따라하기 샘플을 해보셨다면 그 중에서 PhoneTranslator 클래스가 공유 가능하고 전화를 거는 로직은 각 플랫폼 프로젝트에 위치해야 합니다.

Visual Studio 에서 “File > New > Project” 를 선택해서 C# - Windows 에서 Class Library (Portable) 을 선택하고 Core 라고 이름을 붙여 추가합니다.

potable class library

PLC(Portable Class Library)는 여러 플랫폼에서 사용할 수 있으므로 대상 플랫폼을 선택해줍니다.

PLC config

방금 생성한 PLC(Portable Class Library) 프로젝트에서 오른쪽 클릭해서 “Add > New Item > Class”를 선택해서 PhoneTranslator.cs 를 추가합니다.

add plc

추가한 PhoneTranslator.cs 파일에 Adroid 따라하기에 있는 PhoneTranslator 클래스 코드를 복사해서 넣어줍니다.

이제 Adroid 프로젝트와 iOS 프로젝트의 Reference 에서 각각 오른쪽 클릭 후에 Add Reference 를 선택합니다. Project 탭 Solution 에서 Core 프로젝트를 선택하여 추가합니다. 그리고 Adroid 프로젝트와 iOS 프로젝트의에 포함되어 있던 PhoneTranslator.cs를삭제합니다.

네임스페이스가 변경되어 발생하는 오류가 있다면 수정해줍니다. 정상적으로 실행이 된다면 Potable Class Library를 각 플랫폼이 공유해서 사용하게 됩니다.

5. Android 용 JAR 라이브러리 사용 따라하기

Andoid 앱을 개발할 때 여러가지 오픈소스 코드를 사용하기도 합니다. 또한 오랫동안 많은 투자를 해서 만들어 놓은 라이브러리도 있을 것 입니다. 이걸 버릴 수는 없기에 Xamarin에서 활용하는 방법을 제공 합니다.  JAR 형태로 배포되는 Picasso 라는 이미지 로딩 라이브러리를 Xamarin에서 사용하는 방법을 설명했습니다. 즉 JAR에 포함된 API를 C# 으로 랩핑해서 Xamarin.Android 에서 사용하는 방법입니다. https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-a-jar/

6. Java 개발자가 Xamarin 을 시작할 때 읽어볼 만한 글

https://developer.xamarin.com/guides/android/advanced_topics/xamarin-for-java/

7. Objective-C 개발자가 Xamarin을 시작할 때 읽어볼 만한 글

https://developer.xamarin.com/guides/ios/advanced_topics/xamarin_for_objc/

8. 추가 샘플

Xamarin 샘플 페이지 https://developer.xamarin.com/samples-all/ 에 참고할 만한 샘플이 많이 있습니다. 모든 코드는 GitHub에 공유되어 있습니다. Tasky 같은 샘플이 도움이 많이 될 것 같습니다.