[iOS] 다사다난했던 첫 앱 출시 후기

ungchun·2022년 5월 12일
2

회고록

목록 보기
1/4
post-thumbnail

인생 첫 앱을 출시하며 있었던 이야기를 기록으로 남겨보려합니다.

규칙

모바일 개발은 Flutter로 먼저 입문했었습니다. 하지만 iOS에 더 관심이 있었고 최종적으로는 취업도 iOS로 하려 했기에 iOS에 조금 더 집중하기로 결정을 했습니다. 프로젝트는 저 포함 2명이서 진행하였고 몇개의 규칙을 정해 기획을 진행했습니다.

  • 유저정보를 최대한 묻지 않는 로그인, 회원가입
  • 유저간 상호작용하는 기능들 배제
  • 복잡하지 않은 UI, UX
  • 디자인은 최대한 해치지 않게 제작

이제 막 swift 기초 문법을 공부하고 바로 프로젝트를 진행했기에 리스크를 최대한 줄이려고 이렇게 규칙을 정했습니다.

실제로 그때 당시 작성했던 노타빌리티 메모인데, 이렇게 보니 조금 부끄럽네요.. ㅋㅋㅋㅋㅋ


기획

앞에 작성한 규칙들을 토대로 우리는 할만한 주제거리를 찾아보기 시작했습니다. 엄청난 기술을 요구하는 앱들은 당연히 당장 만들 수 없었기에 사실 선택지가 정말 없었어요.. 어떻게든 쥐어짜내 찾아보고 우리는 명언, 일기, 편지, 시, 글쓰기, 노트 정도의 키워드를 뽑아냈습니다. 처음 프로젝트를 진행하기에 부담이 없을 거 같은 친구들로 고르고 골랐답니다.. 그 중에서 무엇을 만들어야하나 하면서 이야기를 나누었고 그 결과 우리는 명언 + 일기 가 합쳐진 앱을 만들어 보기로 결정했습니다. (더 많은 기능들이 들어가면.. 자신이..^^)


곧바로 앱 디자인을 살짝 진행해봤는데, 첫번째 사진은 노타빌리티에 낙서하듯 대충 그린거고 두번째 사진은 Adobe XD로 기본 틀만 잡아놓은건데 누가보면 이게 디자인입니까..? 라고 물어볼만한 처참한 수준이긴 하지만..ㅋㅋㅋ 옛날부터 느꼈지만 늘 자신과 싸우며 창작의 고통에서 살아가시는 모든 디자이너분들 존경합니다.. 저는 평생 디자인을 해본 경험도 없고 재능도 없지만 앱을 만들기 위해서는 어쩔 수 없었어요.. 그렇다고 디자인 외주를 할 정도로 엄청난 규모의 프로젝트가 아니라 최대한 다른 어플들 UI, UX 참고하며 진행했습니다.


개발

개발에 들어가기 앞서 정말 iOS 개발은 처음이라 뭐가 뭔지도 몰랐습니다. UIkit는 무엇이고 swiftUI 무엇이며, 또 rxSwift는 무엇인가.. 사실 지금도 잘 모르긴 하지만.. 다들 처음은 UIkit 으로 진행하고 iOS 개발자라면 당연히 알아야하는 덕목이라고 하기에 UIkit 베이스로 진행하기로 하였다. 처음에는 엄청난 포부로 StoryBoard 없이 UI를 코드로만 짜보겠다 ! 생각하고 덤벼들었다가 하루만에 항복선언하고 StoryBoard로 돌아왔습니다..ㅋㅋㅋㅋㅋ 초심자가 StoryBoard 없이 코드로만 UI 짜는건 힘들더라구요.

  • UIkit
  • Firebase
  • Realm
  • git

우리는 이 프로젝트를 진행하면서 swift에 조금 더 적응하고 익숙해지는게 목표라 최대한 다른곳에 힘을 줄였습니다. Firebase 에서 auth 처리도 해주고 db 역할도 해주고 서버 역할도 해주기에 우리 입장에서 최고의 선택지이고, git 사용은 따로 설명하지는 않겠습니다.

2022.04.06 ~ 2022.05.10


swift로 개발이 처음이다보니 수많은 에러들과 싸우며 약 한달간 프로젝트를 진행했습니다. 진행하며 Tabman이나, Kingfisher 같은 좋은 라이브러리들도 알게 되어 써보았습니다. 정말 다행인것은 firebase functions 나 firestore, fcm 같은 것들은 예전 플러터로 공부할 때 다 써보았던 것들이라 시간이 생각보다 오래 걸리지 않았습니다. 만약 functions 나 fcm을 처음 접했으면 시간이 엄청 더 걸리지 않았을까.. 결론적으론 이 프로젝트는 좋은 경험이었고 목표였던 swift에 조금 적응하게 됐습니다. 총 125 commit 으로 프로젝트는 마무리되었고 추후에 유지보수는 꾸준히 할 예정입니다.


배포

