요즘 내 흥미를 돋구는것중 하나는 이전 포스팅에서 언급했던 MAUI 라는 놈인데
C#을 토대로 크로스 플랫폼(IOS, Android, Windows) 빌드용으로 만들어진 다중 플랫폼 UI 프레임워크 이다.
이놈의 특징은 하나의 코드를 사용해 모든 플랫폼에서 실행할 수 있다 인데... C#을 사용하던 분들은 어리둥절 할 것이다.
해당 프레임워크를 사용한다고 해서 Windows Lagacy 코드가 Android, IOS 위에서 돌아갈리가 없기 때문이다.
아무리 MS 개발자들의 능력이 좋다고 하지만 이건 힘들것이라는것이 내 지론이고, 역시 내 생각은 맞았다.
Window 기준 C#을 사용하여 특정 File 을 선택하는 창을 보여줄 때, 우리는 OpenFileDialog(System.Windows.Forms) 라는 클래스를 사용하곤 하지만, MAUI 기준 모든 플랫폼에서 통용되게 사용하려면 PickOptions 클래스를 사용해야 하는등 크로스 플랫폼을 지원하도록 수정한 흔적이 보인다.
우선 이전 포스팅에서 Hot-Reload 를 대차게 깟었는데 Hot-Reload 가 생각보단 잘 만들어졌기에 왜 MS가 Hot-Reload 를 그리 밀고있는지 이해가 되었다. (물론 디자이너보단 생산성은 떨어진다, 참고로 WinUI3의 Hot-Reload 생산성은 이제 디자이너에 맞먹는 수준이다.)
더하여 모든 코드가 MAUI 용으로 재설계 되어있나 했더니 그건 또 아닌듯 하다. UdpClient 등과 같은 네트워크 코드들은 이전에 그대로 사용할 수 있었다. 몇몇 간단한 테스트를 진행 해 보니 원활히 잘 작동한다.
결론적으로 UI에 직접적으로 연동되어 있거나, 뭔가 윈도우 관련된 코드 (VirtualInput, DirectInput 등등...) 를 사용하는게 아니라면 다른 OS들과 원활히 크로스플랫폼이 동작하는듯 보인다. (물론 그래도 사용할 때 주의를 기울여야 한다)
그래서 MAUI로 앱 개발을 추천하나요?
2023/06/05일 기준으로는 말리고 싶다.
안정성이 꽤 떨어지기 때문에 이르면 2024년 상반기에 가서 개발을 시도해 볼만 하다고 생각한다. 기본 IDE인 Visual Studio 2022 와 Android Emulator 와의 연동도 상당히 불안정한데, IOS 기기와의 원격 개발은 시도조차 해 보지 않았지만 Android 보다 더 불안정할것으로 예상된다.
더군다나 참고할만한 자료도 MSDN이 전부이다. 물론 MSDN이 제공하는 자료의 질이 매우 높은 수준이지만. 그래도 다른사람들의 시행착오가 없는 가운데, '내'가 시행착오를 해야한다는 점은 상업용 프로젝트를 진행하는데에 있어 철저하게 마이너스 요소이다.
나는 개인적으로 공부를 할 예정이지만, 회사 프로젝트로 MAUI를 추천하는 일은 하지 않을것이다.
기대되는점
이번에 MAUI 를 살펴보면서 느낀 점이 곧 MAUI가 시장 파이를 야금야금 갉아먹을 날이 멀지 않았다고 생각된다.
C#이라는 언어의 완성도는 기타 다른 언어(Java, Python, C++ 등등..)대비 가장 높은 수준이라고 생각하며, 무엇보다 Microsoft가 여짓것 C# 가지고 이것-저것 만지면서 삽질을 많이하긴 했지만(UWP, WinUI 2) 이번 MAUI 만큼은 좀 다를것 같다는 생각이 든다.
결론적으로 나는 2024년 이후에 MAUI로 개인적인 앱 개발을 적극적으로 시도해 볼 것이며, 어느정도 MAUI에 대한 파악이 끝난 뒤에는 실제로 적용가능한 작은 프로젝트부터 상업용 프로젝트에 접목을 시도해 볼 생각이 있다.
'Programming > C#' 카테고리의 다른 글
[C#] MVVM 의 문제점 (0) | 2023.08.16 |
---|---|
[C#] Task, 비동기에 대해 (0) | 2023.08.08 |
[C#] Forms.Timer vs Threading.Timer (0) | 2022.07.25 |
[C#] SharedMemory 사용법 (0) | 2022.05.12 |
[C#] UDP Multicast 수신 (0) | 2022.04.08 |