CLOSE SEARCH
POSTS IN CATEGORY: Swift

What’s New in Swift 3

Swift 3.0부터 새로운 API 디자인 가이드가 적용되면서 문법적으로 많은 부분이 변경되었습니다. 1.2에서 2.0으로 업데이트 될 때의 규모와 비슷하거나 그 이상이 될거라 예상됩니다. 이번 글에서는 눈에 띄는 몇가지 내용에 대해 살펴보겠습니다. 모든 변경사항에 대한 내용은 아래의 링크를 통해 얻으실 수 있습니다.

Release_Notes_for_Xcode_8_beta.pdf

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 플랫폼을 기준으로 설명하고 있습니다.

Swift – showMeTheFunction(language: “Swift”)

Objective-C를 처음 접했을 때 가장 혼란스러웠던 점은 바로 함수를 정의하고 호출하는 방식이었습니다. helloworld();에 익숙했던 저는 [self helloworld];라는 문법에 적응하는데 많은 시간이 걸렸습니다. Swift의 함수를 공부하면서 그 때의 기억이 다시 떠오르는건 왜일까요? 하지만 모든 어려움과 생소함은 시간과 노력이 해결해 주고, 특히 이전에 아쉬웠던 점들이 많이 개선되었기 때문에 Objective-C를 공부할 때보다는 더 많은 기대를 가지고 공부를 할 수 있을 것 같습니다.

Swift – Change the flow

Swift는 애플에서 4년간 공들인 언어답게 Objective-C 언어에서 제공하는 기본적인 반복문과 제어문을 넘어서, 반복의 범위를 더 쉽게 지정할 수 있는 문법, Value Binding/Optional Binding과 제어문의 활용 등을 통해 복잡한 코드를 이전보다 훨씬 간결하게 표현할 수 있도록 도와줍니다. 특히 Switch문의 경우 Objective-C에서는 제공하지 않던 다양한 기능을 제공합니다. 저는 개인적으로 코드가 간결하게 정리되지 않는 느낌이 들어서(지극히 주관적입니다^^;) switch 문을 선호하지 않았지만, Swift에서는 너무 매력적인 기능들이 많아서 switch문을 적극적으로 사용하게 될 것 같습니다.

Swift – let collections = [“Array”, “Dictionary”]

Swift는 두가지 컬렉션 자료형을 제공합니다. Objective-C의 컬렉션은 모든 종류의 객체를 저장할 수 있었지만, Swift는 저장할 수 있는 자료형의 종류를 엄격하게 제한합니다. 예를 들어, String 배열에는 String만 저장할 수 있고, Int를 저장하는 것은 오류입니다. 이로 인해 컬렉션 자료형의 융통성은 거의 없어졌지만, 컬렉션에서도 일반화 프로그래밍의 이점을 얻게 되었습니다.

Swift – “String” + “Character”

@“hello world”가 아니고 “hello world”입니다. 이제 어느정도 골뱅이(@)에 적응이 되었다 싶었는데, 다시 C 스타일의 문자열로 되돌렸네요. 하지만 Swift의 String 자료형은 NSString 클래스와 긴밀하게 연동(toll-free bridged 와 유사하다고 보시면 됩니다)되어 있으므로, @만 빼고 마치 NSString 클래스를 사용하듯이 쓰면 됩니다.