Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

개인 개발자의 앱스토어 도전기 (D2 오픈세미나 발표)

3,688 views

Published on

D2 iOS 오픈 세미나 발표자료 (http://d2.naver.com/news/9814448)

Published in: Mobile
  • Be the first to comment

개인 개발자의 앱스토어 도전기 (D2 오픈세미나 발표)

  1. 1. 앱스토어 도전기 ‘보안카드 위젯’ 개발자의 노수진 연세대학교
  2. 2. 소개 ▸ 연세대학교 경영학과 (2009. 3 ~ ) ▸ SW Developer (2015. 1 ~ 2015. 11) ▸ 모바일 프로그래밍 / Entrepreneurship (2013. 1 ~ 2015. 1)
  3. 3. 목차 ▸ 앱 소개 ▸ 보안을 위해 신경 쓴 기능들 ▸ 유료/무료 버전 scheme 나누기 ▸ 걸어온 길 ▸ 앱스토어 리뷰 관리 ▸ Q & A
  4. 4. 타임라인 ▸ 2014년 12월 17일 출시 ▸ 12월 19일 ‘금융’ 부분 유료앱 1위 ▸ 12월 21일 앱스토어 유료앱 8위 ▸ 2015년 1월 15일 버전 1.1.0 업데이트 ▸ 1월 28일 앱스토어 유료앱 2위 ▸ 2016년 6월 현재, 50~100위권
  5. 5. 타임라인
  6. 6. 앱 소개 보안카드 위젯 ▸ 2014년… 토스, 카카오페이, 네이버페이가 없던 그 시절 ▸ 계좌이체할때 반드시 거쳐야 하는 보안카드 입력을 훨씬 편하게 ▸ https://www.youtube.com/watch?v=xVxYTF_uPIs ▸ 보안카드를 입력해놓고 쓰는 앱이 없었던 것은 아니었지만 iOS 8에 추가된 신기능인 Today extension을 활용한 것은 최초
  7. 7. 보안 이슈
  8. 8. PRIVACY 1. iOS Keychain Overview ▸ Core Data, NSUserDefaults, plist와 같은 iOS storage의 일종 ▸ key-value 형태로 사용 ▸ 암호화되어 저장 ▸ Keychain Group 생성 가능 ▸ 사용자가 앱을 삭제해도 데이터는 보존 ▸ 접근 가능 시점과 접근 권한 세부 지정 가능 ▸ iCloud Drive로 백업/복원, multidevice 지원 가능
  9. 9. PRIVACY Keychain Group 생성 ▸ 다른 앱들이 하나의 Keychain storage를 공유 ▸ Today Extension은 모체 앱과 다른 앱으로 취급 ▸ 별도 샌드박스, App Id, Provisioning Profile 등 ▸ 앱과 위젯이 데이터를 공유하려면 App Group / Keychain Group 활용 필수
  10. 10. PRIVACY Keychain Group 생성
  11. 11. PRIVACY
  12. 12. PRIVACY 앱 삭제후 재설치시 Passcode 뚫리는 문제 ▸ 현상 : Passcode와 보안코드는 사용자 의 개인정보이기 때문에 키체인에 저 장했지만 잠금 여부는 NSUserDefaults에 저장하고 있었음. ▸ 앱 삭제후 재설치시 잠금이 풀리고 저 장되어있던 보안코드가 고스란히 노출 ▸ 해결 : 키체인에 저장한 내용은 앱이 삭제되어도 남아 있기 때문에 잠금 설 정 flag도 키체인에 저장하여 앱 재설 치 시에도 보안코드 데이터 보안 유지
  13. 13. PRIVACY 앱 삭제후 재설치시 Passcode 뚫리는 문제 ▸ 활용 : 자동 로그인 기능이 있는 앱인데 가끔 로그인이 풀리거나 로그인정보가 사라지는 현상이 있는 경우, 관련 데이터를 NSUserDefaults에 저장하고 있는지 확인 ▸ 실제로 NSUserDefaults에 저장해둔 데이터가 손실되었다는 제 보 다수 (Stackoverflow) ▸ 따라서 로그인이나 잠금 관련된 중요한 데이터는 키체인에 저장 ‣ 애플 공식 가이드에 따르면 키체인에 저장할 만한 데이터는 메모 리에 올려두고 사용하지 말라고 권장
  14. 14. PRIVACY 아이폰이 잠금 상태일때 Today Extension 차단 ▸ 아이폰의 잠금 화면에서도 알림 센터를 내려서 확인할 수 있기 때 문에, 이때 보안카드가 검색이 된다면 심각한 문제 ▸ 해결 방법 : 접근 가능 시점과 접근 권한 세부 지정
  15. 15. PRIVACY 아이폰이 잠금 상태일때 Today Extension 차단
  16. 16. PRIVACY ▸ 0 : success ▸ -25240~-25279, -25290~-25329
  17. 17. PRIVACY ▸ 권한이 없을 시점에 데이터 접근 시 발생 예) kSecAttrAccessibleWhenUnlocked 로 저장한 데이터를 잠금 상태에서 불러 올때
  18. 18. PRIVACY
  19. 19. PRIVACY
  20. 20. PRIVACY 멀티태스킹 시 노출되는 앱 스냅샷 블러 처리 ▸ iOS 멀티태스킹 시 마지막 VC의 상태가 스 냅샷 형태로 남아 있어서 보안코드 노출 우 려
  21. 21. PRIVACY 멀티태스킹 시 노출되는 앱 스냅샷 블러 처리 ▸ AppDelegate.m - applicationDidEnterBackground: - applicationDidBecomeActive:
  22. 22. PRIVACY
  23. 23. PRIVACY iOS 커스텀 키보드 차단 ▸ iOS8 에서 처음 소개된 커스텀 키보드 ▸ 키보드 앱이 유저의 모든 입력값을 알 수 있음
  24. 24. ▸ AppDelegate.m PRIVACY iOS 커스텀 키보드 차단 - application: shouldAllowExtensionPointIdentifier:
  25. 25. BUILD SCHEME 무료버전 & 유료버전 나누기 ▸ 동기 : 수익 극대화 ▸ 무료버전으로 진입 장벽을 낮춰 다운로드 유도 ▸ 무료버전은 은행을 1곳만 등록 가능하고 배너광고 부착 ▸ 인앱결제($0.99) 후 유료버전과 완전히 동일한 기능 제공
  26. 26. BUILD SCHEME 무료버전 & 유료버전 나누기 ▸ xcconfig 파일과 Xcode의 Scheme 기능 활용
  27. 27. BUILD SCHEME ▸ Base.xcconfig
  28. 28. BUILD SCHEME ▸ Paid.xcconfig
  29. 29. BUILD SCHEME ▸ Freemium.xcconfig
  30. 30. BUILD SCHEME ▸ xcconfig 적용
  31. 31. BUILD SCHEME ▸ scheme 생성
  32. 32. BUILD SCHEME ▸ scheme 생성
  33. 33. BUILD SCHEME ▸ scheme 생성
  34. 34. BUILD SCHEME ▸ scheme 생성
  35. 35. BUILD SCHEME ▸ xcconfig 적용 ▸ $(xcconfig파일에서 생성한 변수명) ▸ ${xcconfig파일에서 생성한 변수명}
  36. 36. BUILD SCHEME ▸ xcconfig 적용 ▸ Info.plist
  37. 37. BUILD SCHEME ▸ xcconfig 적용 ▸ 앱 아이콘
  38. 38. BUILD SCHEME ▸ xcconfig 적용 ▸ GCC PREPROCESSOR MACRO
  39. 39. BUILD SCHEME ▸ xcconfig 적용 ▸ 매크로로 무료버전에만 배너광고 삽입 ▸ 무료버전에만 사용하는 pod
  40. 40. 다운로드 수
  41. 41. 걸어온 길 ▸ 처음으로 외부에 공개하는 데이터 ▸ ‘국내용’ 앱이라는 특성상 한국 앱스토어에만 한정 ▸ 유료 앱 부분에 한정
  42. 42. 걸어온 길 ▸ 2014년 12월 17일 출시, 19일 ‘금융’ 카테고리 1위, 전체 18위 ▸ 또 다시 이틀 뒤 21일 전체 8위 (누적) ▸ 약 한달 뒤, 2015년 1월 28일 전체 2위 (누적) 374 681 4430
  43. 43. 걸어온 길 ▸ 1.1 버전 업데이트 시점 ▸ 별로 기능 추가 한게 없는 데판매량 급 증가 ‣ 이쁜 아이콘의 영향이라고 추측
  44. 44. ▸ 처음 5위권 진입한 1월 24일 ~ 3월 3일(39일) 까지 계속 5위권 유지 ▸ 5위 이내 일때 하루 평균 ▸ 1일 최다 다운로드 걸어온 길 8260 211.8 330
  45. 45. ▸ 10~30위권 유지할 때 ▸ 30~100위 걸어온 길 30~50 10~20
  46. 46. 걸어온 길 흥미로운 발견 ▸ 2015년 다운로드수 그래프 ▸ 힌트 : 10월 23일
  47. 47. 걸어온 길 흥미로운 발견 ▸ 2015년 다운로드수 그래프 ▸ 10월 23일 아이폰 6s 국내 출시 ▸ 사람들이 폰을 새로 산 후 / 바꾼 후 새 앱을 다운로드 ▸ 이때를 공략해서 공격적인 마케팅 실시!
  48. 48. 앱스토어 리뷰 관리
  49. 49. APP STORE REVIEWS 앱스토어 랭킹 알고리즘 ▸ 전체 다운로드 수 ▸ 다운로드 증가 추세 ▸ 그리고.. 리뷰 평점과 retention!?
  50. 50. APP STORE REVIEWS https://techcrunch.com/2013/08/23/apples-app-store-rankings-algorithm-changed-to-favor-ratings-and-possibly-engagement/
  51. 51. 유료앱 상위 100위 앱 중 평점이 최소 4별 이상인 비율 APP STORE REVIEWS 앱스토어 리뷰 관리의 필요성 http://www.apptentive.com/blog/app-store-ratings-reviews-guide/ 무료앱 상위 100위 앱 중 평점이 최소 4별 이상인 비율 최고매출 상위 100위 앱 중 평점이 최소 4별 이상인 비율
  52. 52. APP STORE REVIEWS 앱스토어 리뷰 관리의 필요성 http://www.apptentive.com/blog/app-store-ratings-reviews-guide/ 평점 2별인 앱을 다운받을지 고려해보겠다는 비율 평점 3별인 앱을 다운받을지 고려해보겠다는 비율 평점 4별인 앱을 다운받을지 고려해보겠다는 비율
  53. 53. APP STORE REVIEWS 앱스토어 리뷰 관리의 어려움 SELF-SELECTION BIAS http://www.apptentive.com/blog/app-store-ratings-reviews-guide/ 부정적인 경험 후 리뷰를 남기는 비율 긍정적인 경험 후 리뷰를 남기는 비율 ▸ 부정적인 경험쪽으로 bias된 유저그룹이 남긴 리뷰와 별점은 대 표성을 갖기 어려움에도 어쩔수 없다
  54. 54. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리
  55. 55. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 ㅗㅗ
  56. 56. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 ㅗㅗ ▸ 앱스토어 사용자들에게도 도움이 되지 않고 좋을게 없는 이런 리 뷰는 우측하단 신고 버튼 활용
  57. 57. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리
  58. 58. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 리뷰가 아니고 욕설입니다
  59. 59. ▸ 신고가 적합하다면 2~3일 내로 부적절한 리뷰 삭제 ▸ 업데이트 직후 리뷰가 얼마 없을때는 1별 짜리 리뷰가 평균 별점 0.5~1별을 좌지우지 ▸ 평균 별점 1개의 차이는 15% -> 50% -> 96% ‘보안카드 위젯’의 리뷰 관리 APP STORE REVIEWS
  60. 60. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 정말 좋은 앱이지만 리뷰 쓰라고 강요 좀 작작해라 평가하기 싫음 안하는거지 할때마다 떠서 내가줄 별은 없다 ▸ 좋은 리뷰는 기분이 좋지만 나쁜 리뷰는 개선점을 찾는데 크나큰 도움 ▸ 합당한 리뷰는 받아드려서 앱을 개선
  61. 61. APP STORE REVIEWS LESSON LEARNED ▸ 대대적인 UI 변화가 있었던 3월 2.0 버전 업데이트 ▸ 기존 유저들의 강한 반발 전체 2.0 버전
  62. 62. APP STORE REVIEWS LESSON LEARNED ▸ 별점 2.5점 ▸ 급격한 변화를 지양하자 ▸ 또 한편으로는… ▸ 대부분의 유저는 아무 불평없이 잘 사용하고 있을지도 모르지만 강한 불만을 표한 30명 남짓한 리뷰로 인해 낮아진 별점 때문에 다운로드가 감소하고 순위 하락 ▸ 그래도 어쨌든… ▸ 개인 개발자에게는 별점이 중요하기 때문에 피드백 반영해서 업 데이트 예정
  63. 63. APP STORE REVIEWS 앱스토어 RATINGS & REVIEWS ▸ 앱스토어 내 경쟁이 끝없이 심해지는 요즘 앱스토어 별점은 그 어 느때보다 중요 ▸ 별점과 리뷰는 앱스토어에서 내 앱이 발견되고, 유저들이 trial 해 보게 하는 중요한 역할
  64. 64. 마무리
  65. 65. Q & A

×