콘텐츠로 건너뛰기
Home » Development » 페이지 50

Development

프로그래밍 언어 및 환경

맥 주소록에서 이름의 초성을 별명으로 자동저장하기

애플 스크립트와 자체제작한 명령줄 도구를 사용해서 OSX 주소록의 이름 중 한글의 초성을 따내 이를 자동으로 별명으로 저장해주는 도구입니다. 사용방법 글 맨 하단의 다운로드 링크를 통해 파일을 내려받는다. 압축을 해제하고 속에 들어있는 “별명추가” 스크립트를 실행한다. 이후 아이폰과 동기화하면 아이폰에서도 초성으로 주소록 검색이 가능해진다. 주의사항 스크립트와 명령줄 도구는 공개하지만, 이를 사용한 결과는 순전히 자신의 책임입니다. “이름(first name)” 항목만 변환합니다. “성(last name)” 필드는 검색하지 않아요. 초성변환은 Chosung 앱이 합니다. 터미널에서 Chosung <한글문자열> 을 입력하면 해당 문자열의 초성만 반환하니 따로 쓰셔도 됩니다. 다운로드링크 :… 더 보기 »맥 주소록에서 이름의 초성을 별명으로 자동저장하기

CGLayer를 사용한 핑거 드로잉 구현 (Objective-C)

코어 그래픽(Core Graphics)은 저수준의 드로잉 명령 API들을 통해서 화면이나 비트맵이미지, PDF 등에 시각적 요소를 그릴 수 있게 하는 프레임워크이다. 예전에는 Quartz, CoreGraphics라는 이름으로 분리되어 있었는데 iOS5 부터 UIKit의 일부로 완전히 편입되었다. 간단한 모양의 시각적 오브제를 표현하기 위해 비트맵 이미지를 사용하는 것보다 런타임에 오브제를 빠르게 그리고, 이를 재사용할 수 있게 하는 등의 기능을 제공한다. 실제로 많은 앱들이 현재에도 코어 그래픽을 사용해서 UI를 표현하는 경우가 많이 있다. 이번 글에서는 코어 그래픽 API를 사용해서 손가락으로 화면에 그림을 그리는 간단한 캔버스 앱을 구현하는 방법을 살펴보기로 하겠다.

더 보기 »CGLayer를 사용한 핑거 드로잉 구현 (Objective-C)

20120103 :: [팁] 프로토타입 셀을 서브클래싱하기

프로토타입 셀에 라벨 등의 서브 뷰를 삽입하면 각각의 서브뷰에 tag 값을 주어 -viewWithTag: 메소드를 통해 접근이 가능하다. 하지만 태그를 일일이 외우는 것은 직관적이지 못하므로 (물론 편리하긴하지만) 셀의 하위 구조가 복잡한 경우에는 그닥 즐겨 쓸만한 일이 아니다. 이를 아울렛을 통해 접근하고 제어할 수 있다면 좀 더 편리할 것이다. 이런 경우에는 프로토타입 셀을 서브 클래싱할 수 있다. 즉 UITableViewCell 클래스의 하위 클래스를 만들고 이를 IB에서 명시해주면 된다. 먼저 스토리보드에서 테이블 뷰 안에 있는 프로토타입 셀에 이것 저것 넣고 싶은 레이블이나 이미지뷰등을 넣는다.… 더 보기 »20120103 :: [팁] 프로토타입 셀을 서브클래싱하기

20120102 :: [iOS] 저장이 가능한 간단 메모장 3 (코어데이터)

해당 포스트의 코드가 너무 부끄러운 수준으로 디자인이 잘못돼 있어서 새롭게 작성한 글이 있으니 이 글을 참고해주세요.

이미 세 개의 포스팅(관련글 1, 관련글 2, 관련글 3)을 통해 간단한 메모장 앱을 만드는 방법을 살펴보았는데, 이번에는 완전히 똑같은 앱을 코어데이터를 사용하여 생성하는 방법에 대해 살펴보도록 하겠다. 이 시리즈의 맨 처음에 코어데이터에 대해 언급하면서 초보자에게는 좀 많이 어렵다고 이야기한 바 있는데, 이는 실제로 코어데이터가 사용하기 어려운 프레임워크라는 의미라기보다는 코어데이터를 실제로 사용하기 위해서 알고 있어야 하는 배경 지식이 상당히 많다는 의미라고 보는 것이 정확할 듯 하다.더 보기 »20120102 :: [iOS] 저장이 가능한 간단 메모장 3 (코어데이터)

20111222 :: [iOS] 저장이 가능한 간단 메모장 2 (2/2)

이번 시간에는 지난 글에 이어 앱을 작성된 메모를 테이블뷰에 보여주고, 이를 편집하고 삭제하는 기능을 추가해 보도록 하겠다. 사실 메모장 만들기의 핵심 파일에 데이터를 저장하는 것이고 맨 처음 글과의 차이점은 여러 개의 메모를 객체로 만들어서 파일에 저장하는 방법을 서술했다. 마지막 글은 앱의 모양새를 조금 다듬는 정도가 되겠지만, 테이블뷰 사용에 익숙하지 않은 초보자에게는 좋은 읽을 거리가 될 수 있도록 하겠다. 테이블 뷰 테이블 뷰는 iOS에서 주로 목록을 만들 때 많이 사용하게 된다. 가장 쉬운 예로는 연락처 앱의 메인 UI를 생각할 수 있으며,… 더 보기 »20111222 :: [iOS] 저장이 가능한 간단 메모장 2 (2/2)

