콘텐츠로 건너뛰기
Home » 스터디 » Page 38

스터디

[iOS/OSX] 앱 로컬라이징 하기

nib 파일 로컬라이징 nib 파일을 선택하고 인터페이습 빌더에서 언어를 추가하면 해당 언어로 표시할 nib 파일이 복사된다. 이에 따라 버튼 레이블이나 뷰에 올라가는 이미지와 텍스트를 변경하면 기기에서 설정한 언어에 따라 자동으로 해당 언어의 nib 파일이 선택되어 로컬라이징된 UI를 보여주게 된다. 문자열 테이블 예를 들어 경고창이나 검색 결과 문구에 대해서는 문자열 테이블을 사용하여 로컬라이징한다. 문자열테이블은 .strings 라는 확장자를 가지고 있다. 예를 들어 코코아 앱에서 찾기 패널을 만들었다고 한다면 Find.strings 파일을 각 언어별로 만들어 둘 수 있다. 문자열 테이블은 키-값 쌍의 모음이다. 각각의… 더 보기 »[iOS/OSX] 앱 로컬라이징 하기

[iOS/OSX] Timer 사용하기

특정한 시간 이후에 작업을 시행하는 타이머를 사용하는 방법에는 몇 가지 방법이 있을 수 있는데, 코코아에서 타이머는 NSTimer 객체를 통해 구현된다. 타이머와 런루프 타이머는 런루프(Run Loop)와 밀접한 관련을 맺고 있다. 타이머는 스스로 동작기한을 가지고 있고, 그 상태로 런루프에 등록된다. 런루프는 그 기한이 지나는 시점에 타이머를 지켜보고 있다가, 타이머가 실행하기로 한 액션을 지정된 객체로 보내게 된다. 런루프는 (역시나 런루프와 스레드를 혼동하는 불편한 진실 때문에 이에 대한 별도의 포스팅도 필요할 듯) 사용자의 입력 등에 적절히 반응하기 위해서 계속해서 “기다리는” 일종의 루프이다. 예를 들면… 더 보기 »[iOS/OSX] Timer 사용하기

[스터디] 후위식을 사용하지 않는 공학용 계산기 로직

공학용 계산기 엔진 만들기 예전에 미진하게 만들다가 말았던 계산기 만들기와 관련해서. 지난 번 글은 사실 스탠포드의 iOS 앱 개발 강의 내용을 바탕으로 만들었다. 물론 일부 내용을 좀 수정하기는 했는데. 그 강의에서는 스택에 숫자와 연산자를 넣는 형태로 동작했다. 예를 들면 3 + 5 를 계산하기 위해서는 3, enter, 5, enter, plus 의 순서로 값을 먼저 입력하고 연산자를 뒤에 입력하는 형태의 약간 이상한 방식으로 동작했다. 이는 사실 그 계산기 프로젝트를 계속 발전시켜 공학용 계산기로 만들기 위해서이다. 보통의 공학용 계산기는 ‘후위식’을 이용한 계산… 더 보기 »[스터디] 후위식을 사용하지 않는 공학용 계산기 로직

iOS에서 SQLite 사용방법

관련하여 새롭게 작성된 글이 있으니, 이 글을 읽어주세요: [새로 작성된] iOS에서 SQLite3 사용방법

자주 쓰이지는 않지만, 현재로서는 미리 만들어 놓은 데이터를 검색하여 사용하는 가장 단순한(?) 방법이다. (코어데이터는 데이터 셋을 미리 만들어 사용하기가 까다롭다) 대신, 애플은 영구저장소를 활용하는 방법으로 코어데이터를 밀고 있기 때문에 SQL과 관련한 내용을 애플 개발자 문서에서 친절하게 소개하고 있는 자료는 좀 드물다. 대신 SQL의 C인터페이스를 설명하는 글은 인터넷에서 많이 있으므로 적절하게 찾아보면 된다.
더 보기 »iOS에서 SQLite 사용방법

[iOS/OSX] 특정 작업을 병렬로 처리하기

