brunch

You can make anything
by writing

C.S.Lewis

by 갬성개발자 Aug 17. 2020

플러터 앱 배포 회고

어썸 LED 전광판

목요일부터 휴가였는데, 남는 시간을 짬짬히 활용해서 플러터로 앱을 만들어서

앱스토어 및 구글플레이스토어에 배포하였다.


토요일 저녁에 심사요청을 하였는데

iOS는 일요일 저녁에 심사가 끝나서 앱스토어에 출시가 되었고

https://apps.apple.com/kr/app/%EC%96%B4%EC%8D%B8-led/id1527862040


안드로이드는 화요일 저녁에 심사끝나고 플레이 스토어에 출시가 되었다.

https://play.google.com/store/apps/details?id=com.eunjin.awesome_led


(안드보다 ios 심사가 먼저 끝나다니 반전이다)



[1] 앱을 만들게 된 계기


최근에 '판교 뚜벅초' 라는 유투버에 푹 빠져서 영상들을 정주행했다.

예쁜 잠옷입고 아보카도 써는 vlog가 아니라 날것그대로의 vlog를 보여주시는데

정말 너무 재밌고 마음이 편안하다.

예쁜 잡옷입고 아보카도 써는 vlog는 예쁜 잠옷, 예쁜 그릇, 고가의 식재료를 따라 사고 싶은 소비 충동을 불러일으키고 저게 진짜 멋진 자취라이프야!! 라는 편견이 생기게 해서 뭔가 마음이 불편하다.


실제로 유투버 온도님을 너무 좋아해서 모방심리로 요리도 따라하고 물건도 따라사고 맛집이나 카페도 따라 가본적이 많다.

"Simple life" 를 추구한다고 하시고 영상타이틀에 매번 저 문구를 넣지만

온도님 영상에는 택배를 푸는 영상들과 고가의 물건과 식재료를 사는 장면이 많이 나온다.


근데 막상 예쁜 잠옷을 따라 사보니 개발자 컨퍼런스에서 받은 티가 더 편하고

맛집이나 카페에 따라 가보니 비싼데 맛은 그저그렇고 이런적이 많다.


그래서 심플라이프라고 해놓고 심플라이프가 아닌 것 같은데, 좋아하는 유투버니까 저게 심플라이프라고 세뇌(?) 될 것 같고.. 복잡한 마음에 최근 구독을 취소했다.


아무튼 TMI는 여기까지 하고 뚜벅초님의 이 영상을 보고

갑자기 모방심리가 활활 타올랐다.


https://youtu.be/02mgdU4pok8


검색해보니 전광판 LED 앱은 앱스토어와 구글 플레이스토어에 이미 충분히 많이 있는 아이디어였지만,

나도 만들어보고 싶었다.


그리고 그 앱들과의 차별점은 광고가 없다는 것을 내걸었다.

(빠른 시일내에 앱스토어와 구글 플레이스토어에 배포해보는 경험을 해보고 싶어서 가장 쉬운 차별화 전략을 택했다)



[2] 개발시간


플러터와 다트 언어를 1도 모르는 상태에서 시작했다.

목요일에 플러터 sdk, 안드로이드 스튜디오 등 필요한 것들을 설치했고

금요일에 "처음 배우는 플러터" 라는 책을 조금씩 읽어가면서 개발을 시작했다. (쇼핑도 다녀오고 회사도 다녀와서 몇시간 투자했는지는 잘 기억이 안난다..)

토요일에 결혼식 다녀오기전이랑 결혼식 다녀온 후에 개발을 더 했는데, 몇 시간정도 투자했는지 잘 기억이 안난다. (개발하다가 당근마켓 무료나눔도 하고 오고 뭐 사러갔다오기도 하고 운동도 하고 해가지구..)


아무튼 정확하지 않지만 1.5일 ~ 2일 정도 걸렸다! 라고 할 수 있겠다.



[3] 개발하면서 느낀 점 


1)

핫 리로드 사랑합니다!!!! ♥️


플러터에서 개발할때 시뮬레이터 또는 에뮬레이터를 띄워놓고

코드를 수정하고 저장을 하면 바로 리로드가 된다.

이것을 핫 리로드라고 부르는데, 정말정말 빠르게 개발할 수 있다

(SwiftUI의 프리뷰보다 훨~~~씬 빠름)


2)

맥 OS 베타버전...하....


처음에 맥 OS 베타버전 빅서에서 개발을 했는데,

안드로이드 스튜디오가 자꾸 멈춰서 강제종료를 얼마나 많이 했는지 모른다.

와 진짜,,, 성격을 다 버린 것 같다ㅠㅠ


그래서 결국 금요일에 회사가서 맥북(정식버전 맥 OS가 깔려있음)을 가져오고 그것으로 개발했다.

(어차피 재택으로 전환되어서 가지고 왔어야함)


3)

나는 iOS 개발자인데, SwiftUI와 굉장히 비슷하다고 느꼈다.


