안녕하세요 하노입니다 :)
오늘은 첫 앱 출시 과정에 대한 회고를 작성해보려고 합니다.
(Zedd님 회고 멋있어 보이길래 따라해봤습니다 ㅎ)
1. 앱 소개
제가 이번에 출시한 앱은 반려동물의 일상을 기록하는 다이어리입니다.
https://efficient-spaghetti-60d.notion.site/27a6c68c76944d7593b7998d5456b9e0
다이어리이면서 알람 기능이 들어가 있어서 나름 편리한??? 기능이라고 자부합니다.
그 외 다른 카테고리들 별로 작성할 수 있게 만들었습니다.
2. 데이터 설계
전체적인 데이터 설계는 Realm을 사용했습니다.
Realm을 구성할 때 중요하게 생각한 포인트는
- 메모를 카테고리별로 분류가 가능해야 함.
- 여러 마리의 반려 동물을 등록할 수 있는 기능( 추후 업데이트 예정)
- 마이그레이션을 최대한 안 할 수 있게 설계. (사실 가장 중요!!!)
라고 생각했습니다.
그래서 고민하던 중, Realm Model 하나로 구현할 수 있을 것 같아서 아래와 같이 구현해서 사용했습니다!
3. 발생했던 이슈와 대응 방법
생각보다 출시하면서 생기는 이슈가 많더라구요 ㅠㅠㅠ
그중 크고 중요하다고 생각했던 것, 시간을 많이 갈아 넣었던 것들만 추려서 이야기해보겠습니다.
1. TableView Cell 재사용 이슈 및 index out of range 에러
아마 가장 많이 난 에러가 아닐까 생각합니다...ㅋㅋ
카테고리별로 데이터가 있으면 TableView에 띄워주고 아니면 없애는 방식으로 구현해야 했는데요.
이 과정에서 섹션과 Cell까지 계산하려 하니 코드는 코드대로 길어지고 동작은 또 안되고 하더라구요...ㅠㅠ
해결한 방법으로는 TableView의 section을 상수 값으로 주고 Cell의 개수만 계산하여 구현하였습니다.
그럼 TableView의 해당 section에 데이터가 있으면 어쩌냐구요???
데이터가 있으면 높이를 주고 없으면 높이가 0으로 주었습니다 ㅎㅎ
그리고 TableView의 기본적인 높이가 있어서 그것마저 0으로 구현하였습니다!
2. FSCalendar 에러
이걸로도 많은 시간을 썼습니다... 결론은 FSCalendar 문제이긴 한데... 이게 FSCalendar 만의 문제가 아닌 것 같기도 하고..ㅎㅎ
우선 아래 자료 화면을 보시죠..
작성 화면에 들어가서 만약 스와이프로 이전 화면으로 가려고 시도하다가 작성 화면으로 다시 돌아가면
내비게이션 바가 사라지는 현상이었습니다... 참 신기하죠...??
처음에는 저도 생명 주기에 관한 문제인 줄 알고 하루 종일 생명주기도 찾아보고 이것저것 계속 시도해봤습니다.
그러다가 같은 현상이 발생하는 분을 만나서 같이 고민하다가
혹시... TabBar도 쓰고 Navigation Controller도 쓰는데 FSCalendar까지 쓰는 사람이 같은 현상이 발생한다...??
FSCalendar 문제인가??? 하는 멘토님들의 의견에 따라서 Calendar의 reload 시점을 변경해줬더니 보란 듯이 잘 동작하더라구요 ㅠ
(샤라웃 Jack, Brady ㅠㅠㅠㅠ)
그래서 오픈소스 라이브러리를 맹신했었던 제 자신을 다시 한번 되돌아보는 시간이었습니다.
4. 앱 출시 기획에 밀려서 구현하지 못했던 기능들
1. 여러 마리의 동물을 등록할 수 있는 기능
원래 여러 마리의 동물을 등록할 수 있는 기능을 넣으려고 했으나 시간에 쫓겨 생각만 하고 구현하지는 못했습니다 ㅠㅠㅠ
다음 업데이트를 기대해주세요.....ㅎㅎ ㅠㅠ
2. 검색 기능
두 번째 화면에 Search Bar를 넣어 검색하는 기능을 구현하려 했지만 역시 시간에 쫓겨 구현하지 못했습니다...
다음 업데이트를 기대해주세요...!!ㅠㅠㅠ
5. 코드 회고
이번 앱 출시를 목표하면서 가장 큰 목표가 MVVM을 사용하여 앱 출시하기!! 였습니다.
물론 코드를 작성하다 보니 구현에 급급해서 Bind는 커녕 비즈니스 로직도 ViewModel에 넣지도 못한 것 같습니다...ㅠㅠ
하지만 이번 계기로 MVVM 패턴을 어떻게 사용하는지, 장점이 무엇인지 감이 잡혔습니다.
반대로 아쉬운 점은
'접근 제어'를 제대로 사용해보지 못했다는 점,
네이밍이 마음에 안 든다는 점...!,
구현이 급해서 코드를 생각 없이 짰다는 점!!! (반성합니다 ㅠㅠ)
입니다.
아쉬운 점들은 아직 업데이트라는 벽이 남아있으니 그때 차차 녹여보면서 수정, 구현해볼 예정입니다..!!
이상 첫 앱 출시에 관한 회고였습니다!
막상 첫 출시를 해보고 나니 앱스토어에 제 앱이 있는 것도 신기하고, 막상 앱을 보니 좀 더 보완해야 할 점이 눈에 보이네요 ㅎㅎ....
그럼 오늘 글은 여기서 마치겠습니다!!
감사합니다:D
앱 링크:
https://apps.apple.com/kr/app/BangiDaApp/id6443524869
'iOS' 카테고리의 다른 글
메모리 누수(Memory Leak) 점검 • 해결 방법 및 회고 (0) | 2023.07.29 |
---|---|
[iOS + Firebase] Analytics, Crashlytics, Messaging 사용하기 (0) | 2022.10.11 |
[iOS] 라이트 모드 / 다크 모드 막기 (0) | 2022.08.08 |
[WebKit] WebView 사용법 (0) | 2022.08.08 |
[iOS] Xcode DocC 사용법 (0) | 2022.07.17 |