flutter

김명래·2023년 6월 25일
0

Flutter 란 ?

Flutter는 Google에서 개발 및 지원하는 오픈 소스 프레임워크입니다. 프런트엔드 및 풀 스택 개발자는 Flutter를 사용해 다수의 플랫폼에 대한 애플리케이션의 사용자 인터페이스(UI)를 단일 코드 베이스로 구축합니다.

Flutter가 2018년에 출시되었을 때는 주로 모바일 앱 개발을 지원했습니다. 이제 Flutter는 iOS, Android, 웹, Windows, MacOS, Linux의 여섯 가지 플랫폼에 대한 애플리케이션 개발을 지원합니다.

장점

크로스 플랫폼 기반이기때문에 당연하게도 개발기간이 줄어들고 원래 IOS, AOS, WEB 모두 지원하게끔 개발하려면 각 개발팀이 필요했을테지만 flutter를 잘 사용하기만 한다면 이를 줄여낼 수 있기때문에 비용에서도 이점이 있다.

이런 비용에서의 이점을 경영자들은 "생산성증가"라는 말로 포장한다. (농담입니다.)

여기까지만 들으면 정말 낭만있는 프레임워크가 아닐까 싶다

근데 수반하는 단점도 장점만큼 치명적이다..

단점

당연하게도 일반 네이티브 앱 보다 용량이 크다는 단점이 있고
구글이 이 사업을 포기하면 망한다..
(구글은 사업 손절치는대에 있어서 굉장히 선수라더라)

플러그인 지원을하지 않으면 네이티브 개발을 해야한다.
어떤 앱을 만들지는 모르겟으나 그 기능들이 네이티브에 치중되어 있다면 플러터의 장점 역시 사라질것이다.

특징

Dart가 기존 C언어 문법과 거의 같다고 하던대 방식은 또 싱글 쓰레드의 비동기처리를 지원한다. 처음 개발하다가 이때문에 문제가 생겨서 조금 고생했었다.. 아무튼 언어 자체는 친숙할 수 있었지만 공부가 필요한건 어쩔 수 없다. 처음보는 문법들이 있었는데 그중에 하나를 대표적으로 설명하자면

Dart 자체의 변수들은 기본적으로 null 값을 넣을 수 없다.
그래서 이때 사용할 수 있는것이 ? 키워드 인대
변수 선언 시
int? a = 15;
이런식으로 선언하게 되면 a의 값을 null로써도 사용 가능한거다
이 외에도 _키워드라던지 특이한것들이 많아서 다른언어의 경험이 있더라도 꼭 짚고 넘어가야하는 부분들이 있는 듯 하다.

또한 싱글 쓰레드 방식의 비동기 처리를 지원한다고 한다. 이는 JS와 굉장히 비슷하다.

react-native와 비교하자면 ?

react-native는 js 기반의 개발자라면 좀 더 친숙하게 다가올것이라고 생각한다.
둘의 장,단점에는 무엇이 있을까 ?

결론

내 생각에는 결국 flutter 하나만 공부해서는 먹고살기는 어렵다. 결국, native개발이 필요할것이고 flutter 이후 native 하나를 더 붙여서 공부하는게 좋을듯 하다.

profile
독자보다 필자를 위해 포스팅합니다

0개의 댓글