iOS용 iMeesage 스티커 앱 만들기

정말 쉽게 만든 SquareAnimal 스티커 앱 몇 시간만에 iMessage용 스티커 앱을 만들었고, 하루 만에 앱스토어에 올라갔다. 2016년 WWDC에서도 쉽다고 하더니, 정말 쉬웠다. raywenderlich.com에서 산 iOS 10 by Tutorials 책을 보고 바로 만들었다. 스티커 이미지 준비 연습 삼아 빠르게 해보는 것이기에 샀던 kenney game asset을 이용했다. 많은 Asset 중에 Animal Pack을 골랐다. 여러 모양의 동물들이 있는데, 그중에서 네모난 형태의 이미지를 골랐다. pixelmator로 서툴게 적당한 크기로 이미지를 수정했다. App 만들기 XCode8을 실행시켜, 새로운 프로젝트를 만들 때 Sticker Pack Application을 선택한다....

10월 11, 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

XCode에서 @IBDesignable 과 @IBInspectable

코드와 XCode 인터페이스 빌더가 부드럽게 연동되는 것에 놀라다. “Developing iOS 8 Apps with Swift” 강의를 듣다가 코드로 그림을 그린 것이 XCode 인터페이스 빌더에 자연스럽게 반영되는 것을 보고 오!! 하는 느낌이 들었다. 코드로 그린 웃는 그림이 인터페이스 빌더에서 제대로 보인다. 그리고 Class에 코드로 정의된 속성값이 인터페이스 빌더의 Attribute Inspector에 보이게 할 수도 있다. 이 두가지를 가능하게 하는 키워드가 있다. @IBDesignable과 @IBInspectable이다. 사용법 그림에서처럼 @IBDesignable 키워드는 UIView를 상속해서 구현한 클래스의 선언부 앞에 추가하면 끝이다....

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