'Writing' 앱 제작기

Tabber·2021년 8월 30일
37

개인프로젝트

목록 보기
1/2
post-thumbnail

첫 개인 프로젝트를 마친 것에 대한 회고글 입니다. 👍🏻
앱 스토어는 아직 올리지 않은 미숙한 앱 입니다. 😭
앱 소개 깃허브 : Writing

제작기간 : 2021년 8월 12일 ~ 8월 22일
사용언어 : Swift
사용한 주요 라이브러리: Kingfisher,Firebase,YPImagePicker
디자인 패턴: MVC (추후 MVVM 리팩토링 예정)

못할 것 같았던 앱 제작.
결국에는(완벽한 상태는 아니지만) 제작하였다.
앱을 제작하기까지에 대해 회고해보려한다.

개인 프로젝트를 해보라고?

iOS 공부를 한지 3개월 정도 됐을거다. iOS 강의에서도 손꼽히는 강의로 알려진 안젤라쌤의 강의를 들으며 여러 앱들을(따라서) 만들어보고 있던 시절이었다. 물론 이 강의로 인해 기본적인 것들을 이해하고 사용해볼 수 있어서 좋았다.

하지만, 정작 내 머리속에는 들어오지 않는 느낌이 너무나도 강했었다.
따라서 고민에 빠지게 되었다.

"이렇게 하면 정말 실력이 늘 수 있을까?" 라는 생각이 머릿속에서 떠나질 않았다.

그러다, 우연히 친구가 던진 한마디가 해답이 되었다.

"그러지 말고 개인 프로젝트를 해보는건 어때?"

일단 시작해보고, 어짜피 하고 싶은 의지만 있다면 안되는건 없다라는 마인드로 나에게 설명을 시작했다.

그렇게 새벽에 그 소리를 듣고, 뭔가에 홀린 듯 그 즉시 앱 개발을 위한 구상도를 적기 시작했다.


뭘 만들어볼까 🤔

사실 이 부분이 제일 힘들었던 것 같다. 막상 할 것을 골라놓으면, 그걸 구현하기 위해서 찾는건 어렵지 않다. 하지만, 하고 싶은게 뭔지를 고르는 시간은 좀 많이 고민이 됐다.

그러다가 적당히 어렵고, 재미있을 주제를 찾아냈다.
'서버 통신을 하는 일기 앱' 이라는 컨셉을 생각해냈다.

앱 구상 노션
노션에 적혀있듯이 단순한 일기앱이 아니라, 이 앱으로 좋은 습관을 기를 수 있게 하고 싶다라는 생각이 많이 들었다.

따라서 목표를 '습관을 만들어주는 앱'이라고 정했다.

앱 기능을 생각할 때, 지금 내가 할 수 있는지 없는지를 생각하지 않았다.
일단 내가 구현하고 싶은게 있으면 막 적었던 것 같다.
일단 적어놓고 난 다음에 나중에 뭔가 문제가 생긴다면 빼면 될테니까 ㅎ

앱의 목표와, 기능들을 생각하고 난 뒤에 화면을 간단하게 구상해보았다.
(필자는 왼손에 악필이다.)
지금보니 저 그림과 지금 앱이랑 딱히 달라진게 없는 듯 하다.
이래서 초반에 간단하게라도 작성해놓는게 중요한 것 같다.

자, 준비가 끝이 났다. 이젠 앱을 개발할 시간.


앱 개발 🧑🏻‍💻

개발과정에서 정말 힘들었던 것은, 한글로 된 참고 자료들이 생각보다 많지 않았다는 것이다.
라이브러리와, 각 코드들의 기능을 잘 모르고 시작했던 나로써는 정말 힘들었다.

진짜 이 짤이 적절하긴 한데..

그래도 그 속에서, 검색하는 방법도 터득한 것 같고
라이프 사이클, 테이블뷰, 컬렉션뷰, UIView 등등.. 정말 많은 것을 사용해보며 방법을 터득 할 수 있었다.

