2019년 10월 20일 어제, GDG DevFest 2019를 다녀왔다

iOS 공부를 하고 있지만 웹과 android도 조금씩 해봤던 나는 Flutter가 너무 궁금해서 꼭 가보고 싶었다!

이번 세션은 아래와 같이 이루어졌었다.

img

나는 이 중 모바일에 관련된 초록색으로 된 세션만 들었다.

먼저 “React Native와 Flutter를 고민하는 개발자분들에게” 에서는

Flutter와 React Native를 비교해서 각각의 장점과 단점을 발표해 주셨다.

Flutter가 궁금했던 나에게는 Flutter를 이해할 수 있는 시간이었다.

기억에 남는 Flutter의 장점은

  • cross platform
  • 컴파일 언어라 속도가 빠르다
  • hot reload가 된다

즉 cross platform과 가볍고 빠르다 라는 것이 장점이었던거 같다.

단점은

  • ios로 넘어가면 app size가 뚱뚱해진다.
  • 코드 복잡도가 올라가는 언어적 이슈
  • 또 React Native에 비해 3rd-party library가 적어서 직접 라이브러리 개발을 해야한다는 것
  • 권한, 시스템 종속성이 있는 기능을 사용하려면 결국 native 코드를 작성해야 한다는 것

또 어떤 분은 Flutter가 이전의 Cross platform 언어처럼 금방 사라질 수도 있지 않냐고 질문하셨다.

큰 장점도 있지만 아직은 리스크가 많은 언어같다.

위 세션을 통해 flutter를 왜 사용하는지와 어떤 장단점이 있는지를 알 수 있었다.


그리고 가장 기억에 남는 세션은 “Declarative UI Patterns” 였다.

이 세션에서는 Flutter가 UI를 그리는 방식에 대해서 설명해 주셨는데 이 세션은 정말 멋졌다.

Data flow와 event flow를 분리해서 data 제어를 view가 가져가지 못하게,

view는 view의 역할만 수행할 수 있도록 하는 것이었다.

또, ui tree를 사용해서 state가 업데이트가 되면 바로바로 변경해주고,

컴포넌트가 변경되면 해당 tree 아래의 ui는 모두 새로 그린다고 한다.

그래서 UI 업데이트가 빈번히 일어나도 복잡도가 올라가지 않고, hot reload가 가능해지는 거 같다!!


이것은 Flutter 뿐만이 아니었었다.

앞 선 세션에서 Swift UI와 Flutter가 닮았다는 생각을 계속해서 했었는데,

이 pattern을 Android jetpack에서도 사용한다고 한다. (넘으 멋쪄….)


웹과 다르게 지향점이 모두 흩어져있었던 모바일도 중간을 찾아가는 것 같았다.

예제랑 문서가 너무 없어서 하다가 잠시 쉬고 있던 Swift UI 공부를 다시 시작해야겠다는 생각이 들었다.


또 마지막 테스트 관점으로 아키텍쳐 완성하기 세션도 유익했다. 테스트를 빨리 시작하라는 채찍을 맞은 기분이었다….


GDG 다녀온 이후 공부할게 더 쌓여버렸다.

나태했던 나에게 그만큼 좋은 시간이었던거 같다!