iOS는 개발만 한다고 끝이 아니라 배포도 문제라더라.. 당장 구글에 앱스토어 리젝사유 라고 검색하기만해도 쏟아지는 무수한 사유들.. 예를 들면

  • 애플 로그인 기능 추가 (소셜 로그인 사용 시)
  • 탈퇴 기능 추가
  • 구현되지 않은 기능
  • 좋지 않은 디자인
  • 로그인이 필수인데, 일반회원가입이 없을 경우/소셜 로그인만 단독으로 있을 경우

등등 엄청나게 사유들이 많습니다.. 이렇게 빡세게 테스트를 하니 앱스토어에는 이상한 앱들이 적은건가..? 우리 프로젝트에는 다 괜찮은데 딱 하나 로그인이 필수인데 일반회원가입이 없을 경우, 네.. 우리 프로젝트에는 로그인이 필수인데 일반회원가입은 지원하지 않습니다.. 해결안은 게스트 로그인을 넣거나 일반회원가입을 넣거나 로그인 필수가 아닌 선택적으로 만들어, 비회원 기능을 추가(앱에 대한 정보 열람 등)를 해야했습니다. 그래서 우리는 급하게 비회원 기능을 어찌어찌 만들어서 추가하고 배포준비에 들어갔습니다.

앱 미리보기는 AppMockUp Studio 에서 만들었어요. 기본 탬플릿도 지원하고 쉽게 만들 수 있어서 좋은 거 같아요.

후.. 덤벼라 앱스토어.. 바로 나의 앱으로 들어가서 정보들을 작성했습니다. 처음 작성해보는데 뭐 이렇게 작성할게 많은지.. 어찌어찌 구글링을 하면서 정보들을 입력했습니다. 그리고 xcode 에서 Archive를 통해 프로젝트를 성공적으로 등록을 했습니다. 근데 시간이 20분이 지났는데도 배포하는 버튼이 반응이 없길래, 엥 뭐지? 이러면서 메일을 확인해보니..

흠.. 이건 또 뭐지.. 구글링해보니 NSPhotoLibraryUsageDescription 요 친구 쓰는 이유가 뭐야? 목적을 상세하게 작성해줘. 라는 뜻이네요.. 바로 info.plist 로 들어가서 작성해주고 다시 올렸습니다. 그리고 몇분 후..

드디어 올라갔네요 ! 이제 모든 배포준비가 끝났습니다.. 남은건 테스트를 거친 후 정식출시 뿐.. 두손모아 리젝이 안당하길 바랄 뿐ㅠㅠ 심사에 제출 버튼을 꾸욱 누르고 메일을 확인해보니 대충 24~48시간 정도 걸린다고 하네요. 앱 크기에 따라서는 더 걸릴 수도 있다고 합니다. 그래서 저는 메일이 언제오나 하면서 계속 수시로 들어가서 확인했었어요ㅋㅋㅋ 그 다음날 아침 8시 눈 뜨자마자 메일을 확인해보니..

??! Congratulations? 이거 축하한다는 뜻인데 설마? 하면서 쭉 보니 성공적으로 승인이 됐습니다! 한번에 통과되어서 정말 너무 기뻤어요. 만약 리젝이 떴으면.. 어후 상상도 하기 싫네요.

드디어.. 나에게도 내 이름 앞으로 된 앱이 나왔습니다! 기능이나 디자인적으로는 엄청난 앱은 아니지만 그런게 무슨 상관이리 그냥 이런 과정들과 결과물이 있다는 것이 재밌고 즐겁네요.


느낀점

앱을 배포하면서 앱 하나를 만들려면 엄청나게 많은 과정들이 있어야 한다는 것을 느꼈고 그 과정들이 상당히 쉽지가 않았습니다. 앱 설계, 기획부터 디자인, 구현, 배포까지 어디하나 쉬운게 없었어요.. github merge하면서 conflict 처리를 제대로 못해서 중간에 한번 터지는 경우도 있었고 내 생각대로 앱이 돌아가지않아서 멘붕이 온 경우도 많았습니다. 앱 규모가 커지면 커질수록 이런 어려움들이 더 많을 것이겠죠. 그래도 작지만 이런 경험을 해보고 결과물이 나왔다는게 너무 뿌듯하고 좋았습니다. 이 경험은 나도 모르게 성장을 위한 좋은 거름이 될 것이 분명하다고 생각합니다. 이 앱은 크게 기능들을 추가하지는 않을 거지만 조금씩 유지보수는 진행할 예정입니다. 다음 앱은 swiftUI를 이용해서 조금 더 규모가 있는 앱을 만들어보는게 목표입니다. 쉽지 않은 여정이겠지만 부딪혀보고 경험해봐야 성장할 것이 분명하기에 멈추거나 포기할 수가 없네요. 또 다른 앱들을 많이 출시해서 첫 출시 후기가 아닌 두번째 세번째 출시 후기가 작성되는 날이 왔으면 좋겠습니다.


이번 프로젝트의 모든것은 github 여기에 있으니 궁금하신분들은 들어가셔서 확인해주세요 !

0개의 댓글