닷넷 개발자 중에 악명 높은 테크트리만 탄 10년차 개발자입니다.
물론 자마린도 그 영역 안에 있고 실제로 출시한 앱들도 더러 있습니다.
우선 자마린 커뮤니티(카카오톡 채널)에 오시면 그게 전부일정도로 인원이 적습니다.
인터넷 강의 역시 찾아보기 힘들 뿐더러 한국어로 된 유튜브 채널도 제가 본 건 두 개 정도입니다.
학습도 어렵고 예외처리에 대한 레퍼런스도 없고 Reddit에 물어봐도 아는 사람은 없습니다. 카카오톡 채널부터 페이스북 채널까지 모두 포함해서 말입니다.
하지만 이 순간에도 Flutter 강의와 책은 나오고 있습니다.
개인적으로 자마린의 장점은 기존 C#, XAML 개발에 익숙한 개발자가 그나마 접근하기 쉽다는 장점은 있습니다. 중소형 회사이면서 개발자 확충이 어렵거나 잠깐 써야 되는 프로젝트에는 적합하지만 큰 범위에 앱에는 자마린을 넘어 크로스플랫폼 서비스를 꺼린다고 보여집니다.
Flutter 역시 초반에 한글 자판 문제로 네이버 무슨 팀에서 결국 네이티브와 혼용한걸 들은적이 있었는데 그럼에도 불구하고 Flutter가 Xamarin 보다는 전망이 좋다고 볼 수 있는 이유는 직접 해보시면 아실 수 있는 부분인데 특히 UI를 설계할 때 디자이너가 있거나 중요한 컨텐츠 앱인 경우에는 Skia로 렌더링을 하는거 만큼 Hot Reload 부분이나 동일 화면을 노출시키는 반면 Xamarin은 플랫폼 별 고유 UI컨셉을 훼손하지 않는 상황에서 개발을 진행해야 됩니다.
만일 장치 컨트롤을 위한 단순 앱이나 UI에 크게 영향을 받지 않고 각 네이티브 API를 건드린다면 좋은 선택이 될수 있지만 아마 이 부분이 가장 크게 어렵게 느껴지실 수 있습니다. 각 커스텀 컨트롤을 구현해야 되는 부분이 상당히 노가다입니다.
또한 Nuget 등을 사용하여 플러그인을 활용해야 되는 측면에서도 좋지 못합니다. 우선 수가 많지 않으며 Essential 이나 Community Toolkit도 심지어 버그가 있을 정도이니 다른 플러그인은 특정 XF 버전이 틀어지면 치명적으로 동작을 안하는 일도 있으며 Github에 이슈를 봐도 그 에러가 있는지 조차 모르는 사람이 많습니다. (그 플러그인의 이름은 Firebase 관련 입니다. 중요도가 낮지 않은 플러그인이죠)
무리하게 회사에서 Xamarin을 밀어넣었다가 뺀 몇 회사도 제가 알고 있는데 이유는 위와 같지만 더 큰 건 담당을 진행하던 개발자가 퇴사했을 때 백업할 인원이 없다는 것도 있었습니다.
안드로이드와 iOS 동시에 출시해본바 안드로이드는 예전보다 정말 많이 배포가 쉬워졌습니다. M1에서 Xamarin 을 개발하기 위해 세팅해야 되는 문제가 많지만 그걸 뚫고도 개발 하는 분들도 계십니다.
하지만 이걸 지금 MAUI라는거 때문에 접근하시는건 좋지 못하다 생각합니다.
냉정하게 잡코리아에 Xamarin 을 검색하셨을 때와 Flutter를 했을 때 온도차나 회사의 느낌도 다를 것 같습니다.
Flutter는 Flutter 개발자를 뽑지만 Xamarin을 메인으로 뽑는 개발사는 전 거의 없다 생각합니다. 오히려 다른 일을 하면서 병행 해야 되는 분들이 많이 계시기 때문에 사실 C# 경력에 Xamarin이 있다는건 좋지만 Xamarin을 주로 이직을 하신다면 그때 즈음엔 제 글이 기억나실 겁니다.
Silverlight, WPF, WP7, UWP, WCF, Xamarin도 처음 나올 땐 좋아 보였죠. c#으로 이것도 개발되고 저것도 되고 만능인 것처럼 보여지면서 마켓플레이스가 어떻고 웹 개발은 어떻고. 하지만 정작 개발자들이 잘 안쓰면 문제가 생기고 밀리기 마련입니다. 파이가 크지 않기 때문에 레퍼런스 역시 적고 지원도 줄어들고 학습한 시간은 날아가게 되죠.
MAUI가 조금 연기되고 있긴 하지만 그래도 쓸만하게 바뀌어 가고 있는건 사실입니다.
하지만 Border나 FontAutoScalingEnabled 같은 옵션조차 이번에 추가 되었습니다.
기술이 더 좋아졌다고 해서 회사나 엔드유저가 알아주진 않습니다.
이는 Fuse, Uno, Flutter도 해당 될 것 같습니다.
하지만 굳이 누가 안 알아준다면 안정성이 보장되지 않는 어려운 길을 갈 필요가 있을까요?
커리어를 생각하신다면 c#은 그대로 공부하시더라도 Flutter를 배우는걸 추천드리며
자마린에 어떤 엄청난 기능과 컨트롤이 추가되도 추천하고 싶지 않습니다.
뭐가 추가 되도 자마린 개발자의 수가 많이 늘까 싶네요.
다른 개발자 분들의 의견도 전 존중하고 또 잘 쓰시는 분들 의견도 들어보시면 좋을 것 같습니다
감사합니다.
//쓰고 보니 완전 자마린 혐오자가 되어있네요 ^^; 그렇지는 않습니다.