뷰를 업데이트 시키는 코드를 직접 콜하는게 아니라 state가 바뀌면 알아서 뷰가 업데이트 되는 구조이다.

조금 더 구체적으로 말하면, setState 하고 데이터를 바꾸면 그 데이터를 참조하고 있는 위젯(플러터에서는 뷰를 위젯이라고 부른다)이 알아서 업데이트 된다.


플러터가 먼저 나왔으니까 스유가 플러터를 닮았다고 할 수 있겠다.


4)

전광판 앱을 만들기 위해, 무한으로 흘러가는 텍스트가 필요했다.

그래서 flow text, animated text 등의 키워드로 구글링을 했는데 내가 원하는 게 안나왔다.

(그래도 구글링하면서 animated text kit 이라는 멋진 패키지를 알게 되어서 좋았음)


결국 비슷한 UI가 있는 멜론앱에 가서 오픈소스 라이브러리로 어떤 것 썼는지를 살펴봤다.

그런 UI를 'Marquee'라고 부르는 것을 라이브러리 이름보고 알게 되었다.

Marquee 이름으로 검색해서 이 패키지를 찾을 수 있었다.

https://pub.dev/packages/marquee


특정 UI의 네이밍을 모르겠을 때는 비슷한 UI를 쓰고 있는 앱에 가서

오픈소스 라이브러리를 살펴보면 좋다.



[4] 출시하면서 느낀 점 


1)

우선 코드 한 벌로 iOS, 안드로이드 앱을 모두 배포할 수 있다는 것이 너무 짜릿했다.

그리고 iOS, 안드 앱 출시 문서가 너무 친절하게  잘 되어있다.


iOS 앱 출시 준비하기

Android 앱 출시 준비하기  


위의 두 문서를 보면 정말 친절하다.

그래서 안드 앱 출시를 잘 모르는 iOS 개발자인 나도 쉽게 구글 플레이스토어에 배포할 수 있었다.


2)

애플 개발자 계정은 있는데, 구글 개발자 계정은 없는 줄 알았다.

그래서 25달러를 내고 구글개발자 계정을 만들어야되나?!?! 를 고민했다.

하지만 애플은 1년마다 99달러를 내고 갱신해야하는데, 구글은 한번만 내면 평생 쓸 수 있으니까 삽시다!!!!!

결심하고 구글 플레이 스토어 콘솔에 들어갔다.


하지만 계정이 있었다. (감동)

지금은 삭제되었지만, 이 앱 출시가 2016년도로 되어있으니

2016년도에 계정을 만든 것 같았다.

(텀프로젝트라고 앱 identifier를 term으로 했던 순수한 그 시절,,,,,)


그리고 이미 계정이 있었던 사람은 25달러를 내지 않아도 되었다. (감동)

과거의 나 칭찬해,,,,,,,,25달러 아꼈다,,,,



3)

displayName을 설정안해주는 실수를 했다..ㅠㅠ

앱스토어에서 다운받았는데 기본 값으로 나오고 있어서 깜놀했다.



그래서 결국 displayName을 바꾸고 버전을 새로 냈다는 사실...바보다바보..



[5] 어려웠던 점


1)

플러터 프로젝트안에는

iOS폴더와 안드로이드 폴더가 있다.

여기서 각각 iOS와 안드로이드의 세팅값들을 설정해줄 수 있다.


iOS 폴더에 가서 XCODE를 열고

DisplayName을 바꿔주면 안드로이드의 label도 같이 바뀐다.





하지만 XCODE에서 bundle_identifier를 바꿔주면

안드의 applicationId는 같이 안바뀐다.


여기 보면 diff에도 안뜨고



build.gradle에도 안바뀐다.



어떤 것은 같이 바뀌고 어떤 것은 같이 안바뀌는 건지 조금 헷갈린다-!!



[6] 더 해봐야할 점


1)

빠르게 코드 한벌로 iOS와 안드로이드 앱 출시가 가능한 싸이클(?)을 경험해보고 싶었다.

그래서 "처음 배우는 플러터"책을 조금 보다가 폭풍 구글링으로 최소한의 이해만 하면서 개발했다.


뭔가 수박겉핥기 한 것 같고 맘이 찝찝해서

일요일에  "처음 배우는 플러터" 책을 마저 다 읽었다.

(노트북을 안들고 부모님 집가서 딱 눈으로만 읽고 실제 해보지는 X)


하지만 여전히 다트언어와 플러터에 대한 기초가 부족한 것 같아서 문서를 좀 읽어봐야겠다.

그리고 책에 나왔던 API 연동하는 코드 등등 눈으로만 봤던 것을 손으로도 해보고 싶다.


+ 오준석님의 "플러터 생존코딩" 책도 있는데 그것도 읽기!!!!!!!!!


2)

완~~전 최소버전으로 출시했는데

글씨크기 바꾸는 기능 추가해서 아이패드에서도 쓸수있게 하기

(지금은 아이폰에서만 쓸수있게 체크 해놓음)

그리고 다양한 스타일 추가하기


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari