React Native는 작년에 해봤고, 몇 주전엔 Flutter로도 앱을 만들어 보았다. React Naitve는 Web(html, css, js)과 거의 유사한 구조로 개발을 할 수 있게 되어 있어서 러닝 커브가 매우 적었다. 동일한 앱을 만드는데 [그림 1] 익숙한 Swift로는 반나절 정도 걸렸고 [그림 2] react native로는 공부 포함 하루 이틀 정도 걸렸다. flutter는 Dart라는 새로운 언어를 학습해야 하지만, 이전에 java나 C++, C#, swift등 oop언어를 다뤄본적 있다면 쉽게 익힐 수 있다. [그림 3] Flutter로 만든 TODO앱도 공부 포함 이틀 정도 걸린 것 같다.
개인적인 취향으로 js를 별로 선호하지 않으며, open source 기반으로 서드 파티들에게 디팬던시가 강한게 싫어서 react native보단 flutter가 더 마음에 든다. 앞으로 개인적인 프로젝트는 flutter로 진행할 것 같다.
Flutter | React Native | |
만든 회사 |
카메라, 네비게이션 기능 같은것을 구글이 직접 모든것을 지원함 |
페이스북이 모든것을 지원하지 않으며, open source 기반으로 외부 라이브러리에 의존해야함. 따라서, 플랫폼이 뭔가 큰 변경사항이 있을때 각 서드파티들이 호환성을 맞출때까지 기다려야함. |
공식 출시 | 2018 년 12 월 Google I / O | 2015 년 3 월, F8 컨퍼런스 |
프로그래밍 언어 | Dart (Object Oriented Programming) | Javascript (Functional Programming) |
핫 리로드 | 지원 | 지원 |
생태계 |
아직 성숙하지 않음 커뮤니티가 별로 없고 인터넷에 자료가 얼마 없음 |
성숙함 커뮤니티 활발하고 자료도 많고 open source도 많음 |
성능 | AOT를 지원하며 Native로 배포됨, 성능 좋음 | JIT로 컴파일 되며, VM에서 동작하기 때문에 Flutter 보단 느림 (하지만, 일반적인 동작엔 체감 못느낌) |
UI |
Indicator, Button, Label 같은 기본 위젯들이 iOS, Android와 UI가 동일하게 표시됨. UI는 Dart를 사용하여 declarative syntax 방식으로 표현함. |
각 위젯들이 Host 기반으로 각각 ios, android UI에 맞게 표현됨. UI는 Javascrip로 declarative syntax 방식으로 표현하며, color같은 style은 웹과 유사한 css로 디자인함 |
결론 | 기존에 android나 ios같은 native programming을 했던 사람이라면 react native보단 flutter를 더 잘 맞을 듯. | 웹을 했던 사람이라면 html, css로 UI를 작성하고 로직을 javascript로 작성하는 것이 익숙할테니, 이와 비슷한 react native가 잘 맞을 듯. |
'Log' 카테고리의 다른 글
NodeJS Typescript Jest와 Puppeteer로 UI Test 자동화 하기 (1) | 2023.08.16 |
---|---|
carthage에서 googlemaps 사용하기 (1) | 2019.10.20 |
심심해서 Flutter로 만든 TODO앱 (0) | 2019.09.23 |
cocoapods cache 삭제 (0) | 2019.09.22 |
Flutter sqflite에서 like 사용하기 (0) | 2019.09.22 |