나만의 프로젝트(My Own Project) 앱을 개발한 후에...
나만의 프로젝트는 ios, iPhone용 개인 프로젝트 관리 앱입니다. 프로젝트 관리를 위한 앱이지만 팀단위의 협업에 최적화된 프로젝트 관리가 아니라 개인의 프로젝트 관리에 초점을 맞춘 앱입니다. 이 앱은 다양한 프로젝트를 정의하고 정의된 프로젝트에 따라서 할 작업들을 정의하고 작업에 따라 할 일들을 정의합니다. 그리고 할 일들의 진행 상태를 관리합니다. 앱은 이렇게 정의되고 관리되는 프로젝트의 진행상황을 한눈에 보게 해줍니다. 필요 시 텍스트로 변환하여 다른 프로그램에서 데이터를 편집해서 사용하거나 백업도 가능합니다. 실제로 이 앱도 개발 중인 이 앱의 베타 버전을 사용하여 개발 후반 부에는 개발이 관리되었습니다.
이번 앱은 이전에 개발한 폭격 방어자와는 다르게 광고를 살짝 넣은 무료 버전으로 출시하였습니다. 좀 더 자세한 설명과 다운로드는 아래 링크를 참고바랍니다. 참고로 아이폰용으로 개발되어 아이폰용 어플이 돌아가는 환경에서 돌아갑니다. 아이폰을 사용하는 많은 분들의 개인 프로젝트 관리에 많은 도움이 되기를 바랍니다.
이 앱은 1인 개발로 만든 앱입니다. ios 개발 공부한 것을 실제적으로 활용해 보려고 만든 앱입니다. 막상 앱을 만들려고 하니 어떤 앱을 만들어야할까 하는 고민 속에 빠져야 했습니다. 제가 생각할 수 있는 웬만한 것들은 앱으로 있는 관계로 실제로 만들 것을 생각하는 것이 쉽지 않았습니다. 그리고 폭격 방어자라는 게임을 유료로 만들어서 다운로드 수가 얼마 나오지 않아 만든 앱이 많은 사람들이 사용하지 못할 경우에 대한 걱정도 있었습니다. 그럴 때 든 생각이 많은 사람들이 사용하지 않더라도 내가 사랑하고 실제로 사용할 앱을 만들자는 생각이 들었습니다. 현실적으로 저는 일을 프로젝트 단위로 생각하는 것을 좋아하는데 많은 앱들은 프로젝트 관리를 안해주거나 복잡하거나 개인이 사용하기에는 현실적으로 불편하였습니다. 그래서 개인 프로젝트 관리에 초점을 둔 나만의 프로젝트(My Own Project)를 만들게 되었습니다.
ios를 처음 공부할 때는 처음 앱은 경험상으로나 C/C++ 선호로 Objective-C로 만들까 하였습니다. 하지만 이미 ios개발이 Swift로 넘어갔다는 것을 깨닫고 Swift로 개발하게 되었습니다. 현시점에서 기존 앱의 유지보수가 아니라면 Objective-C로 개발할 이유는 없는거 같습니다.
Swift는 최근 언어란 옵션널 체이닝이나 함수 리턴 값 사용하지 않을 때나 let 사용하는 것 같은 것이 인상적이었습니다. 다른 말로 이 부분에서 기존의 관습적인 코드와 다르게 짜야해서 처음에는 약간 고생하기도 했습니다. 이 외에 XCode의 정적 구문 오류 체크가 정말로 상세하고 친절하다는 생각이 들었습니다. Swift라는 언어가 쉽다기 보다는 정적 구문 오류 체크가 버그의 가능성을 줄이고 언어의 난이도를 낮추어 주고 있다는 생각이 들었습니다.
이 앱은 스토리보드와 SwiftUI를 같이 사용하였습니다. 처음에 SwiftUI를 공부하면서 이것만 가지고 복잡한 앱을 만들기에는 개인적인 능력의 한계가 있을거 같아 스토리보드로 개발하면서 UI의 핵심을 SwiftUI로 개발하는 방법을 사용하였습니다. 이 방법은 나름 성공적이었던 같습니다. 기존 스토리보드로 만들어진 프로젝트가 있다면 부분적으로 SwiftUI를 적용해보는 것도 좋을거 같습니다.
SwiftUI는 지금까지 사용해본 UI라이브러리 중 가장 짧은 코드로 유연한 UI를 만들어내서 매력적이었습니다. 물론 @State를 클래스에 사용할 때 나오는 현상 같이 버그 같이 느껴지는 부분도 있었지만 이런 부분은 대부분 @State는 클래스에 적용하는 것이 적합하지 않는 것과 같은 것들이었습니다.
폭격 방어자를 만들 때와 같이 개발하다가 얻게된 지식을 블로그에 글로 써서 올리려고 하였습니다. 하지만 Swift는 정말로 개발자층이 많은지 주요한 대부분의 내용이 다 있어 올리지는 않았습니다.
Swift를 학습하는 것이 지금까지의 공부법과는 틀려 앞으로는 이럴 수도 있겠구나 하는 생각이 들었습니다. 우선 Swift를 공부할 때는 한권의 책도 사서 보지 않았습니다. 모든 것을 국내외의 유튜브와 인터넷 자료로만 공부했습니다. 샘플 코드도 유튜브와 인터넷 자료의 것만을 테스트해 보았습니다. 다른 말로 하면 유튜브에 정말 좋은 강좌 들이 많습니다. 뭔가 앞으로의 개발 공부도 문서가 아니라 동영상 강좌 위주로 바뀔 수도 있겠구나 하는 생각이 들었습니다.
이상 나만의 프로젝트(My Own Project) 앱을 개발한 후에 느낀 점을 적어 보았습니다. 아이폰을 사용한다면 한 번 사용해보시기를 바라며 또한 도움이 되기를 바라면 이상 글 마치겠습니다.