본문 바로가기

iOS/JourneyOfFaith App

[iOS] No 6. iOS앱 AppStore에 출시 후기!!

 


 

성경대로

 

마음의 중심을 붙드는 성경 앱 - 성경대로

앱스토어에서 다운로드

 
 
위 엡 스토어 이미지를 누르면 이동할 수 있습니다.


 
작년 하반기 취준 활동 약 2달 동안 하면서,, 그리고 여러 기업에 지원하며 서류탈락, 면접 탈락 등등 뭐가 부족한 것인지를 좀 생각했었는데 앱을 출시한 경험이 없어서 그런가? 하는 생각이 들었습니다.
 
그래서 기존에 여러 대외 활동과 혼자서, 같이 프로젝트를 하면서 익힌 개념들을 활용하며 추가로 Tuist, RxSwift, ReactorKit 등 새로운 기술 스택을 공부하고 적용하며 배포를 할 겸 앱을 하나 만들어야겠다는 다짐을 했습니다! 
 

 
예전부터 아주 막연하게? 성경 앱을 만들어볼까 하는 생각만 했었는데요.
24년 11월~ 12월 영어 공부를 좀 하고 2번의 토익 셤을 치룬 후에 25년 1월부터 본격적으로 준비를 했습니다.
 
 
25년 1월 초반 주차에는 피그마를 배우면서 동시에, 성경 앱을 만들 수 있을지, 어느 데이터들을 활용할 수 있을지 해외 오픈소스, 저작권 등을 파악했습니다. 채팅 기능도 충분히 만들 자신 있었고, 대화형 open AI를 써볼까 했지만 지피티, 제미나이 등등 이용할 때마다 비용 지불이 되기 때문에 제가 추구했던 "무료"와는 맞지 않아서 아쉽게 포기한 그런 기능들이 몇 있었습니다.
 
그리고 본격적으로 기능들을 정하면서 기존 앱스토어, 안드로이드 시장에 나왔던 성경 앱들의 좋은 점들, 추가하고 싶은 기능들을 분석했습니다.(한 20~30개 국내 해외)(도서앱들도 일부)
 

 
제 성격은 개발하면서 추가로 좀 더 나은 것을 위해? 개발 후에도 좀 고민을 해서 수정할게 있다면 수정을 성향이어서, 배포를 위해 우선적으로 처음 지정한 기능의 범위를 지정했습니다. 와이어프레임이랑 App Flow를 통해 화면별 기능과 비용상 추가 못하는 것들을 분류해서 그렇게 1차적으로 기능 확장 가능성에 대한 제약을 했습니다.
 
물론 개발하면서 몇 부분들은 추가적인 화면 기능들을 도입했는데, 더 좋게 만들기 위해 고민이되고 그래서 조금씩 UI, 기능이 추가된거 같습니다. (혼자 디자인하고 개발하며 UI에 애니메이션주고 개발해서 어느 UI가 더 좋은지.. 선택하기 어려웠습니다)
 
 

쉐도우, 메뉴바 등등 고민..

 


기존에 xcworkspace, SPM으로 모듈화 했던 경험을 살려볼겸 Tuist 를 써보고 싶었기에 Tuist를 공부하면서 적용하고 RxSwift도 공부해서 프로젝트에 도입하는 제 나름 새로운 도전을 해봤습니다. 이때 UI는 View event, VC, Reactor간 단방향 흐름 제어인 바인딩 초점에 맞췄고 DesignSystem 모듈의 UIComponent는 내부적으로 RxSwift 사용을 하지 않았습니다.
 
외부 라이브러리 의존성을 최소화하는 것을 목표로 했지만,
RxSwift와 ReactorKit을 실제 프로젝트에 적용해보고 싶은 욕심이 있어 도입하게 되었습니다.
 
처음 접한 ReactorKit에서는,
매번 새롭게 생성-> 할당되는 Reactor.State state 프로퍼티에서
제가 원하는 변화만 감지하도록 처리하는 구조가 다소 낯설었지만,
.distinctUntilChanged() 등을 통해 필요한 변화만 구독하는 방식에 차츰 익숙해졌습니다.
 

새로운 탭으로 사진을 보면 앱 아키텍쳐를 더 자세히 볼 수있어요!

 
Tuist로 프로젝트를 모듈화하면서 각 Feature에 맞는 Demo App도 함께 구성해봤습니다. DI 개념을 기반으로 모듈 간에는 interface로만 소통하게 설계했고,
Swinject를 통해 각 모듈에서 Assembly를 구성하고 DIContainer에 의존성을 주입하는 방식은 의외로 잘 맞아서 구현하는 데 큰 어려움은 없었습니다.
 
좀 아쉬웠던 점은 개발자 계정을 결제하지 않은 상황일 때 한참 Feature demo app을 만들면서 데모 앱이 10개 이상 실제 디바이스에 설치됬고, 그러다가 제한이 걸려서 실기기에서 당 분간 더 이상 앱을 추가할 수 없다는 경고가 나왔었어서 당황했습니다. 한참 오디오 TTS가 실 기기에서 되는지 여부를 검증하고 있었는데..
 
또 하나 고민이 되었던 건 Domain 모듈을 더 세분화할까 하는 부분이었어요.
특히 Entity의 경우, 여러 Feature와 Data Layer에서 공통으로 많이 사용되었기 때문에,
결국은 모듈을 더 나누지 않고 공통적으로 유지하는 방향으로 결정하게 되었습니다. 


 
Feature들을 부분 부분 혹은 전체 연결할 때도 간간한 버그, 화면별 동기화 오류, iOS 타겟을 13.0으로 받으며 특정 시점에 UI구현시 타겟분리, 시스템에서 동작되는 키보드, 서치바, editMenu 등 좀 더 빨리 동작되기 위한 방법들 좀 개선도 해보고, Firebase Crashlytics 초기 설치 등 여러 오류를 마주하며 앱이 잔 에러가 없도록 동작되도록 구현되가는것을 느꼈습니다.


 
애니메이션도 적극 도입을 했었고, 좀 편안함을 위한 애니메이션을 부분 부분 많이 적용하며 keyFrame이랑도 많이 친해졌습니다. 또 약간 예전부터 쉐도우 넣는걸 좋아했는데요

 
 
약간 이렇게 쉐도우를 두 개 넣으니까 이쁘더라구요.. (조약돌 같은) 그래서 넣어봤습니다.


 
나름 여러 경험을 하면서 배포까지 완료 !!
 
배포하니 나름 뿌듯하네요: )
 
 
긴 글 읽어주셔서 감사합니다.

728x90