티스토리 뷰
이 문서에서는 다음 주제를 다룹니다.
이 페이지에서 참고 영역은 Xamarin.Forms 책의 내용에서 달라진 부분이 무엇인지 기술하고 있습니다.
프로그래밍에서 가장 즐겁지 않은 작업 중 하나는 다른 플렛폼으로 코드를 포팅하는 작업입니다. 특히 다른 프로그래밍 언어로 포팅하는 작업은 까다로운 작업입니다. 포팅 과정에서 리팩토링 충동을 느낄 수 있으며, 포팅된 코드와 기존 코드는 동시에 유지보수 되어야 하기 때문에 두 코드베이스 간의 차이점들은 앞으로의 유지보수 작업을 더욱 힘들게 할 것입니다.
크로스 플렛폼 모바일 개발
이 문제는 모바일 플렛폼을 타겟으로 개발할 때 일반적으로 발생합니다. 현재 모바일 플렛폼은 크게 두개로 나눌 수 있습니다. iOS 운영체제를 사용하는 iPhone, iPad 애플 제품군과 Android 운영체제를 사용하는 수많은 스마트폰과 태블릿 제품군이 있습니다. 그 외에 중요한 플렛폼으로는 마이크로소프트의 Universal Windows Platform (UWP)이 있으며 Windows 10과 Windows 10 Mobile을 타겟으로 하는 단일 프로그램을 개발을 지원합니다.
이러한 세 플랫폼을 대상으로 소프트웨어를 개발하려는 공급 업체는 서로 다른 사용자 인터페이스 패러다임, 다른 개발 환경, 서로 다른 프로그래밍 인터페이스 —아마도 가장 껄끄러운 부분인— 세 가지 프로그래밍 언어를(Objective-C, Java, C#) 다루어야 합니다.
C#과 .NET 솔루션
Objective-C, Java 및 C#은 모두 C 언어에서 파생되었지만, 서로 다른 방향으로 발전하였습니다. C#은 이들 언어 중 가장 최근에 등장한 언어이며 다방면에서 유용한 방향으로 발전해왔습니다. 또한 C#을 통해 .NET이라는 강력한 프로그래밍 인프라를 사용할 수 있습니다. .NET은 수학, 디버깅, 리플렉션, 컬렉션, 세계화, 파일 I/O, 네트워킹, 보안, 스레딩, 웹 서비스, 데이터 처리 및 XML과 JSON 읽기와 쓰기를 지원합니다.
현재 Xamarin은 네이티브 Mac, iOS 및 Android API를 지원하는 C#/.NET 도구들을 제공합니다. 이러한 도구는 Xamarin.Mac, Xamarin.iOS 및 Xamarin.Android이 있으며 Xamarin 플랫폼이라고 통칭합니다. Xamarin은 각 플렛폼의 Native API를 .NET에서 사용할 수 있게하는 라이브러리와 바인딩을 제공합니다.
개발자는 Mac, iOS 또는 Android 앱을 개발하기 위해 Xamarin 플렛폼과 C#언어로 개발할 수 있습니다. 하나 이상의 플렛폼을 타겟으로 개발할 때는 플렛폼 간에 일부 코드를 공유하는 것이 합리적입니다. 따라서 프로그램 코드를 플렛폼 의존적인 코드(주로 사용자 인터페이스와 관계된 코드)와 플렛폼 중립적인코드(일반적으로 .NET 프레임워크만을 필요로하는 코드)로 분리해야 합니다. 분리된 플렛폼 중립적인 코드는 Portable Class Library (PCL) 또는 공유 프로젝트(Shared Asset Project 또는 SAP)로 관리할 수 있습니다.
Portable Class Library는 .NET Standard 라이브러리로 변경되었습니다. 이 책에서 모든 샘플 코드는 .NET 표준 라이브러리를 사용 하도록 변경되었습니다.
Xamarin.Forms 소개
여러 모바일 플랫폼을 대상으로 개발하는 경우 Xamarin.Forms를 사용하면 상당한 양의 중복 코드를 한곳에 통합할 수 있습니다. 현재 Xamarin.Forms는 5가지의 플렛폼을 지원하고 있습니다.
- iPhone, iPad 및 iPod touch에서 실행되는 프로그램을 지원하는 iOS
- Android 휴대폰 및 태블릿에서 실행되는 프로그램을위한 Android
- Windows 10 및 Windows 10 Mobile을 위한 Universal Windows Platform
- Windows 8.1의 Windows Runtime API
- Windows Phone 8.1의 Windows Runtime API
Xamarin.Forms는 더 이상 Windows 8.1, Windows Phone 8.1 또는 Windows 10 Mobile을 지원하지 않지만, Windows 10 데스크톱에서의 실행은 지원합니다. 추가적으로 Mac, WPF, GTK, Tizen 플랫폼에 대한 지원은 Preview Support 형태로 제공합니다.
Xamarin.Forms의 대부분의 공유 코드는 단일 라이브러리 프로젝트 혹은 공유프로젝트(SAP)에 위치하게 됩니다. 각 플렛폼 별 Xamarin 프로젝트에서 이러한 공유코드를 호출하는 형태로 구성되게 됩니다.
Xamarin.Forms에서 제공하는 API들은 각 플랫폼의 네이티브 컨트롤과 매핑되게 되며 그 결과 각 플렛폼의 고유한 형태와 느낌을 유지하게 됩니다.
왼쪽에서 오른쪽으로 iPhone, Android 및 Windows 10 Mobile 폰을 보여 줍니다.
Xamarin.Forms는 더 이상 Windows 10 Mobile를 지원하지 않습니다.
각 화면에서 페이지는 텍스트를 표시하는 Label, 작업을 시작하기 위한 Button, On/Off를 토글하는 Switch , 범위 내에서 값을 선택할 수 있는 Slider를 포함하고 있습니다. 이 4개의 View는 StackLayout의 자식으로 위치하고 있습니다.
또한 몇개의 ToolbarItem으로 구성된 Toolbar가 페이지에 연결되어 있습니다. iOS 및 Android에서는 최상단에 Toolbar가 위치해 있으며 Windows 10 Mobile에서는 화면 가장 아래쪽에 위치하고 있습니다.
또한 Xamarin.Forms는 XAML(마이크로소프트에서 개발한 Extensible Application Markup Language)을 지원합니다. 위에 나타난 프로그램들의 시각적인 요소들은 XAML로 작성되어 있으며 PlatformVisuals 샘플에서 확인하실 수 있습니다.
Xamarin.Forms 프로그램은 실행 중인 플랫폼이 어떤 플렛폼인지 식별할 수 있으며, 플렛폼에 따라 서로 다른 코드를 실행할 수 있습니다. 또한 개발자는 각 Xamarin 플렛폼 프로젝트에서 커스텀 코드들을 작성할 수 있으며 이렇게 작성된 코드는 Xamarin.Forms 프로젝트에서 플렛폼 중립적인 방법으로 호출할 수 있습니다. 개발자는 각 플랫폼을 위한 렌더러를 작성함으로써 추가적인 컨트롤을 작성 할 수 있습니다.
Xamarin.Forms는 비지니스 어플리케이션을 개발하거나 빠른 개념증명 데모를 만들거나 프로토타입 개발에 적합한 솔루션이지만, 벡터 그래픽이나 복잡한 터치 상호 작용을 필요로 하는 응용 프로그램 개발에 대해서는 덜 적합할 수 있습니다.
개발환경
개발 환경은 개발하려고 하는 플렛폼이나 개발에 사용하려는 컴퓨터에 따라 달라집니다.
iOS 어플리케이션을 개발하려는 경우 XCode와 Xamarin 플렛폼이 설치된 Mac이 필요합니다. 또한 Android를 지원하려면 Java와 관련 SDK 설치가 필요합니다. Visual Studio for Mac을 사용하신다면 iOS와 Android 어플리케이션을 모두 개발할 수 있습니다.
PC에 Visual Studio를 설치하여 개발하신다면 iOS, Android 및 Windows 플랫폼을 대상으로 개발할 수 있습니다. 그러나 이 경우에도 iOS개발을 위해서는 XCode와 Xamarin 플렛폼이 설치된 Mac이 필요합니다. Visual Studio를 통해 PC와 Mac을 페어링한 후에 iOS 앱을 실행할 수 있습니다.
컴퓨터에 USB로 연결된 모바일 장치나 시뮬레이터를 통해 프로그램을 테스트 할 수 있습니다.
설치
Xamarin.Forms 프로젝트를 생성하고 빌드하기 전에 Xamarin.iOS, Xamarin.Android, UWP 프로젝트를 개별적으로 만들어보고 실행해보는 것이 좋습니다.
이 작업을 수행하는 방법에 대한 정보를 제공하는 Xamarin과 Microsoft 웹 사이트는 아래와 같습니다.
일단 각 플렛폼 별로 프로젝트를 생성하고 실행하는데 성공했다면 Xamarin.Forms 애플리케이션 개발에도 전혀 문제가 없을 것입니다.
관련 링크
'Xamarin.Forms Book > 요약' 카테고리의 다른 글
9장 요약. 플랫폼별 API 호출 (0) | 2018.08.18 |
---|---|
8장 요약. 코드와 XAML의 조화 (0) | 2018.08.18 |
7장 요약. XAML 및 코드 (0) | 2018.08.15 |
6장 요약. 버튼 클릭 (0) | 2018.08.15 |
5장 요약. 크기 처리 (0) | 2018.08.12 |
4장 요약. 스택 스크롤 (0) | 2018.08.12 |
3장 요약. 텍스트 자세히 알아보기 (0) | 2018.08.11 |
2장 요약. 앱 분석 (0) | 2018.08.06 |
- flutter
- Xamarin
- WPF
- React
- Xamarin.Forms
- StringComparison
- ASP.NET Core
- material-ui
- Xamarin.iOS
- TypeScript
- npm
- MS SQL
- .NET Standard
- Android
- c#
- VisualStudio
- Xamarin.Forms 요약
- ios
- Xamarin.Forms eBook
- Vue
- Total
- Today
- Yesterday