본문 바로가기
기타

Flutter로 미니체결을 다시 만들어 본 소감

by iOS_woo 2023. 10. 30.

평소에 앱 창업에 대한 꿈이 있던지라 플러터에 관심이 많았다. 
IOS 개발만 해서는 안드로이드에 비해 시장이 너무 작았기 때문에 관심을 갖고 있었다. 


그동안  IOS 공부를 열심히 하였었기 때문에 플러터를 새로 공부하는 것에 정말 많은 고민이 있었다. 

일단 찍먹이라도 해보고 결정해보자 생각하게 되었고, 미니체결 어플을 플러터로 다시 만들어 안드로이드와 IOS에 동시 출시하는 것을 목표하게 되었다. 

한달정도 유튜브, 유료강의 등을 보면서 Dart 문법과 플러터를 학습하고 2달정도 앱 개발하여 출시하게 되었다. 
이번 글에서는 플러터에 대한 소감과 앞으로의 방향을 남겨보고자 한다. 

 

앱스토어에 출시된 미니체결



1. UIKit의 안정성, SwiftUI의 편리함을 갖춘 플러터
UIKit으로 개발할 때에는 상당히 안정적이지만 코드 작성량이 많고 번거로운 점이 있었다. 
SwiftUI로 개발할 때에는 코드의 양은 적었지만 자잘한 버그가 너무 많아서 앱이 불안정했고, 버그를 해결하는데에 정말 많은 시간을 쏟아야만 했다. 
반면, 플러터는 SwiftUI처럼 선언적으로 개발이 가능해서 코드가 간결하면서도 안정적이었다.
이점은 무척 마음에 들었다. 불편한 버그가 없었고 내가 만들고 싶은데로 맘껏 만들 수 있다는 것이 무척 좋았다. 

 



2.  Combine, RXSwift와 비슷한 상태관리 경험

그동안 IOS 앱을 개발할 때에는 Combine, Rxswift로 MVVM 구조로 작성했었다. 
플러터로 앱을 만들 때에도 SwiftUI로 개발할 때와 비슷한 구조로 GetX로 상태관리를 하고, MVVM으로 작성해보았다. 
Swift에서 Dart로 문법만 조금 바뀌었을 뿐, 상태관리 측면에서는 매우 유사한 것이 많아서 공부하는데 큰 지장이 없었다.

 

3. 이미 많이 준비되어있는 훌륭한 패키지들과 위젯

플러터에선 Pub dev에 수많은 패키지들이 있는데, 이 패키지들 덕분에 매우 편리한 개발이 가능하다. 

의존성이 높아지기 때문에 단점이라고 볼 수도 있지만, 만약 문제가 발생했을 때 수정하는 것도 그리 어렵지 않을 것 같다.

위젯들도 정말 다양하고 편리한 것들이 많다. 또한 커스텀해서 쉽게 만들고 재활용할 수 있어서 마음에 들었다. 

 

4. 다만, 다소 불편한 멀티쓰레드와 성능!

Swift에서는 Async/Await으로 함수를 작성하면 메인쓰레드가 아닌 다른 쓰레드에서 작업이 진행되었다. 
이것은 매우 간편했고, 강력한 기능이었다. 
하지만 Dart에서 Async/Await은 다중 스레드를 지원하지 않았다. 
처음에 Swift처럼 Async/Await을 사용했다가 버벅임이 발생해서 왜 그런가 싶었는데, 다중쓰레드를 지원하지 않는다는 것을 뒤늦게 알게 되었다. 
Dart에서는 isolate, compute로 멀티쓰레드 작업을 수행할 수 있다.

이런 방식으로 프로그래밍을 할 때 파라미터 값을 전달하는 방식이 다소 불편했다. 단순한 데이터 딱 한가지만 전달 할 수 있었고, 복수로 전달하기 위해서는 따로 리스트 등을 만들어야 하는데 꽤 번거롭다. 
이과정에서 파라미터로 전달하기에 적합하지 않는 데이터라는 에러 메시지를 정말 많이 보았고, 적절하게 작동하는 멀티쓰레드 코드를 작성하기까지 꽤 오랜시간이 소요되었다. 

결국 성공했지만.. ㅎㅎ

또한.. IOS 버전 미니체결과 똑같이 멀티쓰레드로 작업해주었는데, 플러터로 만든 미니체결이 조금더 버벅였다. 
연산작업이나, API를 활용해서 데이터를 받아오는 것은 문제가 없었던 것 같은데, 메인쓰레드로 UI에 반영하는데 IOS보다는 다소 느린 느낌이었다. 

5. 그래서 앞으로는?

당분간은 플러터 공부를 조금더 하려고 한다.
1인 창업에 대한 열망도 있고, 안드로이드와 IOS에 동시 출시하는 경험이 꽤나 좋았다. 
플러터로 개발하는 경험도 무척 좋다.
다만 커리어 혹은 취업 부분에서 네이티브보다 어려움이 분명히 존재하는데.. 

일단.. 아직 20대이니 창업과 다양한 경험을 조금 더 적극적으로 쌓을 수 있는 플러터에 집중해봐도 나쁘지 않을 것 같다.

어떤 개발을 해도 실력만 갖춰진다면 일자리는 분명히 있다고 믿는 편이다. 

'기타' 카테고리의 다른 글

미니체결 - 개인정보처리방침  (0) 2023.06.30
미니체결 - 지원  (0) 2023.06.30
블록 와이드 - 지원  (0) 2022.11.24
블록 와이드 - 개인정보처리방침  (0) 2022.11.24

댓글