[그림1. Swift로 만든 날씨 앱]
[그림2. React Native로 만든 날씨 앱]
[그림3. Flutter로 만든 TODO 앱]

  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
만든 회사

Google

카메라, 네비게이션 기능 같은것을 구글이 직접 모든것을 지원함

Facebook

페이스북이 모든것을 지원하지 않으며, 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가 잘 맞을 듯.

 

 

  주말에 심심해서 flutter 공부하면서 만든 간단한 TODO + D-Day앱

공부 + 구현하는데 2틀정도 걸린듯. 개인적으로 react native보단 괜찮은거 같다. 

'Log' 카테고리의 다른 글

NodeJS Typescript Jest와 Puppeteer로 UI Test 자동화 하기  (1) 2023.08.16
carthage에서 googlemaps 사용하기  (1) 2019.10.20
Flutter vs. React Native  (2) 2019.09.28
cocoapods cache 삭제  (0) 2019.09.22
Flutter sqflite에서 like 사용하기  (0) 2019.09.22

 rm -rf ~/Library/Caches/CocoaPods; rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*; pod deintegrate; pod setup; pod install;

+ Recent posts