“동시에 진행되는 작업”을 처리하기 위해서는 iOS 및 OSX 환경에서는 크게 두 가지 방법을 (흔히) 사용한다. GCD (dispatch queue)와 Operation Queue가 그것이다. 오퍼레이션 큐는 GCD의 Objective-C 버전이라 할 만큼 비슷한데 (사실 좀 다르기는 다르다) 어쨌거나 이 두 가지 방법은 스레드의 생성과 관리를 시스템이 알아서 처리해주는 레벨로 가지고 내려가기 때문에 실제로 프로그래머가 신경써야 할 부분을 “동시에 진행되는 작업을 처리”하는 부분에만 집중하면 되도록 해준다. 예를 들면 네트워크를 통해 데이터를 로드해야 하는 경우나 그 반대로 네트워크를 통해 데이터를 저장해야 하는 경우에 응답이 느리다면 (이는… 더 보기 »[iOS/OSX] 특정 작업을 병렬로 처리하기

[iOS] 키보드의 크기 구하기

iOS 앱을 디자인할 때, 텍스트 뷰나 텍스트 필드가 화면의 아래쪽에 위치한다면, 이를 탭했을 때 키보드가 올라오면서 정작 입력된 내용이 들어있는 부분을 가려버리게 된다. 따라서 키보드가 올라올 때 텍스트 뷰의 크기나 위치를 변경할 필요가 있다. 키보드가 올라오는 부분은 텍스트 필드/ 텍스트 뷰의 경우에는 didBeginEditing 등의 메소드를 사용할 수도 있지만, 보다 확실하게는 키보드가 나타날 때 발송되는 notification 메시지를 받는 것이 일반적이다. notification 메시지에는 userinfo 사전이 있고 여기에 여러 정보들이 있는데, 우리가 알고 싶은 키보드의 크기도 이 속에 있다.  키보드의 크기는 userInfo 딕셔너리 내의… 더 보기 »[iOS] 키보드의 크기 구하기

[iOS] UIScrollView 사용법

업데이트 UIScrollView를 Swift에서 사용하는 방법에 대한 (적어도 이 글 보다는 나은) 새 버전을 참고하세요. UIScrollView는 gesture recognizer를 내장하여 실제 뷰 영역보다도 큰 영역을 스크롤하여 내용을 볼 수 있도록 해주는 클래스이다. 사진 앨범 앱의 사진 보기 화면에서 이 스크롤뷰가 사용된다. (카메라롤의 사진 목록 역시 스크롤뷰로 구현되어 있다.) 스크롤뷰는 관성 이동은 물론 내부 컨텐츠를 확대/축소하는 방법을 아주 간단히 처리할 수 있어 주로 이미지와 관련된 화면에서 상당히 유용하게 활용할 수 있다. 스크롤뷰를 사용하는 방법은 UIViewController와 거의 유사하다. 인스턴스를 생성해서 하위뷰를 추가해주면 된다. 스크롤뷰의… 더 보기 »[iOS] UIScrollView 사용법

[iOS] 계산기를 만들어보자

계산기는 어찌보면 제일 간단한(?) 종류의 앱이라 할 수 있고 대체로 대부분의 컴퓨터나 휴대전화에 기본적으로 들어있는 기능이기도 하다. 하지만, 아이패드에는 없다.(!) 꼭 아이패드에서 없어서 그런 것이 아니라 간단한 앱이다 보니 만들기도 간단하고 해서 오늘은 계산기를 한 번 만들어보면서 MVC 패턴에 대해 살펴보기로 한다. MVC MVC는 모델-뷰-컨트롤러의 각각의 머리글자를 따서 만든 용어이다. MVC는 데이터와 사용자 인터페이스를 분리하고 이를 컨트롤러가 중계하는 형태로 프로그래밍의 결과물을 모듈화하는 기본적인 방법론이라 할 수 있다. 모델(데이터)과 뷰(UI)가 분리되어 있어 한 번 만들어 놓은 코드를 나중에 재사용하기 쉽게 한다는… 더 보기 »[iOS] 계산기를 만들어보자