이렇게 점점 시행착오를 거치며, 내가 원하는 기능들을 구현해보았다.
사진에서도 보이듯, 초반에 테이블 뷰가 너무 말썽이었다.

테이블 뷰 때문에 2~3일을 다 까먹기도 했지만, 결국에는 방법을 찾아 중간의 사진(아직 완성되기 전 뷰)처럼까지 바꿀 수 있었다.

또, 파이어 베이스를 제대로 사용해본 것은 이번이 처음이라 정말 모든 것이 서툴렀다.


위 사진만 봐도, 계정별로 컬렉션을 저장시키는데, 처음에는 계정 정보가 옵셔널로 오는지도 모르고 그냥 넣어서 사용을 했던 흔적이 보인다.
아래꺼는 정신차리고 옵셔널 바인딩 후 적용한 모습이다.

문자열은 그렇다 쳐도, 사진을 파이어베이스에 올리는걸 진짜 처음 해본입장이라 1부터 시작을 했다고 해도 과언이 아니다.


파베 스토리지의 모습이다.
이 스토리지 때문에도 고생 많이했다.

뭐, 사진을 그냥 올리는건 문제가 안된다. 하지만, 올리는게 있다면 삭제할 수 있어야 하는게 기본이다.
그런데 초반에는 파일명을 어떻게 정해야하는지 부터 시작해서, 삭제하는 방법도 잘 모르고, 엎친 데 덮친 격 이었다.

그래도 나중에 파일명 자체를 올릴때의 시간으로 해서, 삭제를 원할 때 같이 올렸던 글과의 시간을 매칭 시켜 맞는 것을 삭제해주는 방법을 떠올렸다.

그 중에서도 나를 제일 짜증나고 힘들게 했던것은,

하.. 지금 봐도 짜증난다.
첫째 상황은 내 앱의 기능에 대해 좀 알아야 한다.
'라이팅'은 글과 사진을 올릴 수 있는데, 글만 써서 올려도 괜찮고, 사진과 함께 추가해서 올려도 괜찮다.

하지만, 저때의 '라이팅'은 사진규격을 고정을 해놔서 사진이 없어도 일단 그 프레임 만큼의 규격은 뜨게 되는 것이다.
따라서, 위 사진 처럼 아무것도 없는데 공간이 뜨는 것이다 ㅠㅠ

이것 때문에 고생 많이했다.
강제로 constraint 변경하면, 모든 프레임이 다 바뀌고.
어쩌다가 되는 것 같으면, 잠깐 화면을 바꾸면 완전히 뒤죽박죽으로 사진이 있는것도 안나오고 하.. 정신이 나갈 뻔했다.

그리고 오른쪽 사진은 글을 올렸음에도 불구하고, 실시간으로 업데이트 하지 않는 상황이었다.
그래도 이건 간단하게 수정할 수 있었다.(많이 무식한 방법이지만)

결국에는 방법을 찾아서(신기하게 또 찾는다) 이젠 사진을 안올려도 사이즈가 커지는 상황은 없다.

또한 , 프로젝트를 진행하면서 처음에 목표로 했던 것들에 대해 약간의 수정이 있었다.

대표적인 변경 사례인데..
깃허브 설명에서도 보여준 '사진'뷰는 사실 '검색' 뷰 였다.
솔직하게 말하면, 이쯤부터 너무 힘들었다.

어서 끝내지 않으면, 아마도 아얘 끝내지 못할 것 같다라는 느낌이 갑자기 들었기도 했다.

검색 기능 자체는 라이브러리가 있다고 하지만, 서버에서 땡겨와서 그걸 다 폰에 저장시켜서 한다고 하면, 나중에 일기가 많아졌을 때, 과연 감당할 수 있을까 란 (핑계) 생각이 들기 시작했고...

사실 여기쯤부터 정신력이 많이 흐트러졌다고 생각하면 될 듯 하다.
사실 검색뷰를 구현해보고 싶은 마음은 아직까지도 있다.(뭐 그럼 추후에 기능 추가를 생각해보기도 하ㅈ...)

