두 번째 자작 앱 OhMyPlane #1

OhMyPlane 두 번째 자작 앱이 앱스토어에 올라갔다. 개발 시작부터 앱스토어에 올리기까지 대략 4주 정도 걸렸다. 그동안 작업했던 것 중 대략 기억에 남는 것들을 역시 끄적여 본다. Sprite Kit, Gameplay Kit 학습 이상한 모임의 Slack에서 RayWenderlich를 알게 된 후, Tutorials와 책들을 하나씩 사서 즐겁게 보고 있었다. 그중 2D 게임 만들기와 관련된 2D iOS & tvOS Games by Tutorials 책을 사들여 하나씩 따라 해가며 보았다. 800여 페이지라 다 보는 데 몇 달 걸렸지만, 처음부터 게임을 하나씩 완성해가는 재미가 쏠쏠했다....

4월 19, 2016

Apple App Store에 App을 올려보기 - App 심사 요청 및 심사 완료 후 #3

App 심사 요청 Apple의 App 심사 기준 문서를 대충 훑어 봤다. 머리가 나빠 기억 못 하겠다. 그냥 올려보고 거절당하면 대처하는 방식을 취했다. iTunes Connect에서 App 심사에 필요한 정보들을 입력 후, 제출을 눌렀다. 이제 결과를 기다리면 된다. App 심사 완료 정말 간단한 App이라 심사도 오래 안 걸릴 것으로 생각했으나, 생각보다 오래 걸렸다. 3월 7일에 심사 요청을 했고, 12일에 심사 완료되었다. 너무 단순하고 간단한 App이라 거절될 줄 알았는데, 뜻밖에 올라갔다. 이렇게 해서 App Store에 처음 올린 App이 탄생하였다....

3월 17, 2016

Apple App Store에 App을 올려보기 - 완성한 App 등록을 위한 준비 #2

App 구현 시간보다 App 등록 준비한 시간이 더 길었다. App 개발에 2일, App 등록하는 과정에 여러 가지 일들을 하다 보니 5일 정도 걸렸다. App 등록이 처음이라 신기하면서 재미있었다. 그 중에 기억에 남는 것 몇 가지를 적어본다. TestFlight TestFlight를 이용하면 만든 App을 실제 iOS 장비에서 설치해서 테스트하는 방법을 제공한다. 내부 테스트와 외부 테스트 2가지 형태로 테스트할 수 있다. 내부 테스트는 최대 25명의 테스터를 초대할 수 있고, 한 사람당 최대 10대의 장비에서 테스트할 수 있다....

3월 16, 2016

Apple App Store에 App을 올려보기 - 후딱 App을 만들자. #1

Apple App Store에 처음으로 App을 올려보았다. iOS App 개발은 시작하였으나, App Store에 App을 올려본 경험은 없었다. 그동안 해오던 일도 끝나고, 3월부터는 완전한 백수로 거듭났기에 이번 기회에 빠르게 App을 만들어 올려보았다. 대략 1주일 정도에 걸쳐 다양한 작업을 했었고, 기억에서 잊히기 전에 생각나는 것들을 마구잡이로 남겨본다. 목공을 도와주는 계산기 어떤 App을 만들까 고민을 하다가, 취미인 목공과 관련된 것을 만들어 보는 것으로 방향을 정했다. App Store에서 목공으로 검색을 해보니 별다른 게 없었다. 근사하고 멋진 App이 아닌, App Store에 App을 올려보는 것이 목표이기 때문에 우리나라만을 대상으로 했다....

3월 15, 2016

CS193P 강좌의 과제의 결과물을 비교해보자.

Self Feedback! CS193P 온라인 강의의 과제를 홀로 진행하다 보니, 직접 작성한 코드에 대한 피드백이 없다. 직접 피드백을 받을 수 없어서 공개한 과제 결과물을 보고 스스로 비교 평가를 해야 한다. 온라인 강의를 듣고, 과제를 진행하는 사람들이 온라인에 많다. 구글에서 검색해도 되지만, 코드를 먼저 볼 것이기에 github에서 “cs193p"로 검색을 하면 많이 나온다. 이 중에서 과제를 진행하는 것을 찾아 보면 된다. m2mtech 이 중에서 가장 많은 별표를 받은 m2mtech 계정이 눈에 띈다. 과제별로 과제의 요구사항 수준으로 보기 좋게 Commit 되어 있다....

