2014년 2월 28일 금요일

[iOS] 그림을 그려서 UIImage로 Export 시키기

이번 포스트는 Core Graphics 의 드로잉 함수를 이용해 그림을 그려서 UIImage 객체화 시키는 것에 관한 내용이다. 드로잉 함수들이야 워낙 많아서 일일이 적기엔 블로그라는 시스템이 맞지 않을 정도고 여기선 그냥 맛보기 함수만 몇 가지 나열한다.

2014년 2월 27일 목요일

[iOS] 캘린더 일정 이벤트 등록하기 EventKit 예제

앱에서 캘린더(Calender)나 미리알림(Reminder) 등에 이벤트를 등록 할 때는 EventKit 프레임워크를 이용 할 수 있다. 이 포스트는 캘린더용 일정을 앱에서 등록하는 방법에 대한 예제이다.

[Objective-C] 변수의 값이 변하는 것을 추적하는 방법

iOS에선 UIView의 크기가 변하면 자동으로 서브뷰(Subviews)도 그와 함께 리사이즈 되도록 하는 기능이 존재한다. 하지만 subview가 바뀌었을 때 그 상위의 UIView의 크기가 따라 바뀌는 등의 기능은 제공하지 않는다. 따라서 코드레벨로 좀 수동으로 구현하는 것을 먼저 생각하게 될 것이다.

이번 포스팅은 위 예제상황에서 좀 더 편한 코딩을 하기 위해 '변수 값의 변화를 추적하는 것'에 대한 글이다. (정확히는 UIView와는 직접적인 관계가 없고 Objective-C 의 Key-Value Coding 과 관련된 내용이다)

[참고] 이 글은 옛날 글입니다. 새 글은 'KVO (Key-Value Observing) 소개' 글을 참고 바랍니다.

2014년 2월 26일 수요일

[iOS/OSX] NSDate로 상대 시간 구하기

NSDate 로 상대적인 시간 (예를 들어 D-day 처럼 지금부터 얼마의 시간이 남았나 등)을 계산해내려면 NSDate 클래스 만으론 불가능하고 NSCalendar를 이용해 계산해야 한다.

[iOS] 문자메세지(SMS) 보내기 MFMessageComposeViewController 예제

아이폰용 앱에서 텍스트메시지(SMS)를 코드레벨에서 그냥(!) 보내기란 사실 불가능하다. 안드로이드 퍼미션만 확보하면 앱에서 마음대로 보내는 것이 iOS에서는 불가능하다는 이야기다. (물론 이 불편함 덕분에 아이폰은 보안이라는 다른 이득을 취했다)

그나마 다행인 점은 iOS에서 이런 SMS를 보내기 위한 수동적인 장치는 제공한다는 점이다. MFMessageComposeViewController 가 바로 이런 역활을 하는 프레임웍이다.

[iOS] 라벨에 링크 넣기 TTTAttributedLabel 예제

Cocoa Touch 프레임워크에서 제공되는 UILabel 은 UI에 글자를 표시하기 위한 가장 기본적인 컴포넌트이다. 하지만 텍스트를 표시하기 위한 기능이 풍부하다고는 할 수 없다. 예를 들어 세로 정렬(Vertical Align) 이라던가 문자열에 링크를 넣어 이 링크가 터치되었을 때의 반응을 처리한다던가 등의 기능이 제공되지 않는다.

이번 포스팅은 3rd-Party 확장 클래스인 TTTAttributedLabel에 대한 소개 및 간단한 예제에 관한 것이다. 이 확장은 아래 github 저장소에서 구할 수 있다.

2014년 2월 25일 화요일

[iOS] NSJSONSerialization 예제

옛날 옛적(?)에 iOS용 앱을 만들 때 JSON을 파싱하거나 인코딩 하려면 SBJson 이나 JSONKit 같은 외부 코드가 필요했다. 하지만 (제법 오래 전에) Cocoa 프레임워크에서 자체적으로 JSON에 관련된 프레임웍을 제공하기 시작했다. 그 이름하여 NSJSONSerialization 클래스이다.

[iOS] UIFont 예제

UIFont는 이름 그대로 폰트를 정의하는 클래스다. 수 많은 글자를 표시하는 UI 클래스에서 폰트를 명시하기 위해 사용하는 중요한 클래스이다.