점토(a.k.a 점심에 토이프로젝트 하기)에서 진행하는 프로젝트에서 플러터를 사용하게 됐다.
레딧이나 온라인 디스커션들을 보며 React Native
와 Lynx
Flutter
셋을 비교했는데, 진행하는 프로젝트에서 필요로 하는 특성들이 플러터에서 더 잘 지원되고 있다고 느껴서 당분간 러닝커브를 겪으며 개발준비를 하기로 했다.
라이브러리 비교
장단점
React-Native
Flutter
Lynx
를 비교하여 Flutter를 적용하기로 했는데 비교당시 파악한 장단점은 아래와 같다.
React-Native
Pros
- React 개발자라면러닝커브가 거의 X
- 프로덕션에서 많이 사용되기 때문에 지원되는 서드파티가 많다
- 서드파티가 없을때 네이티브-브릿지를 이용한 커스텀 라이브러리 제작이 가능하다
Cons
- 성능이슈로 UI 화면이 부드럽게 넘어가지 않는다는 느낌이 크다.
- node 생태계를 이용하다보니 디펜던시 설정을 직접 다 해야한다. (Expo 사용시 부담이 적으나 추후 커스텀을 생각해 고려하지않음)
- 아직 1버전도 되지않았고 breaking change가 꽤 있어 지옥의 마이그레이션
Flutter
Pros
- 구글주도로 개발되어 관리가 잘 된다는 느낌을 준다.
- RN에 비해서 렌더링 성능 좋음
- (익숙해지면) 앱 개발 속도가 굉장히 빠르다고 함
Cons
- 프론트개발자에게 높은 러닝커브, 처음보는 언어와 아키텍처
- 프로덕션에서 사용되는 비율 낮다고 느낌
- 이 부분은 레딧의견들을 봤을 때 react에 추가적으로 크로스플랫폼을 원하는 기업이 많기때문에 RN이 프로덕션에서 더 우세하다고 생각하는 것 같다.
- 설정부터 개발까지 뭘 해야할지 어떤걸 해야할지 어느정도 공수가 있을지 파악이 안됨
- 지금 이 글을 쓰는 시점이 Dart 접근 1일차이기때문에 내 머리는 백지와 같다.
- Skia를 기반으로 개발되어있는데 IOS에서 버벅이는 고질적 이슈가 있다고함
- 추후 Impella로 코어 엔진 변경 계획이 있다고 함
Lynx
Pros
- 틱톡 개발사인 Bytedance에서 내부적으로 사용하던 크로스플랫폼 라이브러리로 메인테이너가 명확하게 있다보니 디스커션 응답 속도가 빠르고 프로덕션 이슈가 빠르게 해결될 거라는 기대감이 있음
Cons
- 25년 3월에 오픈소스화 된 따끈따끈한 라이브러리라 자료가 너무 없음
- Bytedance가 중국회사다보니 discussion에 중국어가 들어가는 경우가 많음 (외국인을 배려해서 동일한 문장에 대해 중국어와 영어를 같이 써주시는 경우가 많긴 함)
- 따끈 라이브러리 특성상 써드파티가 많진 않음
결과
UX 효과를 다양하고 자연스럽게 넣고싶다는 팀 내 희망사항이 있어, 렌더링 성능이 좋다는 flutter로 결정하였다.
웹과 구조와 문법이 비슷해 러닝커브가 낮을거라 예상되는 RN이나 Lynx를 포기하고 디펜던시 설정이나 성능 등을 고려해서 결정한 사항이라 아무쪼록 우리가 훑어본 장점이 잘 드러나길 바라는중
