나는 웹 개발을 공부하며 취업 준비를 하고 있다.
프로젝트를 진행하면서 공통적으로 중요하게 생각했던 것 중 하나가 모바일 사용성이 좋아야 한다는 점이다.
'모바일 퍼스트'라는 개발 방식이 있을 정도로 모바일 사용자를 고려한 개발이 중요하다고 생각한다.
프론트 엔드 개발공부를 하면서 JavaScript(TypeScript) - React - Next.js 순서대로 개발을 해봤었고,
모바일 친화적으로 개발하는 것은 해봤지만 모바일 앱 개발은 한번도 안 해봤다는 생각이 스쳐 지나갔다.
휴대폰 사용량이 늘어나면서 사용자들은 웹 페이지보다는 휴대폰 앱을 더 많이 보고 사용하겠다는 생각까지 하고 나니
앱 개발을 해보지 않을 이유가 없다는 결론에 도달했다.
React 개발 경험이 있다 보니 React-Native로 먼저 시작해볼까 싶기도 하고,
Mac을 사용하니 Xcode로 Swift 개발을 해볼까 싶기도 하고,
고민을 하던 중에 Flutter가 눈에 들어왔다.
Flutter
플러터가 무엇인지, 어떻게 동작하는지 간단하게 공부해 봤다.
플러터는 운영체제와 직접 소통하는 방식이 아니라고 한다.
운영체제가 엔진을 동작시키면, 엔진은 Dart 언어로 개발하는 Flutter 앱을 동작(Dart를 컴파일)시키며 화면에 UI를 그리게 된다.
화면에 그려지는 것이 운영체제의 네이티브 한 UI가 아니라 엔진이 그려내는 UI라는 것이 중요하다.
네이티브 앱들이 지니고 있는 컴포넌트나 위젯들을 사용하는 것이 아니라, 직접 만든 컴포넌트와 위젯을 사용하기 때문에
일부 사용자들은 앱이 부자연스럽다고 느끼기도 한다고 보았다.
이러한 차이점이 리액트 네이티브와 플러터를 선택하는 기준 중 하나가 될 것이라는 생각이 들었고,
나는 네이티브 앱의 디자인 요소에 한정되는 것이 아니라 지금까지 공부해 온 웹 언어, 프레임 워크들과 똑같이
다양한 디자인으로 앱을 개발할 수 있다는 부분이 마음에 들어 Flutter를 한번 공부해 보기로 생각이 들었다.
네이티브 앱의 디자인 요소가 필요할 땐 완전히 동일하진 않지만, 비슷하게 보이는 요소를 사용할 수 있다는 점도 좋았다.
(선택지가 많은 느낌?!)
React Native로 개발하는 것을 추천
1) 네이티브 앱 운영체제 상에서 사용 가능한 위젯을 사용해야 하는 경우
2) 디자인이 iOS 혹은 Android 앱처럼 보이게끔 만들고 싶은 경우
각 운영체제 스타일을 존중하는 크로스플랫폼이다.
Flutter로 개발하는 것을 추천
1) 세밀한 디자인 요구사항이 있거나 100% 커스터마이징하고 싶은 경우
2) 외부 패키지에 의존하지 않고 고수준의 애니메이션을 구현하고 싶은 경우
각 운영체제 스타일보다는 나만의 커스텀 디자인이 우선인 크로스플랫폼이다.
'Mobile App > Flutter | Dart' 카테고리의 다른 글
다트[Dart] | Dart 기본(2) - List, Set, Map, String interpolation (0) | 2023.05.01 |
---|---|
다트[Dart] | Flutter가 Dart를 사용하는 이유 + Dart 기본(1) (0) | 2023.04.25 |