CLOSE SEARCH
POSTS TAGGED WITH: iOS

Auto Layout #3. Auto Layout with Code

Auto Layout을 적용할 때, 대부분의 경우 Interface Builder에서 제공하는 기능만으로 다양한 조건을 만족시키는 제약을 추가할 수 있습니다. 제약을 WYSIWYG 방식으로 쉽게 추가할 수 있고, 제약에 문제가 있을 경우 즉각적으로 시각적인 피드백을 받을 수 있다는 점은 큰 장점입니다. 하지만 좀 더 복잡하고 동적인 제약을 구성하기 위해서는 코드를 통해 제약을 사용하는 방식에 익숙해져야 합니다.

Auto Layout #2. Auto Layout with Storyboard

Auto Layout을 사용하는 가장 손쉬운 방법은 Storyboard에서 제공하는 메뉴를 활용하는 것입니다. 두번째 글에서는 Storyboard에서 제약을 사용하는 방법과 Xcode에서 제공하는 Auto Layout 관련 기능에 대해 설명합니다. 이 글에 포함된 내용과 스크린샷은 Xcode 6.1.1 & iOS 8 버전을 기준으로 합니다. iOS 7과 iOS 8을 함께 지원하는데 필요한 내용도 함께 설명할 것입니다.

Auto Layout #1. Overview

Auto Layout은 제약(Constraints) 기반의 서술형 레이아웃 시스템입니다. WWDC 2011에서 OS X Lion과 함께 Cocoa Auto Layout이름으로 처음 발표되었습니다. 첫번째 버전에서는 OS X에서만 사용가능한 기술이었지만  WWDC 2012에서 iOS 6 이상의 버전에 대한 지원을 추가하고 명칭도 플랫폼에 제한적이지 않은 Auto Layout으로 변경하였습니다. Auto Layout에서 사용하는 개념과  API들은 두 플랫폼에서 거의 동일하게 사용할 수 있어서 하나의 플랫폼에 대해 익혀두면 다른 플랫폼에서도 Auto Layout을 문제없이 사용할 수 있습니다. 이 글에서는 iOS 플랫폼을 기준으로 설명하고 있습니다.

Cocoa Fundamentals Guide – Adding Behavior to a Cocoa Program

Objective-C를 사용해서 코코아 프로그램을 개발할 때 모든 것을 스스로 개발하지는 않을 것이다. Apple과 다른 다양한 개발사들이 개발하여 Objective-C 프레임워크 패키지로 제공하는 클래스들을 사용할 것이다. 이 프레임워크들은 프로그램을 구성하는데 사용되는 클래스 집합을 제공한다.

이번 장은 코코아 프레임워크를 통해서 Objective-C 프로그램을 작성하는 것에 대해서 설명한다. 또한 프레임워크 클래스를 서브클래싱하기 위해서 알고 있어야 하는 기본적인 정보를 제공한다.

Cocoa Fundamentals Guide – Cocoa Objects

Cocoa Objects는 Objective-C 객체의 특징은 무엇이고, Objective-C 언어가 코코아 소프트웨어 개발에 어떠한 이점을 가져오는지에 대해서 설명한다. 또한 Objective-C를 통해 객체로 메시지를 보내는 방법과 이러한 메시지에서 리턴되는 값을 처리하는 방법을 보여준다. (Objective-C는 간결한 언어이므로 이러한 작업은 어렵지 않다.) 이번 장은 최상위 클래스인 NSObject에 대해 설명하고, 객체의 생성, introspection, 객체의 생명주기 관리를 위해 프로그래밍 인터페이스를 사용하는 방식을 보여준다.

Cocoa Fundamentals Guide – What Is Cocoa?

Cocoa는 OS X와 iOS 모두를 위한 어플리케이션 환경으로 객체지향 소프트웨어 라이브러리, 런타임 시스템, 통합 개발환경으로 구성되어 있다. What is Cocoa? 에서는 이러한 정의를 확장하여 두 플랫폼 존재하는 코코아의 목적과 능력, 구성요소에 대해 설명한다. 이처럼 코코아에 대한 기술적인 설명서를 읽는 것은 코코아를 이해하려는 개발자에게 중요한 첫번째 단계이다.

Multitasking in iOS 7 : Background Fetch, Remote Notification, Background Transfer Service

Apple은 iOS 4 에서 iOS 6까지 다양한 멀티태스킹 기법들을 iOS 앱에서 사용할 수 있도록 발전시켜왔습니다. 백그라운드에서 비디오 인코딩 작업을 완료하거나 데이터를 업로드하고, VoIP 앱이나 위치정보를 사용하는 앱이 다양한 멀티태스킹 기능을 구현할 수 있도록 지원하고 있습니다. 이 포스트에서는 iOS 6에서는 멀티태스킹의 문제점과 iOS 7에서의 개선점, 그리고 세가지 새로운 기능(Background Fetch, Remote Notification, Background Transfer Service)에 대해 간략하게 알아보겠습니다.

컬렉션 뷰(UICollectionView) #5. Layout, 그리고 Flow Layout

Separation

컬렉션 뷰는 데이터와 레이아웃을 구분해서 처리합니다. 다시 말하면, 데이터는 레이아웃에 영향을 주지 않고, 레이아웃은 데이터에 영향을 주지 않습니다. 이런 특징 때문에 컬렉션 뷰는 데이터를 여러가지 방식으로 자유롭게 표현할 수 있습니다. 데이터와 관련된 소스코드의 변경없이!!