일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로젝트
- 드로어블
- 서비스
- edwith
- 안드로이드 스튜디오
- 테이블_레이아웃
- Swift
- 제약 레이아웃
- 부스트코스
- 자바
- 데이터베이스
- 코드리뷰
- 안드로이드_프로그래밍
- 코틀린
- 액션바
- 아이폰
- 리니어 레이아웃
- textview auto scroll
- 스낵바
- 텍스트뷰 자동 스크롤
- RecyclerView
- 수명주기
- 텍스트뷰 스크롤
- 레이아웃
- 상대 레이아웃
- 프로그래밍
- SceneDelegate
- 뷰
- IOS
- 안드로이드
- Today
- Total
듀다의 성장개발로그
첫 아이폰 앱 개발 후기 본문
안드로이드에는 수강신청 빈 자리를 알려주는 앱이 있는데 왜 아이폰에는 없을까?
2019년 원쿠라는 앱이 처음 나오고부터 이런 생각을 하는 사람이 많았지만 그런 앱은 아이폰에 나오지 않았다. 이걸 내가 만들면 아이폰 쓰는 학우들에게 도움도 되고, 앱 개발자로서의 첫 단추를 잘 끼울 수 있지 않을까 하는 생각을 했다. 앱스토어에 앱을 올리려면 뭐가 필요한지 처음부터 차근차근 준비했다.
Mac OS
우선 맥이 없으니까 커스텀맥으로 개발을 하고자 했다. USB를 사고 데스크탑에 설치를 하려 했다. 그러나 내가 쓰는 데스크탑은 Mac과 호환이 되지 않는 메인보드라 작동을 보장할 수 없었고, 제대로 돌리려면 모든 부품을 호환되는 것으로만 맞춰야 했다.
구형 컴퓨터에 돈 쓰는 게 아까워서 가상머신을 시도했다. 여러 번 삽질을 해서 빅서를 설치하는 데에 성공은 했다.
그런데 이건 너무 느려서 이런 컴퓨터로 앱 개발을 계속할 수 있을 것 같지 않았다. 왜 C언어 배울 때 처음부터 뭐가 자꾸 안되면 개발에 흥미가 떨어지잖아. Hello World를 빌드하는 데도 시간이 꽤 걸릴 정도라 어쩔 수 없이 리얼맥을 중고로 구입했다.
디자인 및 설계
나는 디자인 트렌드를 잘 모르니 애플의 디자인 관련 공식 문서, 유료 디자인 업체의 샘플 이미지들을 참고했다. 머릿속에 떠오른 디자인을 Ovenapp에서 만들지 말고 포토샵으로 만들었으면 좀 더 그럴듯한 디자인 프로토타입을 만들 수 있었을 텐데 그러지 않은 점이 조금 아쉽다.
SWIFT
아이폰 앱 개발은 처음이라, Xcode를 켜기 전에 이 부분을 Swift로 구현하려면 무슨 라이브러리를 써야 하는지, 무슨 메소드를 써야 하는지 등을 먼저 조사하고 나서 개발을 시작했다. 몰라서 헤매다 보면 점점 하기 싫어질 것이고, 그런 식으로 며칠을 그냥 보내면 수강신청 날이 지나버릴 것 같아서.
생각보다 Swift의 문법은 간결했다. 오류 메시지도 명쾌하고 스토리보드도 안드로이드의 레이아웃보다 직관적이었다.
개발에서 잘했다고 생각하는 점을 굳이 꼽자면 연결이 불안정하거나 서버 접속 불량으로 남은 자리 조회가 어려운 상황에도 앱이 비정상 종료되거나 불안정해지지 않는다는 것?
그리고 실시간 조회 기능과 빈 자리만 보는 기능, 학과 선택 기능이 서로 충돌하지 않으면서 독립적으로 동작한다는 점인 것 같다.
아쉬웠던 점은 역시 테스트를 충분히 하지 않은 것이다. 위에 말한 조회 기능에서만 테스트를 여러 번 했고 최종 동작하는 앱에 대해서는 테스트 횟수가 너무 부족했다. 테스트를 하더라도 실제 사용 환경과 같은 환경에서 테스트를 했어야 하는데 그렇게 하지 않았다는 점 또한 아쉽다.
심사
첫 심사에서 거절당한 이유가 굉장히 의외였는데, 그 이유가 특정 단체나 집단을 위한 앱을 앱스토어에 올릴 수 없다는 것이었기 때문이다. 학과정보 학년정보 거짓으로 입력해도 된다고 개인정보처리방침에도 적어 놨는데 대체 왜? 구글에서 찾아보니 로그인 기능을 가진 앱이 아니라면 첫 화면에서도 기능을 볼 수 있게 만들어야 하는 것 같아, 앱을 실행하자마자 빈 자리를 조회할 수 있도록 전체 전공 화면을 추가했다. 원래는 학과, 학년 설정 화면이 가장 첫 화면이었다. 당시에는 전체 전공 화면을 넣는 게 자기 학과 과목만 보여주고자 했던 내 개발 의도에서 벗어나는 행동 같아서 영 달갑지 않았는데, 이 선택은 신의 한수가 되었다. 설정 화면에 버그가 남은 채로 앱을 공개하게 되면서 이 기능만 제대로 동작했기 때문에…
출시 및 업데이트
심사를 통과한 건 3시간이나 지나서야 알았다. 바로 에브리타임에 올렸고 댓글을 봤는데 설정에서 키보드가 사라지지 않는 버그가 있다고 했다. 시뮬레이터 말고 진짜 아이폰에서 테스트를 한 번이라도 해봤으면 알 수 있는 오류였다. 너무 급하게 마음먹지 말고 조금만 더 침착하게 테스트를 했으면 분명 발견했을 오류였는데…
밤에 업데이트 버전을 올리니 새벽 4~5시쯤 심사 통과되어 업데이트가 배포되었고 출시 첫 날 앱을 다운로드한 약 800명 중 650여명이 그 날 업데이트를 받았다.
이후
약 다운로드 수를 약 1000회 기록했고 사용자 리뷰도 긍정적이다. 물론 반응이 좋은 이유는 확실한 고객층을 대상으로 수요가 있는 앱을 만들었기 때문이라는 것을 잘 알고 있다. 디자인, 사용성 측면에서 개선을 더 해야 할 것이다.
앞으로 내가 만들 앱이 처음부터 수요가 있을 가능성은 매우 낮다. 그런 상황에서 이번처럼 첫 출시부터 큰 버그를 안고 시작한다면 굉장히 불리한 상황에 놓일 수가 있다.
다행히 이번엔 문제가 있을 것으로 예상되었던 부분에서만 문제가 발생해서 해결방법을 찾기 쉬웠지만, 이 말은 문제가 발생할 것 같은 부분을 조금만 더 꼼꼼히 확인했다면 문제들을 충분히 막을 수 있었다는 뜻이 된다. 이번 기회에 테스트의 중요성을 잘 배웠다고 생각하고 앞으로는 테스트를 소홀히 하지 말아야 할 것이다. 테스트 기법에 대해서도 정확히 이해할 필요가 있다.
그 외에도 이제 개발할 때 너무 급하게 마음먹지 않았으면 좋겠다. 내가 무슨 짓을 해도 하루는 늘 24시간이다. 있는 시간을 효율적으로 사용하는 것이 최선이며, 급하게 한다고 작업속도가 늘 빨라지는 것은 아닌 것 같다.