Share via


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 같은 샘플이 도움이 많이 될 것 같습니다.