4월 7, 2015

Objective-C로 구현된 LCDView를 Swift로 변환

복싱 타이머 숫자 표시 복싱 타이머에서 시간을 어떻게 보여줄까 생각하다가 LCD 시계처럼 보여주기로 했다. Github에서 “LCD Digit"으로 검색해서 찾은 LcdiPhone을 사용하기로 했다. “Cocoa LCD Screen View”을 보니 괜찮다. 사용권도 Apache License 2로 사용하는데 별문제가 없다. Objective-C로 구현되어 있어도 Swift에서 직접 사용할 수 있겠지만, Swift를 익히는 과정이기에 Porting을 해보기로 했다. Swift 버전 Github 저장소에 있는 파일 중에서 숫자 표시 View인 MTILcdView.h, MTILcdView.m 파일만 Swift로 재구현했다. Swift에서는 헤더 파일이 따로 없기에 LCDView.swift 파일 하나로 구현했다....

4월 3, 2015

CS193P 강좌의 Demo 프로그램들

수업을 들으면서 데모 프로그램들을 따라서 만들었다. 자세한 내용은 강좌에 다 나오기에 생략한다. Hapiness Psychologist Autolayout Cassini Smashtag Dropit Trax Bouncer

3월 18, 2015

Boxing Timer에서 Model 설계 및 구현

Model 설계 Boxing Timer에서 Model의 역할은 다음과 같다. 정해진 시간을 내려 센다. 3분을 내려 센 후, 종료하면 30초를 내려 센다. 이것을 멈추기 전까지 반복한다. 매 초마다 변경된 시간을 알린다. 시간이 0이 되었다고 알린다. 시간을 알리는 것은 Protocol을 이용한다. Model 구현 대략 다음의 인터페이스를 구현했다. 시간 알림 Protocol을 구현한 Observer 등록 타이머 시작 타이머 멈춤 타이머 시간 초기화 여기까지 작업한 소스는 Github에 올려두었다.

3월 2, 2015

연습으로 만들어볼 복싱 타이머

Boxing Timer 건강을 위해 집에서 가장 가까운 체육관에 운동하러 다닌다. 헬스클럽은 아니고 복싱 체육관이다. 복싱 체육관이다 보니 대부분의 운동 시간은 복싱 라운드가 기본 단위가 된다. 3분 운동하고 30초 쉬고, 다시 3분 운동하고 30초 쉬는 것의 반복이다. 쇠로 된 벨에 연동되어 있어, 시간이 끝날 때마다 크게 땡 소리가 울려 퍼진다. 초기 기능 목록 대충 생각나는 핵심 기능만 정리해본다. 일단 시간은 2가지에서 선택할 수 있다. 3분/30초 반복, 2분/30초 반복. 시작/정지 버튼 및 초기화 버튼....

2월 24, 2015

Programming Project 2의 기본 요구 사항들 구현 완료

Programming Project #1의 Extra Credits 구현 완료 Backspace 버튼과 입력한 숫자의 부호를 바꾸는 “+/-” 버튼 등을 추가하는 작업이었다. 배운 것들을 살짝 응용하는 정도로 큰 어려움은 없었다. Programming Project #2의 기본 요구 사항들 구현 완료 Model을 추가한 후, 입력했던 것들을 수식으로 보기 좋게 출력하는 것과 메모리 관련 기능을 구현하는 것이었다. 실행화면은 다음과 같다. Auto Layout을 이용한 결과물이라 다양한 iOS 하드웨어의 화면 및 장비 수평에 맞게 버튼들이 배치된다. 작업 결과물은 github에 올려뒀다.

2월 14, 2015