인디 제품 개발 시리즈 첫 번째 글

모바일 개발자라면 가장 큰 바람은 당연히 앱 하나 만들어 놓고 돈이 들어오기를 기다리는 것 ( ͡° ͜ʖ ͡°)일 겁니다.

그렇다면 혼자 앱을 완성하는 길에서 어떤 문제를 만나게 될까요? 최근 제 앱을 출시하면서 겪은 문제와 해결 방법을 공유합니다.

1. 필요를 정하기

인디 앱을 만들고 싶은 출발점은 사람마다 조금씩 다릅니다.

크게 보면 사람들에게 절실한 필요를 발견하고, 그 해결책으로 세상을 바꿀 수도 있습니다. 이제 프로그래머 한 명만 있으면 됩니다.

작게 보면 그저 App Store에서 내 앱을 보고 싶은 것일 수도 있습니다. 새로운 기술을 시험하는 앱일 수도 있습니다. iOS 8에 Today Extension이 나온 뒤 이를 바탕으로 한 특색 있는 앱이 많이 등장했습니다. 파일 관리 앱이나 세심한 기능을 갖춘 날씨 앱처럼 생활의 불편을 실제로 해결하는 보조 앱일 수도 있습니다.

크든 작든 하나의 필요를 분명히 하세요. 그것이 끝까지 만들게 하는 힘입니다.

저는 아내의 필요를 바탕으로 “File Manager”라는 파일 관리 앱을 만들었습니다.

File Manager는 휴대전화를 서버로 만들고, 같은 Wi-Fi에 있는 다른 기기가 브라우저를 통해 휴대전화의 파일을 관리하게 합니다. 폴더를 분류하고 파일을 복사하거나 이동하며 다운로드와 업로드를 할 수 있습니다.

이 필요를 정한 뒤 프로젝트를 출시하기까지 앞뒤로 약 3개월이 걸렸습니다. 그 과정에서 Swift도 조금 배웠습니다.

2. 앱 프로토타입과 화면 상호작용

필요와 해결책이 생기면 대략적인 프로토타입과 사용자 조작도 머릿속에 떠오릅니다. 다음 단계는 구체적인 화면과 상호작용을 정하는 것입니다.

저도 몇 가지 프로토타이핑 도구를 써 보다가 포기했습니다.

도구를 익히고 화면을 설계하는 데 드는 시간이면 xib로 화면을 완성할 수 있다는 사실을 깨달았습니다. 그 뒤에는 손으로 스케치를 그려 프로토타입 문제를 해결했습니다.

나중에 다른 제품을 만들면서 프로토타입이 꼭 필요하다는 것을 알게 됐습니다. 프로토타이핑은 논리를 정리하고 앞뒤가 맞게 만드는 과정입니다.

3. 앱의 작은 아이콘은 어떻게 할까?

프로토타입을 정하고 나니 프로젝트 전체 구조도 대략 보였습니다. 하지만 코드 외에도 모든 인디 개발자가 피할 수 없는 문제가 하나 남았습니다!

프로젝트 곳곳에서 쓰는 작은 아이콘은 어떻게 해야 할까요?

제가 사용해 본 아이콘 라이브러리를 몇 가지 소개합니다.

  • Alibaba 아이콘 라이브러리 → 벡터 아이콘이 세트로 갖춰져 있고 색상과 크기를 자유롭게 바꿀 수 있는 훌륭한 자료입니다. 다만 상업적으로 사용하려면 제작자의 허락을 받아야 합니다.
  • icons8 → 56,500개의 무료 플랫 아이콘! 다양한 플랫폼의 아이콘이 있고 Mac용 앱도 있습니다.
  • iconfinder → 이곳도 아이콘을 세트로 제공하며 상업 서비스라는 성격이 더 뚜렷합니다.

4. 자체 테스트와 베타 테스트

회사에서는 테스터, 제품 담당자와 다른 동료가 함께 앱을 계속 개선합니다. 인디 개발자는 어떻게 최대한 일찍 많은 버그를 찾아 피할 수 있을까요?

4.1 직접 테스트하기

예전에 테스트 팀에 맡기던 일도 이제는 직접 해야 합니다. 수동 테스트뿐 아니라 테스트 원숭이를 키워 테스트를 돕게 할 수도 있습니다.

4.2 베타 테스터 모집

인디 앱을 만든다는 것은 개발자만이 아니라 제품, 운영, 고객 지원 등 여러 역할을 맡는다는 뜻입니다. 홍보도 직접 해야 합니다. 친구, 동창, 가족부터 시작해 여러 소셜 네트워크에 “제 인디 앱이 곧 완성돼요. 한번 도와서 써 봐 주세요!”라고 알립니다.

