한발 앞서 배워보는 xamarin overview
TRANSCRIPT
용영환 / 서울옥션블루
Xamarin Overview
Xamarin을 고민하게 된 계기
• 짧은 시간 안에 iOS 와 안드로이드를 모두 개발해야 했다.
• 웹개발자인 내가 해야 하는데...
• 나는 해야만 했다.
• 1주일!!
설치하기
설치하기
설치하기
Full name, 꼭 이름을 다 쓰셔야 합니다.
설치하기
시작하기
프로젝트 만들기
프로젝트 종류
환경 종류 설명
Cross-platform Xamarin.Forms App
iOS Single View App 하나의 뷰가 화면 전체를 구성
Master-Detail App 계층구조. 예) 주소록
Tabbed App 탭으로 이동
Page-Based App 책장을 넘기는 듯한 구성
Webview App 웹뷰
Android Android App 기본 안드로이드 구성
Wear App 스마트워치
WebView 웹뷰
Mac Cocoa App 애플 맥 GUI 개발
Other Console Project 쉘 같은 콘솔 프로그램 개발
Gtk# 2.0 Project GTK#
Xamarin C# Library Bind to OS
Xamarin.Forms Solution Architecture
Xamarin.Forms Solution Architecture
제가 생각하는 Xamarin 장점
• C# 을 사용한다.
• Windows, Mac OS 편한 곳에서 개발할 수 있다.
• 공통된 비지니스 로직을 한번만 만들면 된다.
• 조금 덜한 노력으로 다양한 환경을 대응할 수 있다.
Xamarin 시작 전 알아야 할 점
• 조금 느린 감이 있습니다.
• 완전히 동일한 UI 를 생각하지는 않으시는 게 좋습니다.
• iOS와 Android 등 특성에 대해 어느 정도는 아셔야 합니다.
• MVVM 를 이해해야 합니다.
Xamarin OS에 따른 UI 차이
MVVM
ViewModel
INotifyPropertyChanged 와 INotifyCollectionChanged 인터페이스를 통한 변경통지 이벤트로 뷰에 변경 여부를 알립니다.
Data Binding
Mode Description
Default 바인딩을 할 때, 바인딩이 BindableProperty를 사용해야 하는 것을 표시한다. BindableProperty 선언이 사용될 때, 기본적으로 BindingMode는 OneWay 가 된다.
OneWay 바인딩이 소스( 일반적으로 View Model)에서 바인딩하는 대상(Target)으로 변경사항을 퍼뜨릴 수만 있도록 한다. 이것이 기본 모드이다.
OneWayToSource 바인딩이 바인딩 되는 대상 객체로부터 소스 ( 일반적으로 View Model )로 변경 사항을 퍼뜨릴 수만 있도록 한다. BindableProperty 값을 Read-only 되는 효과를 얻는다.
TwoWay 바인딩이 소스( View Model )와 바인딩되는 대상 객체 간에 양방향으로 변경 값을 터뜨릴 수 있다.
Xamarin NuGet
고용량 이미지 문제
Xamarin 예제 사이트
• https://github.com/xamarin
• http://developer.xamarin.com/samples/xamarin-forms/All/
• https://github.com/conceptdev/xamarin-forms-samples