검색결과 리스트
WWDC2015에 해당되는 글 1건
- 2015.06.10 [swift] Apple Swift Blog
글
[swift] Apple Swift Blog
애플 WWDC 2015 에서 Swift2 공개와 올해 말 오픈소스화 발표가 있었습니다.
애플 swift 블로그를 방문하니 역시나 새롭게 단장되어있네요. Swift2 의 변화를 훑어보기 위해 대문 페이지를 번역해보았습니다.
[출처]: Apple Swift blog
Swift. 안전하고, 빠르며, 인터렉티브한
최신의 프로그래밍 언어
Swift는 iOS, OS X, watchOS를 위한 강력하고 직관적인 프로그래밍 언어입니다.
Swift 코드를 작성하는 것은 인터렉티브하고, 재미있습니다. 문법은 간결하지만 표현력이 풍부하며,
앱은 번개처럼 빠르게 실행됩니다. Swift는 당신의 다음 프로젝트 - 또는 현재 앱에도 사용할수 있도록
준비되어있습니다. - 왜냐하면 Swift는 Objective-C 와 함께 동작하기 때문이지요.
Swift 2 소개
Swift 는 밑바닥부터 개선되었습니다. 릴리즈, 디버그 빌드를 막론하고 더 빠른 코드를 생성합니다.
Swift 컴파일러는 var 대신 let를 사용하라는 새로운 Fix-it 제안을 제공해주는데도 더 빠릅니다.
주석에 마크다운를 사용하여 rich text와 내장 이미지를 추가할 수 있습니다.
새로운 assistant는 header-like 뷰에서 Swift API를 보여줍니다. 그리고 Cocoa 프레임워크와 Objective-C
코드를 더 풍부하고 훨씬 안정성있게 해주는 새로운 문법들이 개선되었습니다.
에러처리 모델(Error Handling Model)
진보된 에러처리 모델은 에러를 캐치하고 던지는 명확하고, 풍부한 문법을 제공합니다.
쉽게 커스텀 에러타입을 정의하고 명확하고 의미있는 이름으로 에러 케이스를 기술할 수 있습니다.
새로운 에러모델은 NSError 클래스와 Cocoa 프레임워크와 잘 조화되도록 설계되었습니다.
에러 처리 코드의 예입니다.
개선된 문법(Syntax improvements)
새로운 문법 특징들은 언어를 일관성 있게 개선하면서도 더 풍부한 코드를
작성할 수 있게 합니다. SDK는 Objective-C에, Swift를 더 명확하고 안전하게 하는
generics와 nullability 어노테이션을 도입했습니다.
Swift 2.0에 개선된 몇가지 예입니다.
- do, guard, defer, repeat를 사용한 강력한 제어흐름
- 함수와 메서드 키워드 네이밍 규칙 통합
- 프로토콜 extension 과 디폴트 구현
- if문과 for 루프에서의 확장된 패턴매칭
Xcode7는 애플리케이션과 playground 코드를 최신 Swift2.0 의 개선된 문법으로
변환해주는 강력한 마이그레이터를 포함합니다.
가용성(Availability)
최신의 특징, 문서, API 변경사항을 접근하기 위해서 최신의 SDK를 사용해야 했지만
때때로 앱이 더 이전 버전의 OS 에서 실행되야할 때가 있습니다.
Swift2.0은 가용성 체킹 기능을 가지고 있습니다. 이 기능은 각 target OS version 에
가장 적합한 앱을 쉽게 빌드할 수 있게 해줍니다. 컴파일러는 최소 OS 타겟에서는 지원하지 않는
새로운 api를 사용하려 할때 에러를 발생시킵니다.
그리고 특정 버전의 OS에서만 실행되도록 버전분기를 해주는 코드블럭를
랩핑하는 키워드들 제공합니다.
오픈소스(Open Source)
올해 말 Swift는 오픈소스로 릴리즈 됩니다.
우아하고, 강력하고 안전한 Swift의 결정체가 산업 전반에 소개될 수 있는
기회를 제공합니다. 우리가 함께 개발하는 것을 상상하니 흥미진진합니다.
모던(Modern)
Swift는 수십년의 애플 플랫폼 개발 경험과 가장 최신의 프로그래밍 언어 연구결과의 집합체입니다.
Objective-C에서 차용한 named 파라미터는 명확한 문법으로 표현하되, 가독성과 유지보수를 쉽게합니다.
타입추론은 모듈이 헤더를 제거하고 네임스페이스를 제공하면서, 코드를 더 깔끔하게 하고, 그리고 실수를 덜
유발하게 합니다. 메모리는 자동으로 관리되며, 세미콜론 조차 타이핑 할 필요 없습니다.
모든 이런 현대적인 아이디어들이 언어를 쉽고, 사용하기 재미있게 만들어줍니다.
Swift는 코드를 더 풍부하게 하는 다른 많은 특징들을 가지고 있습니다.
- 클로저는 함수 포인터와 통합되었습니다.
- 튜플과 다중 리턴값
- 제네릭
- 빠르고 간결한 range와 collection iteration
- 메서드, extension, 프로토콜을 지원하는 구조체
- map, filter와 같은 함수형 프로그래밍 패턴
- try/catch/throw 를 사용하는 네이티브 에러처리
| 인터렉티브 플레이그라운드 (Interactive Playgrounds) |
Playgrounds 는 Swift 코드 작성을 믿을수 없을 정도로 단순하고 재미있게 합니다.
한 줄의 코드 타이핑 결과가 즉시 나타납니다. 코드 오른편에서 빠르게 결과를 훑어보거나,
그 결과를 바로 아래에 고정할수 있습니다. 결과뷰는 그래픽, 결과리스트, 시간의 흐름에 따른 그래프로
볼수 있습니다. Time Assistant를 열어 관련된 뷰들이 변화하고 애니메이션 되는것을 볼수 있습니다.
새로운 UI코드를 실험하고, 코딩하면서 애니메이션 되는 SpriteKit Scene을 실행해보기 좋습니다.
Playground에서 코드작성을 완료했을 때, 단순히 프로젝트로 코드를 옮기세요.
Xcode7의 새로운 기능중 하나로 Playgrounds는 이탤릭 볼드, 불릿 리스트, 내장이미지와 링크 등을 가진
rich text를 사용하여 주석을 달수 있습니다. 심지어 리소스도 내장할수 있어서 코드는 단순하게 하면서도
Swift 소스 코드를 믿을수 없을 정도로 강력하고 매력적이게 할수 있습니다.
아름다운 텍스트와 인터렉티브한 코드를 사용하여 프로그래밍 커리큘럼을 공유할 수 있습니다.
새로운 알고리즘을 설계하고, 단계마다 그 결과를 볼수 있습니다.
테스트 슈트를 만들기 전에 새로운 테스트를 작성하고 동작하는지 검증할 수 있습니다.
Swift 코딩 기술을 연마하기 위해 새로운 API를 실험해볼 수 있습니다.
실험결과를 Playgrounds 안에서 동작하는 코드예제를 갖는 문서로 만들 수 있습니다.
Read-Eval-Print-Loop(REPL)
Xcode의 LLDB 디버깅 컨솔은 Swift 언어의 인터렉티브한 버전을 포함하고 있습니다.
스위프트 문법을, 실행되고 있는 앱과 상호작용하고 evaluate하는데 사용해보세요.
또 스크립트 같은 환경에서는 어떻게 동작하는지 새로운 코드를 작성해보세요.
Xcode 컨솔과 터미널에서 사용가능합니다.
안정성을 위한 설계(Designed for Safety)
Swift는 불안전한 코드들을 제거했습니다. 변수는 사용하기 전에 초기화 되어야 하고,
배열과 정수타입은 오버플로그 검사를 하며 메모리는 자동으로 관리됩니다.
문법은 의도를 잘 드러내도록 튜닝되었습니다.
예를 들어 단순하게 3문자 키워드를 사용하여 변수(var) , 상수(let)를 선언합니다.
또 다른 사례로, 디폴트로 Swift 객체는 nil이 될 수 없습니다.
Swift 컴파일러는 컴파일 타임 에러로 객체가 nil이 되는 것을 예방합니다.
이것이 코드작성을 훨씬 명확하게 하고, 안전하게 합니다. 그리고 당신 앱의 수많은 종류의
런타임 크래시들을 예방해줍니다. 그러나 nil이 유효하고 적절한 값일 경우가 있습니다.
이런 상황에서는 optional이라고 알려진 혁신적인 특징을 사용합니다.
optional은 nil을 포함할 수 있으며, Swift 문법은 당신이 이해할 수 있고, 안전하게 처리할수 있도록
?구문을 사용하도록 강제합니다.
빠르고 강력하다(Fast and Powerful)
초기 컨셉부터 Swift는 속도를 염두해두고 개발되었습니다. 고성능 LLVM 컴파일러를 사용하여, Swift 코드는
대부분의 최신 하드웨어에 최적화된 네이티브 코드로 변환됩니다. 문법과 표준라이브러리는 코드가 가장 잘 실행되도록
튜닝되었습니다.
Swift는 C와 Objective-C 언어들을 계승합니다. 로우레벨 기본형 타입들과, 제어흐름, 연산자들을 포함하고 있습니다.
클래스, 프로토콜, 제네릭과 같은 객체지향 특징들은 Cocoa, Cocoa Touch 개발자들이 필요로 하는 성능과 힘을 제공합니다.
Objective-C 상호운영성 (Interoperability) |
Swift를 사용하여 전체 애플리케이션을 작성할 수 있습니다.
현재 앱의 새로운 기능 구현을 위해서 Swift코드를 사용할 수도 있습니다.
Swift 코드는 동일 프로젝트에 있는 Objective-C 파일들과 함께 존재하며, 전체 Objective-C API 에 접근하며 쉽게 적용할
수 있습니다.
'Swift' 카테고리의 다른 글
| [swift] Map, Filter, Reduce (0) | 2015.06.22 |
|---|---|
| [swift2] New in Swift2.0 (0) | 2015.06.19 |
| [swift] Apple Swift Blog (0) | 2015.06.10 |
| [swift] Swift 기초 - 4 (0) | 2014.10.29 |
| [swift] Swift 기초 - 3 (1) | 2014.10.29 |
| [swift] Swift 기초 - 2 (0) | 2014.10.29 |