안녕하세요.
리안입니다.
최근 android 앱 개발도 해야겠다는 생각이 들어서, flutter 스터디중이네요.
요즘은 자료가 많아서 참 좋네요 ㅎㅎ;
아직 Flutter 스터디 중이라 (dart 공부 대충 마무리하고, flutter 로 ui 구현 하는것, 상태 처리 공부 중)
아직 제가 파악 못한것들이 있을 수 있습니다. 혹시 제가 생각하는것과 다른게 있으면 알려주세요.
1. dart 언어 호불호.
일단 dart 배워서 flutter 외에 쓸데 없다는게 너무 크네요. (아 물론 swift 도 mac/ios/ipados/watchos 등 애플 생태계 제외하면 무쓸모)
enum 은 swift 에 비해서 정말 별로네요. ㅠ 찾아보니 dart 3.0 되면서 좀 쓸만해지긴 했는데 아쉽네요.
(swiftui 가 enum / struct 기반으로 개발을 강제하는 면이 있어서 swift enum 이 좀 강력하긴 하지만요)
init 에 있는 parameter 순서 없이 쓸 수 있는건 좀 신기하고 좋네요.
2. flutter 는 유티니 엔진같은거다.
처음 공부 할 때 이걸 몰랐어요. react native 비슷한거라고 생각했는데 사실은 유니티 같은거였네요.
그래서 시스템 폰트를 쓰지를 못하네요.;
ios에 올리려고 sf pro 를 지정해도 사실 sf pro 폰트는 영문의 ios 시스템 폰트이지, 한글은 산돌고딕 이잖아요.?
그래서 결국 다국어에서는 font fallback 으로 빠지게 되네요.
암튼 그냥 flutter 는 유니티 같은거니까 custom font 올리고, alert 이든 toast 든 모든 ui 는 직접 구현해야겠네.
라고 생각하면 마음이 편할거 같네요.
3. vs code + flutter extension 조합.
너무 좋습니다. xcode 는 이쁜데 느리고 리팩토링 조차 제대로 되지 않는데
vs code 는 기존에 js 같은거 만들 때는 몰랐지만, flutter 개발하니 너무 좋네요.
4. hot reload 는 정말 환상적이네요.
swiftui 의 preview 가 있긴 하지만 좀 많이 느리죠...
아 물론 swiftui 는 view 하나만 프리뷰 할 수 있다는 장점이 있죠.
근데 flutter 는 widget 하나만 프리뷰 할 수가 없네요...?!
예전에 누가 플러그인 만들어놓은게 있던데 지금은 관리 안되고 있어서 사용도 안되더라구요 ㅠ
flutter widget 하나만 preview 할 수 있는 방법 없나요... ㅠ
이전 안드로이드 개발자들도 flutter widget 하나만 프리뷰 할 수 있으면 좋겠다는 요청이 있던데 왜 안해주는건지..
5. ( ) { } 지옥이네요.
extract 열심히 해도 depth 가 생기는건 어쩔 수 없네요 ㅠㅠ
강좌 보다가 이거 짝 맞추기 하고 있다보면 승질이...
6. 생산성...?은 생각보다 좋지는 않네요.
아직까지는 flutter에 익숙해지더라도 swiftui 가 개발속도는 더 빠른거 같습니다.
android / ios 동시에 만든다고 하면 flutter 가 월등하지만요.
한쪽 플랫폼 앱 하나만 만든다고 각각의 네이티브 개발이 효율은 더 좋을거 같네요.
근데 동시에 한다면 flutter 선택하겠습니다 ㅎㅎ;
이상입니다.
끝.
개인적으론 비즈니스 로직을 제외한 UI 생산성은 Qt의 QML이 최강이라고 생각했었는데 지금은 플러터라고 생각합니다.
괄호 지옥은 어쩔 수 없는 듯 합니다 ㅠㅠ;;
위젯 프리뷰는 저도 간절히 기다리는 중입니다 ㅠㅠㅠㅠ
예전에는 뷰 테스트 하려면 앱 실행해서 해당 뷰 까지 찾아가는게 당연했는데 (flutter 는 적어도 고치고 다시 리로드 하는 과정은 없긴 하지만) 익숙해지니 너무 불편하네요 ㅠㅠ
flutter 로 앱 하나 출시해보고 다시 생산성은 이야기해보겠습니다!
전 guide없이 초반에 사용하거나 guide 알고는 vscode의 개발 환경에 감탄을 했습니다..
가독성에 1% 정도 향상이 있지만 개인적으로는 별 의미 없네요 ㅠ
속도를 포기하고 (constant 로 지정이 안되는 문제) https://pub.dev/packages/styled_widget 이걸 쓰려고 생각중입니다. Swiftui 를 계속 개발하면서 동시에 flutter 를 쓰는 개발자에겐 swiftui 스러운 가독성이 중요하네요. heavy 한 뷰는 클래식으로 개발하고 간단한 뷰는 저걸 쓸 생각이네요.