안녕하세요,
이번 학기에 사이드 프로젝트로 한가지 앱을 정해, 학생 개발자인 저와 다른 UI/UX 디자이너 학생 한분과 협업하여 만들어 보았습니다!
관련해서 여러가지 느낀게 많아서, 정리해서 한번 글로 올려 보려고 하네요.
관련해서 적을건 너무나도 많지만, 앱의 모토가 심플함을 추구하는 만큼, 간략하지만 알차게 적어보겠습니다!
프로젝트 구상 과정:
처음 프로젝트를 구상할 때는, 여러가지 아이디어가 나왔고(서로서로 전혀 다른 아이디어들), 어떤걸 할지 계속 고민하고, 살짝 발을 담궜다 빼기도 하다가, 결국 둘다 아직 경험이 많이 없기에, 심플한 앱으로 첫 발걸음을 떼는걸로 결정했습니다.
아이디어:
요즘들어서 점점 구독형 요금제가 많아지고 있고, 하나하나 월로 따지면 그렇게 큰 돈이라 아니라 생각하기 쉽지만, 정작 종합해서 합계로 보면 생각보다 많은 돈이 월마다 빠져나가고 있는 경우가 많기에, 그런것들을 잘 관리 할 수 있도록 도와주는 앱입니다.
사전조사:
당연히 이미 앱스토어에는 많은 가계부 앱들이 이미 존재하고, 구독형 요금제를 관리하는 앱들도 많이 있었습니다.
또한 기능면에서도 해지하는 페이지 연결, 구독 기간 설정 등과 같은 여러가지 기능이 많았구요.
하지만! 기능이 많으면 좋은 사람들도 있지만, 저 같은 경우에는, 괜히 설정할게 많으면 귀찮아서 앱을 사용안하게 되는 경향이 있고, 이 의견에 대해 공감을 하실 분들이 꽤나 있다고 생각되어, 오히려 기능을 최대한 단순하게, 딱 필요한 기능들만 집어넣고, 일목요연하게 보여주는 것을 목표로 삼았습니다.
-> 그로 인한 개발 기간 단축, 깔끔하고 심플한 UI 구현 가능과 같은 장점이 생기지만, 자칫하면 앱이 너무 비어보일 수도 있다는 단점 및 걱정도 생겼습니다.
개발 시작:
먼저 Miro라는 협업용 화이트보드 툴로 전반적인 구조를 정해나가며, 유용한 링크부터 시작해서 프로토타입 이미지, UML 다이어그램 등등 이것저것들을 다 미로 보드에서 정리했습니다. (밑의 사진 참조)
그리고 추가적으로 간반 보드(To-Do List)를 사용하여, 서로 할 일을 배정하고, 기록하였구요.
처음 컨셉에서는 검색 기능, 구독하는 아이템의 로고(넷플릭스와 같은 대표적인 아이템들만) 등과 같은 기능도 등장했고, 이것저것 좋아보이는 기능들을 추가하다 보니, 앱이 다시금 복잡해지는 것 같아, 회의를 통해 한번 다시금 심플한 컨셉에 중점을 두고 바로 앱 개발에 들어갔습니다.
개발 과정:
앱 개발에 대한 지식이 많이 없는 상태에서 시작해서, 완전 땅부터 파고, 빌딩을 올리면서, 동시에 다시 재건축하는 식의 개발을 하느라, 그 과정에서 시간이 꽤나 소모되었지만, 그 과정을 통해, 정말 많은 것들을 배운 것 같다고 느낍니다.
예를 들어, 처음에는 간단한 앱이니 따로 소프트웨어 아키텍쳐 패턴의 사용 없이 시작했는데, 간단한 앱일지라도, 꽤나 많은 개발 과정이 필요하기에, MVVM(모델-뷰-뷰모델)과 같은 패턴을 사용하는게 얼마나 중요한지 몸소 깨닫게 되었던 것 같습니다.
그 외에도 정말 적을게 많지만, 개발 관련 문제와 해결방법들은 나중에 따로 적는게 나을 것 같아 이만 줄여봅니다.
개발 막바지:
슬슬 iOS 앱 개발에 관한 지식도 꽤나 쌓였고, 익숙해져서, 디자이너 분이 요구하는 기능들을 이전과는 달리 금방금방 구현해나가며, 개발자로서 어느정도 성장 했다는걸 조금 느끼기 시작했습니다.
단순 기능뿐만이 아닌, 유저 경험 향상을 위한 애니메이션과 버튼을 터치했을 때, 색깔이 변하는 것, 그리고 햅팁 기능과 같은 사소한 디테일들을 챙기기 시작하며 개발의 마무리로 점점 다가가게 됩니다.
또한 디자이너 분이 주신 최종 디자인(제플린 툴 사용)을 각각의 아이폰 기기에 맞게 최적화 작업도 시작하고, 한국어/영어/독일어 지원을 위한 지역화 작업에도 들어갔습니다.
결국 그렇게 모든걸 완료하고 앱스토어에 출원 심사 요청까지 가게 됩니다!
앱스토어 출원 과정:
먼저 앱스토어에서 저희 앱에 관한 설명, 사진들을 지역/언어에 맞게, 아이폰 유형(노치 유무)에 맞게 만들어 주었습니다. 그리고 개인정보 처리방침을 적어야 해서, 자동으로 만들어주는 웹사이트에서 만들어 몇가지 부분들을 수정하여 올렸습니다. 저희 앱의 경우 사용자의 데이터를 전혀 수집하는게 없기에, 관련해서는 간단하게 진행되었네요!
그리고 앱 사용하는 간단한 영상을 첨부하였으며(필수 아님), 이것저것 자잘한 정보들을 기입하고, Xcode(애플 통합 개발 환경)에서 앱을 빌드하여 앱스토어 커넥트로 올리고 리뷰 요청을 올립니다!!
하지만 올리자마자, 빼먹은 것 또는 수정할 게 있어서, 취소하고 다시 올리고를 3번정도 반복했었네요 ㅎ
다 챙긴 것 같아도, 꼭 빠진게 있더라구요..!
그렇게 첫번째 출원 리뷰 요청을 올리고, 큰 문제없이 바로 앱스토어로 올라가는 것을 기대 했으나, 거부 메일을 받고 심장이 덜컥 내려앉았습니다.
앱이 너무 간단해서 거절당한건가? 내가 캐치못한 버그가 있는건가? 하는 생각을 하며 이메일을 열어 보았고, 다행히 거절 사유는 아동용이 아닌데, 아동용에 체크를 해서였네요.
기본적으로 금융앱 카테고리에 들어가 있고, 어린이도 사용할려면 할 수 있는 앱이라고 생각해, 어린이용에 체크를 했는데, 이 어린이용의 의미는 유튜브 키즈와 같은 의미였더라구요!
그래서 그 부분을 체크 해지 한 후에, 다시 출원을 하게 됩니다..!
그리고 하루가 지나고 앱스토어에 올라갔다는 메일을 받고 디자이너분과 함께 자축을 하게 됬네요 ㅎㅎ
앱스토어 출원 후:
지인들에게 먼저 피드백을 받았습니다.
저는 워낙 앱이 심플하기에 온보딩 페이지(앱 시작하면 뜨는 설명페이지) 없이 일단 출원을 했는데, 이건 제가 놓친 부분이었네요. 저야 이 앱을 개발해왔으니, 당연히 모든 기능들이 쉬울테지만, 첫 사용자에게는 아리까리한 부분이 확실히 있기에, 바로 온보딩 페이지를 빠르게 만들었습니다.
그리고 원화를 사용시에, 15000원을 입력하면 150원으로 저장이 되는 치명적 버그를 발견했습니다..
달러나 유로의 경우, 1유로 밑에 센트라는 단위가 있어, 150,50(=150유로 50센트)와 같이 소수점 두자리까지 보여주고, 원화 같은 경우, 1/10원 밑으로 소수점 자리가 존재하지 않기에, 소수점 자리 없이 0을 바로 보여주게 되는데, 그 부분에서 조건문을 빼먹어 발생한 버그였네요.
그렇기에 온보딩페이지와 위의 버그를 고치고, 새로 업데이트 버전을 올렸고, 그게 바로 어제밤이었네요!
향후 계획:
현재 앱의 목적을 위한 기능은 충분하다고 생각되기에, 온보딩 페이지의 업데이트, 그리고 유저 피드백을 받아 고쳐야할 부분을 고치는 정도로 현재 계획을 하고 있네요.
꼭 필요하고 좋은 기능이 떠오른다면 추가 생각도 있기도 하구요 ㅎ
앱 사용 방법:
구독형 요금제를 타겟으로 시작했지만, 결국 집세나 공과금 등과 같이 매월 나가는 돈도 기록하여 전반적인 가계부도 “심플”하게 만들 수 있고, 기본적으로 각각의 페이지로 나누는 것이 가능해서, 유저가 원하는 대로 만들 수 있습니다.
예를 들어, 집에 관한 비용 페이지, 구독형 요금제에 관한 페이지 (밑의 예시 사진 참조)
그리고 그 페이지들은 왼쪽 오른쪽 드래그 제스쳐를 통해 페이지를 넘나들 수가 있구요.
추가적으로 상단의 페이지 제목을 터치하면 한번에 특정 페이지까지 갈 수 있는 텔레포트뷰가 나오게 됩니다! 이 부분도 향후 온보딩 페이지 업데이트 때, 추가하여 사용자에게 알려줄 예정이네요.
그리고 이게 끝입니다 :)
단지 페이지의 제목, 아이템의 제목과 가격, 이 간단한 과정으로 이미 앱을 마스터하셨습니다!
저는 이 심플함을 좋아하지만, 사용자에게는 어떨지 살짝 걱정되기도 하고 기대도 되네요 ㅎ
앱의 이름은 영어/독일어로는 “Monthly Wallet”이며, 한국어로는 “몬슬리 월렛”입니다!
기능이 심플한만큼 무료앱이구요.
아쉽게도 앱스토어에서만 찾아 볼 수가 있으며, iOS14 부터 지원을 합니다..!
관련해서는 개발관련 글에서 좀더 자세히 적어볼까 싶네요 :)
매월 나가는 돈을 심플하게 관리하실 분들에게 특히 추천드리며, 이만 글을 마치겠습니다!
읽어주셔서 감사합니다!
(IP보기클릭)77.23.***.***
아이엔에프피
감사합니다,유용하게 쓰였으면 하네요! 앱의 테마는 현재 다크모드만 존재하네요! 디자인 업데이트가 나중에 있을 예정이긴 합니다! | 21.08.22 02:32 | |
(IP보기클릭)77.23.***.***
아이엔에프피
관련해서 설명 페이지를 조만간 업데이트 해보겠습니다..! | 21.08.25 18:05 | |