최근 바뀜
통계
임의의 문서로
도움말
문서
토론
원본 보기
역사 보기
로그인
.NET MAUI 문서 원본 보기
내위키
←
.NET MAUI
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
Xamarin. 크로스플랫폼 애플리케이션 개발 도구. [[안드로이드]]와 [[iOS]], [[윈도우 모바일]]을 지원하므로 모바일 개발도구로 널리 알려져 있지만 윈도우 RT 환경 및 실버라이트도 지원하기 때문에 데스크톱으로까지 확장될 수 있다. 하지만 모바일용, 특히 [[안드로이드]]와 [[iOS]] 크로스플랫폼 개발을 위해 쓰는 경우가 압도적으로 많으므로 다른 건 무시해도 좋을 정도다. [[.NET]] 프레임워크를 [[윈도우]] 이외의 운영체제에서 돌리는 모노 프로젝트에서 파생된 것으로, 개발 언어는 [[C#]]이다. [[윈도우 모바일]]이야 [[C#]]을 쓰지만 [[안드로이드]]는 [[자바]], [[애플]]은 Objective-C → [[Swift]] 언어를 사용하고 있는데, 자마린은 각 운영체제별 API를 몽땅 [[C#]]으로 구현해 놓았다. 즉, [[C#]] 하나만 쓰면 두 운영체제 및 [[윈도우 모바일]]을 한 가지 언어로 개발할 수 있는 것. <ref>그런데 2016년부터 [[오라클]]과 [[자바]] 관련 소송에 지친 [[구글]]이 [[자바]] 대신 [[Swift]]로 갈 지도 모른다는 얘기가 돌고 있다. 그러면 Swift 하나로 [[안드로이드]]와 [[iOS]]를 다 개발할 수 있게 되는 셈. 실제 개발 과정은 많이 다르겠지만 비즈니스 로직만 공유할 수 있어도 그게 어딘데.</ref> 과거에는 유료였지만 [[MS]]가 인수하고 무료로 풀어버렸다. [[비주얼 스튜디오]] 커뮤니티 에디션에 자마린을 사용하면 완전 공짜. 다만 [[윈도우]]는 [[비주얼 스튜디오]], [[맥]]은 [[자마린 스튜디오]]로 개발환경이 거의 고정되어 있다. 하지만 [[비주얼 스튜디오]]가 워낙에 좋은지라 무료로 쓸 수 있는데 딴 걸 굳이 찾을 필요는... ==특징== 대부분의 크로스플랫폼 개발 도구들이 [[자바스크립트]]<ref>요즘은 [[타입스크립트]]도 많이 사용한다. [[Angular 2]]가 이걸 채용한 게 컸다. 그런데 [[타입스크립트]]는 [[MS]]가 만든 거다.</ref>를 사용하고 있는 반면, 자마린은 [[C#]]을 사용한다. 모바일 크로스플랫폼 앱 개발에 많이 쓰이는 아파치 코르도바는 웹 뷰에서 프로그램을 돌린다. 즉, 웹 앱처럼 [[HTML]]과 [[CSS]], [[자바스크립트]]를 사용하고 다만 이들 자원을 인터넷 연결이 아니라 로컬에서 돌리는 하이브리드 앱 방식으로 뭐든 뷰가 바뀌는 부분이 있을 때마다 서버와 왔다갔다 해야 하는 웹 앱보다 빠르게 동작하고 네트워크 트래픽을 안 먹는다. 반면 자마린은 네이티브, 즉 각 운영체제별 고유 코드와 UI를 활용하는 방식으로 만들어진다. 이와 같이 네이티브 앱을 만드는 크로스플랫폼 개발 도구로는 [[페이스북]]의 [[리엑트 네이티브]]나 텔레릭의 네이티브스크립트(NativeScript) 같은 것들이 있다. 코르도바의 방식이 하이브리드 앱보다는 빠르지만 역시 네이티브보다는 느리다는 단점이 있는데, 그런 면에서 보면 속도에서는 처음부터 각 운영체제별 개발 도구로 개발한 진짜 네이티브 앱보다는 느리지만 자마린도 상당히 좋은 결과물을 낸다. ==개발 과정== 처음에 프로젝트를 생성할 때에는 몇 가지 선택을 해야 한다. 일단 한번 선택을 하고 나면 바꾸기가 쉽지 않으므로 신중하게 선택해야 한다. ===UI 구현=== 비즈니스 로직은 C#을 사용해서 구현하면 어느 운영체제에서든 쉽게 가져다 쓸 수 있다. 문제는 UI 부분. 각 운영체제별로 UI를 구성하는 요소나 레이아웃, 뷰의 구현 방법이 제각각이다. 아파치 코르도바는 네이티브 UI를 거의 무시하고 웹 페이지처럼 구현해서 사용하지만 자마린은 네이티브 UI를 최대한 활용한다. 따라서, * UI는 각 운영체제별로 따로 구현을 한다. 이 때에도 [[C#]]을 사용해서 구현할 수 있다. 아니면 공유 라이브러리를 만들고 각 운영체제의 네이티브 개발 환경에서 불러다 쓰는 방법도 있긴 하지만 상당히 까다롭다. * Xamarin.Forms를 사용해서 UI도 같은 코드로 구현하고 운영체제별로 만져줘야 하는 부분만 따로 만질 수 있다. 멀티 플랫폼 개발을 신속하게 할 수 있는 장점이 있지만 운영체제별로 따로 구현하는 것보다 UI에 제약이 많고 실제 결과물이 운영체제별로 미묘한 차이가 있는 건 어쩔 수 없어서 이걸 조정하는 과정도 꽤나 손이 간다. 업계의 설명에 따르면 약 95% 정도의 코드를 공유할 수 있다고 한다. ===코드 공유 방법=== 두 가지 옵션 중 하나를 선택해야 한다. * 포터블 클래스 라이브러리 (Portable Class Library, PCL) : 공통되는 코드들이 DLL 형태로 만들어지고 이 라이브러리를 각 운영체제별 코드가 불러다 쓰는 구조다. * 공유 자산 프로젝트 (Shared Asset Project, SAP) : DLL을 따로 만들지 않고 각 운영체제별 실행파일 안에 같이 들어간다. [[안드로이드]]용 앱은 [[윈도우]] 환경에서 에뮬레이터도 돌릴 수 있고 개발이 원활하지만 [[iOS]]용 앱은 윈도우 환경에서는 실행 파일을 만들 수 없어서 [[맥]]이 필요하고 Xcode도 설치해야 한다. 만약 주 개발 환경이 [[윈도우]]라면 [[윈도우]]와 [[맥]]을 네트워크로 연결하고 [[맥]]에서 빌드를 진행한다. [[비주얼 스튜디오]] 엔터프라이즈 에디션을 쓰면 [[윈도우]] 환경에서도 [[iOS]] 에뮬레이터를 돌릴 수 있다. <del>문제는 엔터프라이즈 에디션 가격이 [[맥북]]보다 비싸다는 것. 그냥 [[맥북]] 사자.</del> ==전망== 모바일 앱 개발 시장의 점유율 면에서야 아직은 작다. 네이티브 개발이 제일 많고, 웹 앱이나 하이브리드 앱이 그 다음이고 리액트 네이티브나 자마린은 성장 단계. 아무래도 진입 장벽이라는 면에서는 [[자바스크립트]]가 낮기도 하고 이미 [[자바스크립트]]를 사용하는 웹 개발자가 많기 때문에 [[C#]] 기반의 자마린이 좀 불리할 수는 있다. 하지만 [[C#]] 자체가 좋은 언어이기 때문에 개발의 규모가 커지면 유지보수나 디버깅 측면에서는 유리하기도 하고, [[윈도우 모바일]]이 대차게 망한 상태에서 [[MS]]로서는 모바일 앱 개발 시장의 주도권이라도 노려보자는 생각으로 자마린을 열심히 밀고 있다.<ref>하지만 [[비주얼 스튜디오]]는 아파치 코르도바 환경도 꽤 열심히 지원해 주고 있다. <del>양다리 걸쳐서 둘 다 먹자. 코르도바 쪽도[[ 타입스크립트]]를 밀어넣어 놨으니까.</del></ref> 초기에는 굉장히 제한도 많고 버그도 많아서 덤볐다가 피본 사람들이 많지만 계속해서 기능이 향상되고 버그도 줄고 있어서 쓸만하다는 개발자, 더 나아가서는 강추하는 개발자들도 늘어나고 있다. 온라인 도움말도 꽤 잘 되어 있고, [[윈도우]] 계열 개발에 관한 명저를 여럿 쓴 바 있는 [https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/ 찰스 페촐드가 쓴 <Creating Mobile Apps with Xamarin.Forms> eBook을 공짜로 풀기까지 했다.] PDF 기준으로 무려 1187나 된다. 영어가 되는 초보자라면 이걸 보고 공부하면 무척 좋다. 상대적으로 한글 자료는 아직은 좀 부족한 편. {{각주}}
이 문서에서 사용한 틀:
틀:각주
(
원본 보기
)
.NET MAUI
문서로 돌아갑니다.
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보