iOS앱만들기

독학으로 iOS앱만들기 #3. 일단 만들다 : 한걸음 내딛은 기분

스마일루 2017. 12. 12. 20:41
728x90



"완벽하진 않지만 간략하게 만들 수 있다고 생각되었던 걸 만들어 보았다.

코드는 내가 봐도 더 최적화할 것들이 보이니 한참 멀었지만,

다 떠나서 배운게 엄~~~청나게 많다."







※ 이 글은 기본적으로 저를 위해 남기는 기록이며,

혹시라도 저와 같은 '생초보' 분들에게 공감과 위로, 도움이 된다면

그것으로 더할나위 없을 것 같습니다. ^^









   지난 두 달간 한 일

   * 맥북사서 뭔가 시작한지는 네 달된 듯.

   * 지난 두 달 동안 뭐 앱만들기를 엄청 열심히 하진 않았다. 한 달 정도만...

   * 여튼, 스탠포드 강의를 6강까지 들은 상황에서, 지난 글에 쓴 대로 내용 정리겸 간단한 앱을 만들기로 해, 실제로 만들어 보았다.

   * 그 때 만들어 볼만하다고 말했던 메트로놈, 실제로는 'BPM' 계산기를 만들어 보았다.

   * 화면을 주기적으로 터치할 때 그 시간 간격을 '분당 비트 수'(BPM, Beat per Minute)으로 표시하는 앱이다.

   * 드럼 칠 때 가끔 특정 노래의 BPM을 알고자 사용했던 앱이고 이미 기성앱들이 많지만, 직접 만들어 보는데 의미를 두었다.



   역시 공부는 복습, 실습이 중요

   * 일단 만들기로 해서 막 만들기 시작했는데... 와, 결과적으로 뭐 대단한 기술은 없었지만 배운게 하나도 기억이 안나더라.

   * 스탠포드 강의 때 분명 배운 것들인데, 실제로 맥북으로 따라하기도 했고 노트에 적기도 했는데 완전히 백지 상태가...

   * 아무래도 밀도있는 공부를 하지 않아서 인 듯 하다. 그렇다고 취미를 일처럼 하기도 그렇지만 너무 안 한 듯.

   * 아무튼 직접 앱을 만들어보면서 스위프트의 다양한 문법들을 익히고, Xcode의 사용법을 다시 한번 되새길 수 있었다. 강추!



   방법론 : Timer()

   * 무엇보다 가장 큰 소득은, 각종 프로그래밍 강의들은 기초만 가르친다는 것을 진작에 알고 있었지만 그를 몸으로 깨우쳤다는 것이다.

   * 시간 간격을 재는 앱이다보니 시간 간격을 재는 방법을 알아야 하는데, 이는 지금까지 기초 문법만 공부한 난 전혀 모르는 것이었다.

   * 그를 알아내는데 앱 만드는 시간의 80%가 쓰인 듯.

   * 결국 구글링을 통해 'StackOverFlow', 'GitHub' 등에서 구현법들을 알아갔는데, 짜증나면서도 흥미로운 과정이었다.

   * 짜증났던 이유는 다른 언어나 예전 버전 문법들, 내 경우와 다소 다른 문답들이 많이 나온다는 것 때문.

   * 그래서 Xcode의 사전도 많이 들여다보았는데, 이게 또 보물이더라.

   * 여튼 결과적으로 Xcode 사전과 StackOverFlow의 문답에서 힌트를 얻어 시간재기 구현 성공!

   * 다소 어처구니 없었던 건 스탠포드 강의 13강에 Timer 강의가 있다는 것...-_-;;;;;; 

   * 결론 : 스탠포드 강의를 다시 듣기로 했다. 앱도 일단 만들었으니...ㄷㄷㄷㅋㅋㅋ




[Xcode 사전]



   완성품

   * 당연히 팔 생각은 없었고, 개발자 계정도 없으며, 그래서 디자인도 신경쓰지 않고 기능적 구현에만 신경썼다.

   * 완성된 앱은 사실 완성은 아니다. 내가 봐도 최적화할 부분들이 보이기 때문. 기능적으로만 완성되었다.

   * 터치 사이의 시간을 재고, 그 시간으로 BPM을 계산하며, 특히 선택한 일정 간격으로 그 시간들을 모아 평균 BPM을 계산한다.

   * 여기에서 시간 계산 함수와, 선택한 값을 돌려주는(segment) 기능은 전혀 몰랐던 것이라 위에서 말한 방법대로 찾아서 활용했다.

   * dictionary, array, switch/case 등에 대해서 나름 배울 수 있었다.

   * 그 외에도 만드는 과정에서 배운 것은 정말 많았는데, 만든 앱에 대한 만족도는 높지 못하다. 생각보다 버벅이더라.

   * 맥북프로 시뮬레이션의 한계일 수도 있지만, 아무리 생각해도 내가 짠 코드가 지저분하고 많이 부족한 듯 싶다.

   * 일단 이건 그냥 잘 모셔두고 조금씩 최적화 해봐야 할 듯. 지금도 개선할 아이디어가 몇 개 있다.

   * 하나의 파일만 써서 만들었는데, 심심하면 스탠포드 강의 때 배운 것처럼 MVC 구조로 바꿔봐야 할 듯하다.



   향후계획 및 소감

   * 허접하나마 앱을 만들어 보니, '100일만에 iOS앱 만들기' 같은게 말이 안되는건 아닌 것 같더라. 열심히 공부하면 뭐.

   * 하지만 나처럼 설렁설렁 해서는 서버 및 인터넷 연동, 외부파일 연동 등이 자유자재로 되는 수준까지 가려면 꽤 걸릴 듯 하다.

   * 금방 다양한 앱을 뚝딱 만들 수 있을 것이라고 생각하진 않았다만, 아무튼 뭐 발전은 하는 듯 하니 언젠가는...

   * 일단 스탠포드 강의나 더 들어야 겠다. 이러다가 2018년 새 버전 나올 듯.ㅋㅋㅋ

   * 아무튼 앱을 만들어보고자 하시는 분들은, 어느정도 공부했다 싶으면 단순한 앱이라도 꼭 한번 만들어보시길.



   링크

   * https://stackoverflow.com 여긴 짱이다. 뭔가 코딩에 문제가 있어 정보를 얻고 싶다면, 네이버 지식인 같은 이곳에서 검색을 해보자. 물론 영어이기 때문에 나름 요령은 필요하다. 구글에서 프로그래밍 관련 질문을 담은 영어 문장으로 검색하면 거의 이 사이트의 결과가 뜨는 듯.