베타 사용자는 버그만 찾는 것이 아닙니다. 새로운 요구와 제안을 전해 앱을 더 풍성하고 완성도 높게 만드는 데 더 큰 도움을 줍니다.

4.3 테스트 빌드 배포

베타 사용자의 기기 식별자를 쉽게 구할 수 있다면 Pgyer나 fir.im 같은 베타 호스팅 플랫폼을 이용할 수 있습니다. 기기 수에는 제한이 있습니다.

기기 식별자를 구하기 어렵다면 iOS 8 이후 Apple이 제공한 TestFlight를 이용할 수 있습니다. 베타 테스터는 최대 10,000명까지 받을 수 있습니다.

5. App Store 등록용 스크린샷

왜 출시용 스크린샷만 따로 다룰까요? 인디 개발자는 홍보 채널이 많지 않습니다. App Store 제품 페이지의 스크린샷과 설명이 앱으로 들어오는 입구이자 진열장이기 때문입니다.

제품 페이지의 스크린샷이 조잡해 보이면, 앱을 발견한 사용자를 놓칠 수 있습니다.

회사에서는 UI 디자이너와 제품 담당자가 제품 페이지용 이미지를 만드는 일을 돕습니다. 혼자라면 알맞은 크기의 이미지를 어떻게 만들 수 있을까요?

5.1 시뮬레이터에서 캡처

시뮬레이터에서 앱의 특정 화면을 직접 캡처할 수도 있지만 결과가 다소 거칠어 보일 수 있습니다.

5.2 조금 다듬는 방법

여기서는 shotbot이라는 무료 사이트를 추천합니다. 자료를 업로드하면 형식이 통일된 제품 이미지 세트를 만들 수 있습니다.

2022-04-11 메모: 나중에 제 App Store 출시용 스크린샷을 만들기 위한 Mac 앱을 직접 만들었습니다.

6. 제가 사용한 기타 자료

특정 화면 상호작용과 디자인을 다루다 보면 외부 도구나 이미 만들어진 아이콘이 원하는 모습에 조금씩 미치지 못할 때가 있습니다.

그렇다면 직접 이미지를 편집해 봅시다!

물론 대부분의 개발자는 Photoshop 실력이 뛰어나지 않고, 아예 쓸 줄 모르는 사람도 있습니다. 어떻게 해야 할까요?

두 사이트를 추천합니다. 온라인 PS, Meitu 웹 편집기

무거운 Adobe 소프트웨어를 내려받지 않고도 브라우저에서 간단한 이미지 편집을 할 수 있습니다. Photoshop에 익숙하지 않은 우리에게는 반가운 소식입니다.

이미지 편집 외에도 앱 Icon 자체가 골칫거리입니다. 또 하나 추천할 사이트는 MakeIcon입니다. 1024×1024 로고를 업로드하면 다른 모든 크기의 Icon을 자동으로 만들어 줍니다. iOS 10의 iMessage도 지원합니다.

7. 마무리

저는 UI 디자이너의 도움 없이 기존 자료를 활용해 개발을 끝냈습니다. 디자이너가 있는 분은 이쯤에서 돌아가셔도 됩니다  ̄ヘ ̄.

내 앱을 만들고 싶다는 생각은 오래전부터 했습니다. 최근에야 필요한 것을 정리하고 본격적으로 시작했습니다. 무엇보다 중요한 것은 해결할 필요가 분명해졌다는 점이며, 그 과정에서 Swift도 조금 배웠습니다.

개발 중 일주일 동안 코드 몇 줄 쓰지 않은 적도 있습니다. 인디 앱을 만들 때 끝까지 버티게 하는 진짜 힘은 필요라는 것을 깨달았습니다. 필요의 크기는 중요하지 않고, 문제를 해결하는 것이 중요합니다.

개발이 깊어질수록 요구 사항도 늘어 AirDrop 공유, iCloud 연동, ShareExtension 개발 등은 아직 완성되지 않았습니다. 힘을 내 조금씩 개선해 봅시다! ʘʚʘ (이 앱을 만든 원래 목적이 PC, 휴대전화와 iPad에서 제 “collection.avi”를 공유하는 것이었다는 말은 절대 하지 않겠습니다.)

제 앱 링크입니다: 가장 간결한 파일 관리 방법, File Manager

2022-04-11 메모: 이 앱은 이제 검색에서 찾을 수 없습니다. 좋은 수익화 방법이 없어 외주 회사에 판매했습니다. 판매 후 많은 생각을 하게 되었고 자세한 정리는 다음 글에서 볼 수 있습니다.

원문은 Jianshu에 게시했습니다. 나중에 Jianshu 계정이 도용되고 다른 글도 계속 차단되어 모든 블로그 글을 github.io로 옮깁니다.