아무튼 검색 뷰를 인스타 피드처럼 볼 수 있는 사진 뷰로 교체하고 이 프로젝트를 끝마치기로 했다.

약간 앱을 개발할 때 이러한 곡선을 탄듯 하다.
앱 개발 초기에는 막 다 만들 것 같고 그랬지만, 점점 내 한계를 느끼게 되었고, 그렇지만 한계에서 멈추지 않고 어떻게든 방법을 찾아내어 비록 내가 원했던 처음 목표의 기능이 아니더라도 비슷하게 까지라도 구현하는 것을 생각하며 열심히 달렸던 것 같다.

결국에는 개발 완료를 하지 않았는가? ㅋㅋㅋㅋㅋ 아무튼 했으면 됐다. 만족한다.


결과 ⭐️


결과적으로 내가 원했던 방향의 앱을 만들었고, (아직 앱스토어에 출시는 못했지만) (사실 출시까지 할 퀄리티가 맞는지..) 생애 첫 개인 프로젝트로 완료가 되었다.

완성도도 중요하지만, 일단 일을 시작해서 끝을 냈다는 것에 난 초점을 두고 싶다.
사실 난, 뭔가를 시작하고 끝내기를 잘 못하는 성격이다.
맨날 뭔가 조금 하다가 끝내고.. 그래서 이 앱은 내 습관을 바꾼 앱이라고 생각한다.

재밌으니까 정말 하기 싫다가도, 또 일어나서 다시 엑스코드를 키는 내 모습을 보기도 했으니 말이다.

한마디로 말하면 "재밌었다" 정말로.

아까 위에서 말했던 강의에서 배운 것으로 아무것도 없는 백지 상태에서 앱을 만들어 내면서 얻은게 너무 많다.
이제는 파이어베이스로 통신하는 앱은 거뜬히 만들 수 있을 것 같다. (뭐 이러다가 며칠 지나면 또 까먹을게 분명하다)

그래도 이 활동의 연장선상으로 YAPP 19기를 합격했으니, 여기서는 정말 내 실력을 키워야 할 것 같다.

다음 프로젝트에서 또 글을 쓰겠다.

profile
iOS 정복중인 Tabber 입니다.

16개의 댓글

comment-user-thumbnail
2021년 8월 30일

거장의 탄생 순간을 두 눈으로 본 것 같아 왠지 모르게 가슴이 벅차오르네요. 화이팅입니다!

1개의 답글
comment-user-thumbnail
2021년 9월 2일

비둘기 머리 핼리곱터보고 좋아요 누릅니다.... ㅋㅋㅋㅋㅋ 공감갑니다.. ㅋㅋㅋㅋㅋ

1개의 답글
comment-user-thumbnail
2021년 9월 3일

이런 어플은 스토리보드로 만드나요?

1개의 답글
comment-user-thumbnail
2021년 9월 4일

재밌는 글 잘 보고가요 멋지네요 ㅎㅎ

1개의 답글
comment-user-thumbnail
2021년 9월 5일

글 잘적으셨네요 다만 개발자 회고나 로그 적을때는 기술스택 적는게 빠지면 안될거 같아요 ㅎㅎ

1개의 답글
comment-user-thumbnail
2021년 9월 5일

저도 마음 한 켠엔 ios 앱 개발을 꼭 하고싶단 마음이 있는데 대단하시네요..!! 글이 재밌게 잘 읽혔는데 혹시 저런 짤들은 어디서 구하시는건가요? ㅋㅋㅋㅋ

1개의 답글
comment-user-thumbnail
2021년 9월 6일

적절한 짤과 심리가 잘 담긴 좋은 글이네요 ^^

1개의 답글
comment-user-thumbnail
2021년 9월 10일

비둘기 보고 뿜었습니다 ㅋㅋㅋㅋㅋ 고생 많으셨네요 ~

1개의 답글