[Flutter] Flutter 당근마켓 모바일 버전 클론

안녕하세요.

닷넷 개발자분들 중 크로스플랫폼중 하나인 Flutter(플러터)에 관심 계신분이 혹시나 계신가요?

학습목적으로 심플하게 Node.js기반으로 Web API서버와
모바일App, WindowsApp 프론트 Flutter를 이용해서 당근마켓 앱을 클론해 보았습니다.

저는 닷넷과 네이티브 안드로이드 개발을 간간히 병행하면서 작업하고 있는데
최근에 Flutter로 모바일과 윈도우 데스크탑 App을 하고 있습니다. 간단히 Flutter에 대해 설명을 드리자면 (이미 많이 알고 계시겠지만.,)


Flutter은 모바일(AOS, iOS) 및 웹App, 윈도우 데스크탑 App 까지
하나의 소스로 멀티 플랫폼을 개발하는 도구중 하나 입니다.

언어는 Dart 스크립트를 이용해 개발되고 선언형 개발 방식으로 빠른 생산성과
풍부한 레퍼런스를 가지고 있다는 큰 장점이 있는 플랫폼입니다.


이번 클론 프로젝트는 과외 학습 목적으로 만들어 보았는데 같이 공부해보고 정보 공유했으면 하는 차원에서 글 남겨봅니다.
(※ 혹시나 닷넷기술 외 컨텐츠 글은 올리면 안되는 규칙이 있다면 말씀해 주세요. 그렇다면 죄송합니다. 바로 글 삭제 하도록 하겠습니다.)

감사합니다.

flutter_carrot_market: 플러터 당근마켓 (github.com)

13개의 좋아요

전혀 그렇지 않습니다. 목적에 맞게 게시판을 잘 선택해서 올려주시면 문제될 부분이 전혀 없으니 편하게 공유해주세요! :+1:

4개의 좋아요

.NET C# 개발자 입장에서 경험해본 Flutter의 장단점을 알려주시면 도움이 많이 될 것 같습니다!

3개의 좋아요

기본적으로 가장 큰 차이점은

UI/UX 구조를 설계하는데에 있어

명령형 UI 방식 VS 선언형 UI 방식 의 차이가 있습니다.

이 방식은 개인차에 따라 장점이다, 단점이다 로 호불호가 가립니다.

하지만 요즘 트렌드(?)로 보면 iOS의 스위프트나 안드로이드 Jetcompose, 리엑트 등 많은 개발 프레임워크나 플랫폼들이 선언형 개발방식을 지향하고 있는것이 사실입니다.

개인적인 생각으로 Flutter에서 장점은

  1. 이러한 선언형 UI 방식으로 빠른 화면 구성이 가능합니다.
    기존 C#에서 특정 화면에서 컨트롤에 접근해 변경 액션을 취해야 한다면 컨트롤의 고유 id로 접근하여 원하는 속성에 접근하여 액션에 맞게 수정해야 하지만,
    Flutter에서는 사용자 액션에 의해 변경이 필요한 일부만 상태를 관리해주고 나머지는 자체 프레임워크에 맡겨 개발자가 고려해야 하는 부분이 줄어 들게 됩니다.

  2. 비교적 단일 코드로 모바일, 윈도우App, 리눅스App 까지 UI 호환성을 유지하며 결과를 도출해낼 수 있습니다.
    이전 자마린 플랫폼 같은 경우는 iOS, AOS 개별 플랫폼 코드 작업이 많이 개입되는걸로 알 고 있는데
    (maui에서는 이런 점이 크게 개선되었죠?)
    Flutter에서는 최소 코드로 크로스플랫폼 결과를 쉽게 만들어 낼 수 있습니다.

  3. 아무래도 안드로이드 영역의 구글 지원과 인터넷상 많은 래퍼런스 자료들도 장점이라고 생각합니다.

단점으로 보면

  1. 화면을 꾸미는 위젯(컨트롤)들의 선언 코드를 세심하게 쪼개지 않으면 가독성이 너무 떨어져서 보기 힘듭니다.
  2. 리엑트에서도 해당되지만 상태관리를 제대로 하지 못하면 성능이 심하게 떨어집니다. 항상 개발하면서 같이 고려하며 설계해야 합니다.
4개의 좋아요

플러터 개발자로 일하고있는데, 이런곳에서 플러터를 보니 반갑네요.ㅎ
장단점을 잘 설명해주신것같아 감사합니다.

6개의 좋아요