일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자료구조
- .net core
- 도커
- BFS
- C++
- 큐
- 백준
- 시간복잡도
- docker-compose
- API
- .net maui
- sql
- asp.net
- 파이썬
- REDIS
- 정렬
- C#
- 스택
- Docker
- 재귀
- Merge Sort
- quick sort
- mysql
- dfs
- 탐색
- 알고리즘
- Get
- maui
- asp.net core
- .NET
- Today
- Total
코젤브
.NET MAUI 란? 본문
.NET MAUI(.NET 다중 플랫폼 앱 UI)
C#과 XAML을 사용하여 네이티브 모바일 및 데스크톱 앱을 만들기 위한 플랫폼 간 프레임워크
단일 공유 코드 베이스에서 여러 플랫폼 (Android, iOS, macOS, windows)에서 실행할 수 있는 앱(네이티브 애플리케이션)을 개발할 수 있음
- "네이티브 앱 패키지"
- 각 플랫폼에서 실행될 수 있도록 패키징된 네이티브 애플리케이션을 의미
- 즉, .NET MAUI를 사용하여 개발된 애플리케이션은 각각의 플랫폼(Android, iOS, Windows, macOS)에서 요구하는 형태로 패키징되어 실행
- 이를 통해 사용자는 각 플랫폼의 네이티브 성능과 사용자 경험을 누릴 수 있음
- 각 플랫폼에서 네이티브 앱 패키징
- Android: .NET MAUI 앱은 Android용으로 패키징될 때 .apk 또는 .aab 파일로 컴파일됩니다. 이는 Android 장치에서 설치되고 실행될 수 있는 네이티브 Android 애플리케이션입니다.
- iOS: .NET MAUI 앱은 iOS용으로 패키징될 때 .ipa 파일로 컴파일됩니다. 이는 iOS 장치(예: iPhone, iPad)에서 설치되고 실행될 수 있는 네이티브 iOS 애플리케이션입니다.
- Windows: .NET MAUI 앱은 Windows용으로 패키징될 때 .msix 또는 .exe 파일로 컴파일됩니다. 이는 Windows 운영체제에서 실행될 수 있는 네이티브 Windows 애플리케이션입니다.
- macOS: .NET MAUI 앱은 macOS용으로 패키징될 때 .app 파일로 컴파일됩니다. 이는 macOS 장치에서 설치되고 실행될 수 있는 네이티브 macOS 애플리케이션입니다.
.NET MAUI는 오픈 소스로, 성능 및 확장성을 위해 처음부터 다시 빌드된 UI 컨트롤을 사용하여 모바일에서 데스크톱 시나리오로 확장된 Xamarin.Forms의 진화라고도 볼 수 있음
.NET MAUI의 주목표는 단일 코드베이스에서 최대한 많은 애플리케이션 논리와 UI 레이아웃을 구현할 수 있도록 하는 것
.NET MAUI 작동 방식
.NET MAUI는 Android, iOS, macOS 및 Windows API를 단일 API로 통합하여, 한 번만 실행되는 개발자 환경을 허용하는 동시에 각 네이티브 플랫폼의 모든 측면에 대한 심층 액세스 제공
.NET 6 이상에서는 Android용 .NET, ios용 .NET, Mac Catalyst용 .NET 및 Windows UI 3 라이브러리 등 앱을 만들기 위한 일련의 플랫폼별 프레임워크를 제공하고 있습니다.
이때 이러한 프레임워크는 모두 동일한 .NET BCL(기본 클래스 라이브러리)에 액세스할 수 있습니다.
이 라이브러리는 코드에서 벗어나 기본 플랫폼의 세부 정보를 추상화합니다,
BCL을 사용하면 여러 플랫폼에서 정의되는 앱이 공통 비즈니스 논리를 공유할 수 있지만, 다양한 플랫폼은 앱에 대한 사용자 인터페이스를 정의하는 다양한 방법을 가지며, 사용자 인터페이스의 요소가 통신하고 상호 운용하는 방식을 지정하기 위한 다양한 모델을 제공합니다.
-> 각 개별 디바이스 제품군에 대한 코드 베이스를 유지 관리해야 합니다.
이때, .NET MAUI는 모바일 및 데스크톱 앱용 UI를 빌드하기 위한 단일 프레임워크를 제공합니다.
.NET MAUI 앱에서는 주로
➊ ".NET MAUI 컨트롤 및 API 계층"과 상호 작용하는 코드를 작성
- .NET MAUI에서 제공하는 애플리케이션에 대한 UI를 빌드할 수 있는 단일 프레임워크를 사용하여 UI를 만드는 것
➌ 그런 다음 ".NET MAUI 컨트롤 및 API 계층"은 네이티브 플랫폼 API를 직접 사용합니다.
- .NET MAUI에서 이를 해당 플랫폼으로 변환
➋ 또한 앱 코드는 필요한 경우 플랫폼 API를 직접 실행할 수 있습니다.
- 플랫폼별 기능을 구현해야하는 경우, 플랫폼별 프레임워크에서 메서드를 직접 호출할 수 있음
.NET MAUI 앱은 PC 또는 Mac에서 작성하고 네이티브 앱 패키지로 컴파일할 수 있음
- .NET MAUI를 사용하여 빌드된 Android 앱은 C#에서 중간 언어(IL)로 컴파일되며, 앱이 시작될 때 JIT(Just-In-Time)가 네이티브 어셈블리로 컴파일
- .NET MAUI를 사용하여 빌드된 iOS 앱은 C#에서 네이티브 ARM 어셈블리 코드로 완전히 미리 컴파일된 AOT(미리 실행)
- .NET MAUI를 사용하여 빌드된 macOS 앱은 UIKit으로 빌드된 iOS 앱을 데스크톱으로 가져오고 필요에 따라 추가 AppKit 및 플랫폼 API로 보강하는 Apple의 솔루션인 Mac Catalyst를 사용
- .NET MAUI를 사용하여 빌드된 Windows 앱은 Windows UI 3(WinUI 3) 라이브러리를 사용하여 Windows 데스크톱을 대상으로 하는 네이티브 앱을 만듦 ( WinUI 3에 대한 자세한 내용은 Windows UI 라이브러리를 참조)
.NET MAUI에서 제공하는 내용
데이터를 표시, 작업을 시작, 활동을 나타냄, 컬렉션을 표시, 데이터를 선택하는데 사용할 수 있는 컨트롤 컬렉션을 제공
.NET MAUI는 컨트롤 컬렉션 외에도 아래를 제공
- 페이지 디자인을 위한 정교한 레이아웃 엔진
- 서랍과 같은 다양한 탐색 형식을 만들기 위한 여러 페이지 형식
- 세련되고 유지 관리 쉬운 개발 패턴을 위한 데이터 바인딩
- 처리기를 사용자가 지정하여 UI 요소가 표시되는 방식 개선
- ...
.NET MAUI 의 작동 방식
.NET MAUI는 논리적 설명에서 UI 요소의 구현을 추상화합니다. XML을 기반으로 하는 플랫폼 중립 언어인 XAML을 사용하여 UI를 설명할 수 있습니다.
예를 들어 다음 XAML에서 버튼 컨트롤에 대한 설명을 보여준다.
<Button Text="Click me"
SemanticProperties.Hint="Counts the number of times you click"
Clicked="OnCounterClicked"
HorizontalOptions="Center" />
- 버튼의 레이블 Click me를 정의하고, 사용자가 이 단추를 선택하면 OnCounterClicked라는 메서드를 실행
- 또한 다른 속성은 레이아웃을 Center로 하는 등 수정하고 있음
.NET MAUI는 항상 대상 디바이스에 대한 네이티브 코드를 생성하므로 최적의 성능을 얻을 수 있음
또한 .NET MAUI는 각 플랫폼 및 UI 요소에 특정한 처리기를 사용하여 작업을 수행함.
- iOS를 대상으로 하는 경우 .NET MAUI 처리기에서 이 코드를 iOS UIButton에 매핑
- Android에서 실행하는 경우 Android AppCompatButton이 매핑
이러한 처리기는 단추에 대한 IButton과 같이 .NET MAUI에서 제공하는 컨트롤 특정 인터페이스를 통해 간접적으로 액세스됩니다.
'컴공의 일상 > .NET MAUI' 카테고리의 다른 글
실습: 전화 번호 변환기 앱 만들기 (0) | 2024.07.09 |
---|---|
.NET MAUI 앱에 시각적 개체 컨트롤 추가 (0) | 2024.07.08 |
.NET MAUI 프로젝트 만들기 및 구조 설명 (0) | 2024.07.08 |