토이 프로젝트가 어느덧 앱스토어 출시를 눈앞에 두고 있다.
Combine을 사용해 보기 위해 올해 2월 색상 검출앱을 만들려다가 너무 간단한거 같아서 뭘 만들지 고민하다가
인스타그램 스토리에 추가할 때 글자를 넣는 기능을 한글도 이쁘게 할 수 있으면 좋을거 같다는 생각에 시작했다.
자투리 시간에만 개발이 가능하기 때문에 생각보다 시간이 좀 더 걸렸다.
처음 만들려는 의도답게 Combine+MVVM 으로 떡칠된 앱이 탄생하였다.
그냥 SwiftUI로 만들어 볼걸 그런 생각도 든다.
최초 의도한거 보다 과하게 복잡해 졌다. 내 쓸데없는 욕심이… ㅠㅠ 이 정도도 중간에 짤랐기에 망정이지…
다음은 개발 과정 및 앱 명세이다.
- 개발 시작시 처음 이름은 PhotoText 였는데 개발 중간에 TextOn으로 변경하였다.
- 앱 아이콘은 포토스케이프X 에서 간단하게 만들었다. 복잡한건 못 만들고 그냥 폰트만 넣음
- 디자인은 할 줄 모르기 때문에 앱에서 사용된 모든 아이콘은 애플에서 제공하는 시스템 아이콘이다. “SF Symbol” 이라는 앱을 맥에 설치하면 여러가지 시스템 아이콘을 조회하고 사용할 수 있다.
- Cocoapods를 사용하지 않고 Swift Package Manager를 사용해 봤다.
- 이미지를 선택할 수 있고 폰트를 추가 변경 가능하며 편집중인 상태는 앱 디비에 자동으로 프로젝트로 저장된다. 저장된 프로젝트는 언제든지 편집 가능하다. 이미지를 변경할 수 도 있고 글자도 변경할 수 있다.
- 저장된 프로젝트는 폴더를 만들어서 폴더별로 분류할 수 있다.
- 만들어진 폴더는 정렬 순서를 사용자가 지정할 수 있다.
- 이미지는 투명도와 블러 효과를 지정할 수 있다.
- 텍스트는 폰트, 크기, 회전, 위치, 그림자, 색상, 외곽선 등의 효과를 추가할 수 있다.
- 텍스트 크기, 회전, 위치의 변경은 제스쳐를 적극 이용하였다. Pinch, Pan, Rotate 제스쳐가 동시에 이루어지도록 하였다.
- Pinch 제스쳐로 텍스트 크기를 키울 때 transform을 사용하지 않고 폰트의 크기를 키웠다, transform을 사용하면 폰트가 깨져 보이기 때문에 폰트의 크기를 키우는 방식을 사용했다.
- 완성된 프로젝트는 그모양 그대로 포토라이브러리에 한장의 사진으로 저장할 수 있다.
- 폰트의 제공은 시스템 폰트 또는 다운로드 할 수 있는 폰트를 추가하는 방식을 적용하여 자주 사용하는 폰트들만 목록에 추가할 수 있고 위치 정렬도 가능하다.
- 다운로드 가능한 폰트 목록은 AWS Lambda 를 이용해 AWS DynamoDB 에 있는 폰트 정보를 가져와서 앱에 표시한다. 앱에서는 AWS Amplify 를 이용해 설정파일을 구성했다.
- AWS Lambda 에 이용된 언어는 GO 이다.
- 다운로드 폰트 파일은 폰트패밀리 묶음으로 AWS S3에서 다운로드하여 설치된다.
- 폰트 다운로드 설치전에 미리보기를 통해 폰트 모양새와 크기를 확인 가능하고 다운로드할 수 있다.
- 다운로드할 수 있는 폰트는 저작권 안전한 폰트들로만 제공된다.
- 프로젝트는 가져오기/내보내기 할 수 있다.
- 프로젝트 가져오기/내보내기는 txtn 이라는 파일 확장자를 등록하여 하나의 폴더로 내보내기 한다.
- 저장된 프로젝트들의 정렬 순서를 변경할 수 있다.
앞으로 추가하고 싶은 기능
- 이미지 없이 배경색만 지정 가능하게
- 이미지와 배경 동시에 사용
- 이미지 크롭, 사이즈 변경
- 텍스트뿐만 아니라 각종 도형들도 추가 가능하게
- 여러가지 미리 제공되는 템플릿(?) 프로젝트
추가하다가 보니까 포토샵 같은 느낌이 드네 ㅠㅠ 복잡한건 안되는데.
수익 모델은 어떻게 해야 좋을지 모르겠다. 개인개발자가 앱스토어에 앱을 올리고 유지보수를 하며 고정적인 수익을 올리는 현실이 만만치 않다. 물론 개발자는 앱을 잘 만든다고 만들지만 항상 그보다 훨씬 좋은 앱들이 존재하고 이미 사용자들에 의해 사용되고 있기 때문에 새로운 앱이 설 자리는 매우 좁다. 사용할 때마다 광고를 보는 방식도 생각해 봤는데 기쁜맘으로 사진에 글자를 추가하려다가 짜증을 유발하는 앱이 될거 같아 그냥 유료 판매를 하는게 좋을거 같다. AWS 서버 비용이 사용자가 많아지면 당연히 증가하기 때문에 앱을 무료로 배포하는건 힘들다. 인앱구매 또는 구독 방식도 좋지만 이번에는 그냥 한번 유료 판매를 해보려고 한다. 가격은 처음에 2달러로 시작해서 기능 안정화가 되면 조금 올리려고 한다. 유료 판매앱을 누가 받아서 사용할까?