(초보) MAUI를 배우기 힘드네요.

안녕하세요. 취미 프로그래머입니다.
iOS앱은 10년전에 네이티브로 만들고 출시도해봤는데 시간이 지나서 기억이 하나도 안나요.

닷네코어 웹은 좀 공부를 하다가, MAUI를 공부하려는데 자료가 너무 없네요. 특히 실용적인 강의는 더욱 없는 것같고 소개나 초보수준에 머물러있어요 (영어권 포함)

학습하기 힘든점이 UI를 만드는 다양한 방법을 저마다의 다양한 방식으로 제시하는데 일단 방법이 너무 많습니다.

XAML 이 그나마 많은데 별로 좋은 방식이 아닌것같아요. 과거 닷넷개발자에겐 익숙할련지 몰라도요.
Blazor 웹앱으로 UI를 만드는 방식도 있고
Blazor Bindings 로 razor 문법써서 네이티브로 하는 것도 있고
C# markup (태그)도 있고 , 순수 C#도 있고.
Uno 플랫폼도 있고…

방법은 다양하지만 그 어느하나 진지한 사람들이 없는 느낌이네요. 앱개발 트렌드에 맞춰서 C# markup 이 어떨까 하는데 소개 수준이 자료뿐이군요.

MS에서 하나로 교통정리를 하고 그걸로 밀고 나아가야하지 않나 싶은데말이죠.

5개의 좋아요

MAUI는 플러터나 다른 기술에 비해서는 천천히 발전하고 있습니다. XAML에 익숙하지 않은 개발자들에게는 어려운 기술은 맞는것 같습니다.

하지만 XAML을 조금 배워보시면, XAML이 좋은 방식이 아닌것 같다는 생각은 조금 달라지실수 있을 것 같아요. 닷넷개발자라면 윈도우 개발자분들이 많고 윈도우에서 XAML은 피할수 없기도 하지만 잘 알고쓰면 커스터마이징이 정말 좋은 GUI 기술입니다.

제가 추천드리는 방식은 MAUI로 xaml에 대해서 배우기보다는 WPF나 Avalonia쪽을 보시면서 xaml에 대해서 보시는걸 더 추천드리고, Blazor쪽은 웹 프론트엔드로써 의미가 있습니다. 전 다 의미가 있다고 보는데 UNO쪽은 제가 찍어먹어보지도 않아서 뭐라고 얘기드릴수가 없습니다.

4개의 좋아요

뭐… 닷넷데브에서도 자주 나오는 주제이긴 한데, 과도기에 있다… 라고 생각이 됩니다.
MAUI에서도 그렇겠지만 blazor 분야에서도 버전별로 급격한 변경 사항이 있는 편입니다…
다만 제가 확실하게 깨닳은 것은 MS계열에서 오픈소스를 따라가려면 정말 한 단계 이전의 LTS만 써야겠구나… 하는겁니다ㅎㅎ

누군가 "야! .NET 8.0 새로운 컴포넌트 나왔대! " 하더라도 그래…? :thinking: 하고서 6.0을 계속 하는거죠…
아, 물론 저만 그럴수도 있습니다. :sweat_smile:

3개의 좋아요

자료가 없고 실용적인 강의도 없고 학습하기 힘든점의 이유도 쓴이분의 글에 있네요.
여러가지 방식으로 만들 수가 있으니까요.

만약 제가 AAA 라는 UI 툴킷을 만들고, 이 기술은
vc++ mfc, winform, blazor, wpf, pyton tk, swift, go, 루비, flutter, jetpack compose 등등
30여가지 기술이나 언어로 만들 수 있다고 하였을 때

AAA를 만든 제가 30가지 기술들로 AAA를 활용하는 방법을 설명해준다는건 어렵고, 할 필요도 적을 수 있지 않을까요. 30가지 중 각각의 1가지가 각자의 학습 자료와 커뮤니티와 히스토리가 있을테니까요.

3개의 좋아요

C# Markup보단 ReactorMaui쪽을 한번 보시는게 좋을 듯 싶습니다.

