두 번째 자작 앱 OhMyPlane #2

OhMyPlane 자작 앱 개발 두 번째 이야기. 이번에는 프로토타입 구현할 때 기억에 남는 것들을 끄적여 본다. 이미지 작업 그림을 그리거나, 이미지를 다루는 능력이 많이 부족하므로 난이도가 높게 느껴진다. 다양한 화면 대응 iPad, iPhone 및 tvOS를 대상으로 하므로 다양한 화면크기에 대해 고려를 해야 한다. 2D iOS & tvOS Games by Tutorials 책에서 제시한 방법을 그대로 사용하였다. 가로 화면만을 지원할 것이기 때문에 배경의 크기가 2048x1536 크기이고, 화면 상태가 Aspect Fill이면 모든 화면 크기에 대응할 수 있다....

4월 20, 2016

두 번째 자작 앱 OhMyPlane #1

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

4월 19, 2016

Swift 2.2 release

Swift 2.2 3월 21일에 Swift 2.2가 정식 버전이 되었다. Swift 블로그에 어떤 내용이 변경되었는지 나왔는데, 하나씩 살펴보았다. SE-0001: Allow (most) keywords as argument labels 함수 인자의 외부 이름 라벨(argument label)에 in 같은 키워드를 사용하기 위해서는 `in` 형태로 사용해야 했다. 1 2 3 func test1(name: String, `in` inString: String) { print("\(name) in \(inString)") } 이번 버전부터는 inout, var, let을 제외한 키워드 대부분을 사용할 수 있게 되었다. 1 2 3 func test1(name: String, in inString: String) { print("\(name) in \(inString)") } SE-0015: Tuple comparison operators 튜플에 대한 <, > 같은 비교 연산이 추가되었다....

3월 22, 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

Subversion 저장소를 Git으로 사용하기

Git을 알게 된 후, Subversion 저장소의 불편함 Subversion은 중앙 집중식 버전 관리이다. commit을 하면 서버에 반영된다. git처럼 중앙 서버에 반영하기 전에, 내 컴퓨터 안에서 먼저 버전 관리를 하고 싶었다. 가볍게 branch를 만들고 작업하다 버릴 수도 있고, 제대로 작업을 했다 싶으면 중앙 서버에 반영할 수 있었으면 했다. 나와 비슷한 고민을 하는 사람들이 많았나 보다. git에서 이를 가능하게 git-svn 이라는 명령을 제공한다. 완전한 git처럼 사용할 수는 없지만, 적어도 내가 원한 것들은 가능했다. 그동안 git svn을 이용하면서 경험했던 것을 짧게나마 공유하고자 한다....

1월 26, 2016

Swift2의 defer 구문

크게 다가온 defer 구문 Apple의 Swift2 메뉴얼의 Error Handling에서 짧게 설명한 defer 구문. 설명은 얼마 안 되었지만 크게 다가왔다. 정리 작업 처리 코드 작성을 상당히 편하게 만들어 줄 수 있을 것으로 보였기 때문이다. 정리 작업을 하는 경우 어떤 작업을 하기 위해 준비 작업과, 정리 작업을 하는 함수의 경우에 다음과 같은 형태로 작성될 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 boolean f() { a() b() do1() if something is fail { ~b() ~a() return false } do2() ~b() ~a() return true } 작업 중간에 함수를 빠져나가게 될 경우, 정리 작업을 해줘야 한다....

1월 13, 2016

slack용 emille bot

slack 요즘 나름 뜨거운 서비스 중의 하나이다. 협업을 위한 서비스로, 다양한 외부 서비스 연동이 큰 특징이다. 다양한 외부 서비스들 외에 다양한 기능을 추가할 수 있게 slack bot에 대한 API도 제공한다. emille bot 우연히 slack 관련 자료를 인터넷에서 찾아보다가 slack bot을 쉽게(?) 구현할 수 있다는 것을 알게 되었다. 재미삼아 간단한 것을 만들어 볼까 하는 생각이 들었다. 각종 SNS에서 정시를 알려주는 에밀레 bot들이 문득 생각이 났다. 매 정시에 시간을 알려주는 것이 전부이다. 일단 시작해봤다....

7월 27, 2015

슬슬 다시 시작해보자.

손을 놓았더니, 다시 시작하기 힘들다. 다양한 행사들이 많은 5월에 잠시 손을 놓았더니, 다시 시작하려는 마음을 먹는데 시간이 걸렸다. 시작이 반이라고 하니, 다시 시작했다는데 의의를 두자. ^__^

7월 10, 2015