20111105 :: Learning C – 변수의 종류

아 이거 다 늙어서(?) C언어 공부하려니 훽훽 안돌아가는 내 머리가 원망스러울 따름이고 ㅠㅠ. 어쨌든 이 글은 변수를 설명하는 강좌라기 보다는 C 소스를 볼 때 마법처럼(?) 느껴지는 여러 용어에 대한 이해를 돕기 위한 메모차원의 포스팅 변수 많은 프로그래밍 서적들이 설명하듯이 변수는 어떤 값을 보관하는 상자나 그릇 같은 것이다. 물론 이런 비유는 상당히 시각화하기 쉽기 때문에 이 추상적인 ‘변수’라는 개념을 좀 더 와닿게 느끼게 하는데는 도움을 준다. 다만 조금 더 정확하게 이야기하자면 변수는 특정한 값을 저장하기 위해 마련해 놓은 메모리상의 영역이다. 왜… 더 보기 »20111105 :: Learning C – 변수의 종류

20111220 :: [iOS] 저장이 가능한 간단 메모장 2 (1/2)

지난 글에서 간략한 예제로 만들었던 내용에 이어 오늘은 두 번째 시간. 두 번째 시간을 시작하기에 앞서 다뤘던 내용은 iOS에서 사용자의 데이터를 저장하는 방법과 관련하여 몇 가지를 알아보았고, 그 중에서 비교적 쉽게 접근할 수 있을 것으로 보이는 ‘아카이빙’에 대해 알아보았다. 실제로 아카이빙은 대부분의 코코아터치 객체들이 자신을 아카이빙하는 방법을 알고 있기 때문에 루트 객체를 아카이브하면 자동으로 엮여있는 모든 정보가 아카이브되고, 이것을 간단히 NSKeyedArchiver와 NSKeyedUnarchiver를 사용하여 직렬화된 정보를 파일에 쓸 수 있다는 것 까지 확인해 보았다. 오늘은 이 메모장을 조금 더 확장하여 여러… 더 보기 »20111220 :: [iOS] 저장이 가능한 간단 메모장 2 (1/2)

20111207 :: [iOS] 저장이 가능한 간단 메모장

iOS 앱이 데이터를 저장하는 방법 많은 튜토리얼에서 간단한 아이폰 앱을 만드는 방법을 설명하고 있는데, 이런 튜토리얼을 따라서 이것 저것 만들어 보는 것 또한 재미도 있고, 또 여러가지 테크닉을 익힐 수 있지만 정작 활용이 가능한 앱을 만드는 것은 쉽지 않다. 이 글 (과 아마도 이어질 글들)에서는 메모장과 같이 간단히 입력한 텍스트를 저장하는 앱을 만들어 보는 것을 함께 알아보고자 한다. 혼자 삽질과 염탐(?)을 거듭하여 알아낸 내용들을 정리하는 차원이기도 하니 아주 자세하게는 아니지만 소상히 쓰려고 노력할 것이다. iOS 앱이 어떤 데이터를 영구적으로 보관하는… 더 보기 »20111207 :: [iOS] 저장이 가능한 간단 메모장

20111018 :: [OSX] Mail 앱에서 이름이 중복으로 들어가는 경우

이건 상당히 글로벌한(?) 문제인 것 같은데, OSX의 Mail 앱에서 (심지어는 최근에 업그레이드된 5.0에서) 나타나는 문제이다. 아마 이런 문제를 겪고 있는 사람이 꽤 될 것 같은데… 바로 주소록에서 ‘성’ 란을 빈칸으로 비워두고 이름란에 성을 붙여서 쓰는 경우에, 메일 작성 시 보내는 사람 주소를 자동완성으로 입력하면 이름이 중복되는 문제다. 예를 들어 ‘홍길동’이라는 이름이 주소록에 “홍” , “길동” (성, 이름) 으로 들어가 있지 않고 “”, “홍길동” 으로 이름에 3글자가 모두 들어 있는 경우, Mail 앱에서 홍길동에게 메일을 보내고 나면 “홍길동”, “홍길동”으로 이름이 바뀌어… 더 보기 »20111018 :: [OSX] Mail 앱에서 이름이 중복으로 들어가는 경우

20110828 :: iOS5 : Empty Application에서 Storyborad 생성하기

잊기전에 하는 메모 Storyboard iOS5에 추가된 기능으로, 하나의 파일에서 애플리케이션의 모든 혹은 일부의 UI를 디자인하고 각 뷰의 상관관계 및 네비게이션을 설정할 수 있는 도구. Empty Application AppDelegate외에는 다른 클래스는 전혀 만들어지지 않은 프로젝트. 보통 RootViewController 라는  UIViewController 를 생성해서 메인 화면을 작성하게 된다. Empty Application에서 Storyborad  기반 앱으로 발전시켜가기 먼저 빈 스토리보드를 하나 생성한다. 이름은 주고 싶은대로. 프로젝트 세팅에서 타겟 세팅값 중 Main Storyborad File Base Name 속성을 새로 만들어 지정해준다.  AppDelegate.m 파일에는 앱이 런칭되었을 때 main window를 생성하는 코드가… 더 보기 »20110828 :: iOS5 : Empty Application에서 Storyborad 생성하기