본문 바로가기

인생 질문(취업후)/앱개발

Flutter(플러터) 앱 개발 후기 1편. 개인적으로 느낀 장점들.

Flutter 앱개발

학습 동호회에서 만든 앱 :)

 

안드로이드와 iOS를 동시에 개발할 수 있는 프레임워크

 

프론트엔드 공부를 위한 여러 선택지가 있었다.

 

회사에서 쓰는 웹 기반 프레임워크인 Vue.js 공부하기.

 

백엔드로 익숙해진 Kotlin으로 안드로이드 앱까지 도전해보기.

 

처음엔 Vue를 공부할까 하다가..

 

Vue를 쓰고 있던 프로젝트가 외주사로 넘어가게 되었고.. 혼자 공부하기엔 막연한 게 많아서

 

모바일 앱 개발을 고려해 보기로 했다.

 

익숙해진 코틀린으로 안드로이드 앱을 개발할까 하다가... 요즘 젊은 친구들 대부분이 iOS를 쓰는 걸 보니..

 

iOS 개발을 하지 않으면 내가 만든 앱을 주변 사람의 30%도 안 쓸 거 같은..

 

그렇게 Flutter를 선택하게 되었다.

 

처음부터 Flutter & Dart 코드로 개발할 생각은 아니었다.

 

https://www.youtube.com/watch?v=sPRCMGEaydo

 

해당 영상을 보고 Flutter Flow라는 GUI 툴로 플루터 앱을 충분히 만들 수 있는 줄 알았다.

 

실제 Flutter Flow로 이것저것 만져봤을 때 화면 정도는 깔끔하게 만들 수 있었는데

 

구글의 FireBase 연동부터 앱 출시까지 진행한다고 가정했을 때 월 69달러라는 요금제를 써야 했다..

 

적어도 Pro는 필요했던 계정...

 

아직 수익도 없는 앱을 개발한다고...

 

달에 70달러를 투자할 수 없다고 판단한 우리 팀(동호회)은 코드베이스로 앱을 개발하기로 했다.

 

내가 느낀 장점들

 

Hot Reload

 

앱 개발과 관련해서 코드를 수정하고 저장하면 바로 안드로이드 애뮬레이터에 반영된다.

 

텍스트 크기, 색, 위젯 위치 등등을 확인할 때 엄청 유용했다. 

 

안드로이드 개발자 지인이 있는데 플러터의 핫 리로드가 진짜 미친 거 같다고... 

 

안드로이드는 무거운 경우 빌드하고 담배 피우러 갔다와도 빌드 중이라고.....

 

Vue와 React로 개발하는 것처럼 실시간 수정사안을 확인할 수 있어서 매우 편했고,

 

이 기능덕에 개발 속도를 높일 수 있었다.

 

선언형 UI 처리

 

서버 쪽에서는 함수형 프로그래밍으로 명령형 방식의 방대한 코드들을 밀어낸다면

 

프론트쪽에서는 재사용 가능한 위젯을 기반으로 선언적으로 UI를 처리하고 있다.

 

디자인에 취약한 개발자들에게 선언형 위젯 방식은 큰 도움이 되었다.

 

텍스트의 크기와 폰트 스타일, 볼드 정도만 선언하면 알아서 디자인들이 척척 반영된다.

 

플러터 패키지들을 살펴보면 어느 정도 디자인을 제공하는 UI 패키지를 지원하고 있어 더더욱 쉽게 UI를 구현할 수 있다.

 

구글의 플랫폼(Firebase)과의 연동

 

구글의 Firebase 플랫폼과의 연동이 쉬웠다.

 

구글 로그인, FireStore, Firebase database(NoSql), 구글 애널리틱스, 구글 크래시 등등 구글이 제공하는 문서와

가이드라인만 지키면 쉽게 연동이 가능하다.

 

읽기부터 호출까지 무료로 제공하는 범위가 커서 앱을 개발하는 데 있어서 부담이 없었다.

 

특히 오늘한장 서비스의 경우 SNS 기능이 없고 개인 사용자의 정보를 관리하는 수준이라서

 

모바일 클라이언트 - 파이어 베이스(NoSql)만 사용했다. [서버리스한 구조]

 

그래서 주기적으로 소모되는 서버 비용이 존재하지 않는다.

 

다만 서버에서 저장하는 미디어 파일의 양과 API 호출수가 많아지면 사용량에 비례해서 비용을 내야 한다.

[지금은 그럴 가능성이 거의 없다..]

 

사용자가 100명도 안된다..

Dart 언어

 

C계열에서 탄생한 언어를 사용해 본 개발자라면 쉽게 적응할 수 있는 문법들이다.

 

프론트쪽에서 사용하게 되는 기능들은 크게 복잡하지 않았고..

 

대부분 값을 수정하거나 계산하는.. 혹은 객체를 다루는 정도?

 

이 부분은 chat GPT와 함께라면 쉽게 쉽게 구현할 수 있는 부분이었다.

 

생성자 처리 파트는 아직도 익숙하지 않지만 시중에 있는 유명 언어들과 크게 다른 점이 없어서 언어에 대한

 

러닝 커브는 크지 않았다.

 

get라이브러리를 잘 활용하지 못한 게 아쉬웠던...

 

오늘 한 장이라는 앱

지금은 일일 사용자가 1~2명 수준인 앱이다. ㅠㅠ [그 1명이 나다.]

 

앱의 사용은 간단하다.

 

앨범당 하루 1장의 사진을 기록할 수 있다. [직접 찍어도 되고, 갤러리를 통해 올려도 된다.]

 

앨범에는 그렇게 사진들이 쌓이게 된다.

 

앨범도 쉽게 추가할 수 있고, 앨범의 위치는 드래그로 변경할 수 있다.

 

홈 화면에서는 앨범을 위아래로 스와이프 하면서 볼 수 있다.

 

달력 화면에서는 사진들을 달력의 형태로 볼 수 있다.

[달력 라이브러리가 워낙 유명해서 많은 플러터 앱에서 해당 달력의 형태를 쉽게 만날 수 있다.]

 

추가로 몇 가지의 태그 정보와 기분 정보(아이콘), 날씨 정보(아이콘)를 입력할 수 있다.

 

지금은 해당 기능들에서 멈춰있다.

 

여기서 좀 더 나아간다면 기분에 대한 통계치 (월별 통계치)

 

10초짜리 비디오를 올린 경우 Gif로 변환해서 저장시켜 주는... (gif를 보여줄 수 있다.)

 

정도의 기능들이 대기중이다...

 

구글 플레이 스토어에 검색하면 내가 만든 앱이 나온다는 게 신기 신기

 

주변 지인들이 대부분 iOS 유저라서... 앱을 개발했다고 말해도.. 앱스토어에 없다는 답변만 오는 슬픈 상황이지만..

 

플루터의 장점이 안드로이드와 iOS 크로스 플랫폼 개발이 아니었던가!

 

동료의 맥을 통해 iOS 실행을 해봤는데,

 

카메라 및 갤러리 권한과 iOS 로그인만 추가하면 앱스토어에도 출시가 가능할 것 같다.

 

 

 

 

반응형