대학생 때부터 스마트폰과 태블릿에서 하나의 소프트웨어를 사용하고 있다는 느낌의 연동성과 사용성에 iOS에 관심을 갖게 되었습니다. 하지만, 졸업한 후에야 돈을 모아서 Mac을 구입하여 독학으로 공부하여 앱 출시를 해볼 수 있었습니다.
제가 만든 앱은 사용자들이 정보를 공유하고 소통할 수 있는 플랫폼입니다. 취미, 관심사나 지식의 공유와 질문과 답변을 할 수 있습니다. 공지글과 자신이 쓴 게시글, 댓글을 달았던 게시글에 대해 댓글 알림을 받을 수 있습니다.
- 게시글 작성 및 열람
- 댓글 작성 및 열람
- 관리자 기능(수정, 삭제, 신고)
- 공지 및 댓글 알림
- SwiftUI를 이용한 App 제작 및 출시: 회원가입, 로그인, 글과 댓글 작성을 할 수 있는 앱.
- Alamofire API를 이용한 REST 통신.
- APNS, FCM을 이용한 공지, 댓글 알림.
- Google Admob을 사용하여 광고 표시.
Apple Developer 사이트의 샘플을 이용해 SwiftUI를 공부하며 어플을 제작하였습니다. 샘플들이 다양하고 자세히 설명이 되어있어 게시판 어플 제작에 참고할 수 있었습니다. 또한, 처음으로 WWDC 영상을 봤습니다. 최근 3년 간의 영상을 보며, 여러 메소드가 생기고 수정되는 것을 확인할 수 있었습니다. 학습에도 많은 도움이 되었습니다.
기억에 남는 것 중 하나는 Android App을 제작할 때 어려웠던 Adaptor 구조의 List 생성이나 Navigation 이동이 SwiftUI에서 정말 간단히 작업되어 신기했었고, 흥미로웠습니다. 게시판 어플의 댓글 알림 시 해당 게시글로 이동하는 작업에 편리하게 이용할 수 있었습니다.
제 이름으로 된 앱의 출시를 해보고 싶다는 목표로 약 3개월 정도의 개발 기간 동안에 밤을 새워가며 새로운 배움에 대한 어려움과 출시를 위해 필요한 기준을 충족하도록 할 때에 해낼 수 있었습니다.
앱스토어 심사를 신청하는데에도 어려움이 있었습니다. 문제는 IPv6 환경에서도 실행이 가능해야 한다는 조건이었습니다.
동작이 되는 지 확인하기 위해서는 로컬에서 IPv6 환경을 먼저 구성해야 했는데, 공식문서를 토대로 시도해보았지만 환경 구성 자체가 되지 않았고, 이런 환경을 구성한 후에 어플을 실행해보았다는 자료는 찾아볼 수 없었습니다. 결국, 일단 서버가 IPv6 주소로의 요청과 응답이 가능하도록 주소 할당과 도메인 연결이 된 것을 확인 후, 심사를 신청해보았습니다.
다행히도 심사를 통과하였지만, 왜 안되는 지, 해결 방법은 맞는 건지 정확히 알 수 없었습니다.
출시 후 다음 버전에서 댓글 알림을 추가하였는데, 이에 댓글 등록에 전보다 시간이 걸리게 되었습니다.
전 버전에서는 댓글이 작성되기까지 소요시간이 짧아서 등록 중에 등록 버튼을 누를 수 없도록 해놓지 않았단 점을 알지 못했습니다. 업데이트 후에야 버튼을 한번 더 누르면 동일한 댓글이 달리게 되는 버그를 알게 되었습니다.
이를 수정한 후 심사를 신청하였고 반영이 빨리 되기를 기다리며, 사소한 부분에 있어서도 많은 고려를 해야겠다는 경험을 얻을 수 있었습니다.
광고를 위한 Google Admob 사용에 어려움이 있었습니다. 사용자 화면의 가로 사이즈가 변경되었을 때, 이를 감지해 광고의 가로 사이즈도 변경되는 적응형 가로 사이즈가 되지 않는다는 것이었습니다. 여기에 많은 시간을 사용하는 것은 출시 목표에 벗어났다고 생각해 결국 고정 사이즈로 마무리 지어 아쉽습니다.
예시 프로그램 동작은 공식 문서나 블로그등에도 자료가 많았지만 실제 운영을 위한 자료가 잘 나오지 않아 어려움이 많았습니다. 이러한 경험을 취업을 해서 꼭 얻을 수 있도록 하고자 합니다.
프로젝트를 친구와 함께 진행하였습니다. 친구는 서버쪽을 담당하였는데, 필요한 데이터 형식을 정하는 등의 문제를 회의를 통하여 정한 후 작업을 했었습니다. 의견이 정확하게 공유되었다 생각했지만, 작업을 하고 나면 서로 받아들인 게 다른 경우가 있었습니다. 이 때문에 같은 작업을 반복하며, 회사에서는 더 많은 사람과 협업을 수행하게 될텐데 기업에서는 어떠한 방법으로 의사소통을 진행하는 지를 배워, 이러한 문제를 해결하고 싶습니다.