플러터의 Statelesscomponent, Statefullcomponent개념과
리액트네이티브의 State 개념들이 조합하여 만들어진 C# Maui입니다.

6개의 좋아요

XAML이 자유도 높은 UI를 만드는데는 상당히 좋습니다.
단지, 자유도가 너~무~ 높다보니 초보들은 물론 왠만한 중급자들도 버거워한다는게 문제죠.
그래도 꼭 C# MAUI로 앱을 만들어야된다면 척박한 MSDN과 오래된 블로그 글, 외국 유튜버들 영상보고 독학으로 공부해야되고, 아니면 한글 서적과 관련 정보가 많은 Flutter 공부하세요.

3개의 좋아요

MS는 내전 중이예요
iOS만 개발하면 스위프트 아니면 플러터 권장하고요
초보자가 굳이 전쟁터에 뛰어들어 봤자 총알 받이가 될 뿐이에요

3개의 좋아요

@honeyhead 흑마님이 운영하시는 MAUI 단톡방에서도 소통해보시면 좋을 것 같습니다. :smile:

2개의 좋아요

뭐니 뭐니해도 블레이저가…

오늘 기존 블레이저 wasm 프로젝트를 RCL 로 옮기는 작업을 하고 있습니다.

심심해서 MAUI 에 실어서 윈도우에서 실행해보니 바로 되네요.

자바 스크립트 처리가 조금 문제가 되지만, 이는 웹환경에서만 유효한 코드라 마우이에서 문제를 일으키는 게 당연한 코드입니다.

RCL 을 최대한 독립적으로 만들면, 그냥 빌드만 하면 되네요.

그런데, xaml 에 비해 html css 가 너무 방대해서 공부가 끝이 없네요.

5개의 좋아요

@BigSquare 이번 .NET Conf 2023, 3일동안 Blazor 파티가 될 것 같네요. :smiling_face_with_three_hearts:

4개의 좋아요

와즘이가 소외된 ㅠ ㅠ

3개의 좋아요

사실 XMAL 자체는 어려운게 아니예요. DOM은 단지 구조적인 것일뿐인데 그것이 논리 코드와 엮이는 방식이 굉장히 불편하니다. 데이터바인딩이 정말 불편해요. HTML/CSS 의 그것처럼요.

3개의 좋아요

제 개인적인 생각은 XAML 자체가 클래스 객체로 되어있기 때문에 HTML과는 사상적으로 다르기 때문에 WPF, 그리고 XAML을 기반으로 하고 있는 플랫폼(UWP, Win UI3, Xamarin, MAUI, AvaloniaUI, Uno 등)을 시작할 때 많이들 러닝커브를 느낍니다.

제가 WPF의 바이블인 찰스패졸드 책을 추천하는 이유는, 그 점을 명확하게 지적하고 있기 때문입니다.
천 페이지가 넘는 방대한 내용을 통해 XAML도 결국 C#이라는 것을 강조하고 있죠.

Applications = Code + Markup

이미 20년 다 되어가는 책이기에 지금의 개발 트랜드를 배울 수는 없지만 XAML을 어떻게 받아들여야하는지에 대해 충실하게 이야기하고 있습니다.

DataBinding 또한 XAML의 일부라고 생각합니다. 물론 이 또한 클래스이죠, XAML을 클래스로 받아들이고 접근한다면 XAML기반의 플랫폼을 이해하기에 좀 더 수월할 것이라 기대됩니다. :laughing:

7개의 좋아요

사실 제 개인적인 생각은 데이터바인딩 은 선택이라고 생각합니다.

xaml의 비하인드 코드영역에

this.lbl.Content=“진행 중”;
this.lbl.Content=“시작”;
등 처리해서 프로그램 만들어낼 수 있습니다.

위와 같은 방식은
아발로니아, 우노, wpf, maui, markup 등 모두 동작이 가능한 코드입니다.

다만 프로그램의 유지보수 비하인드코드를 줄여서 최대한의 모델과 비즈니스 모델을 표현하기 위해
MVVM, MVU 등 다양한 방법을 도입시킨 것 뿐입니다.

3개의 좋아요