Swift3とXcode8

LINEで送る
Pocket

Swit3ベータ版が出ました。オープンソースになってから始めたのメジャーリリースです。++や–演算子がなくなったりと構文の変更が多くありますが、移行ツールも用意されているようなので、積極的に使用していきたいですね。

Swift syntax and API renaming changes in Swift 3 make the language feel more natural, and provide an even more Swift-y experience when calling Cocoa frameworks. Popular frameworks Core Graphics and Grand Central Dispatch have new, much cleaner interfaces in Swift. This release also improves build performance, and includes many small fixes that will make it more enjoyable to use every day.Swift blog

Swift3とXcode8

Xcode8ベータに同梱して、Swift3ベータがリリースされました。拡張機能が数多く含まれており、多くはオープンソースコミュニティから寄与されました。Swift3の主要な目的はSwiftが一貫性のある言語として発展し、将来のリリースにはさらに安定した構文になるために必要な最新のメジャーソース更新を実装することです。

Swift3での構文とAPI名の変更のおかげで言語がさらに自然になりCocoaフレームワークを呼び出すときには今まで以上にSwiftらしさを体験できるようになりました。よく使われるフレームワークであるCore GraphicsやGrand Central Dispatchは新しくずっとクリーンなインターフェースを持っています。本リリースではビルドのパフォーマンスを向上し、毎日楽しく使えるような小さな修正も多く入れています。

Xcode8ベータにはSwiftファイルとplaygroundの移行ツールが含まれており、既存のコードをSwift3に移行するのに役立ちます。

Swift 2.3

Xcode8はSwift3だけでなく、Swift2.3の開発もサポートします。Swift2.3はSwift2.2のマイナーアップデートで、macOS Sierra、iOS10、tvOS10、watchOS3の新しいSDKを含んでいます。このことにより、開発者は最新のSDKにすぐに移行でき、Swift2.2で開発が佳境にあってSwift3にすぐには移行できないようなプロジェクトでも移行可能です。Xcode8を使えばあなたのコードを新しいSDKに追加されたnullability clarity(nullを許容するかどうかの明確化)のようなSwift2.3の新機能に追随するような移行ができます。以下に例をあげます。

新しいSDKのnullabilityを使用しないで定義されたSwift2.2でのImage:

let image = CIImage(MTLTexture: texture, options: options)

Swift2.3ではfailable initializerをより明確にしています。

if let image = CIImage(MTLTexture: texture, options: options)

または

let image = CIImage(MTLTexture: texture, options: options)!

Swift3はXcode8でのプライマリな開発言語ですので、Swift2.3を使い続けたいのであれば考慮事項がいくつかあります。第一にはSwift2.3とSwift3はバイナリ互換性はありません。アプリのコード全体でSwiftの特定のバージョンを指定する必要があります。どちらのバージョンもコンパイラやSDK、デバッガで十分にサポートされていますが、その他のIDEの機能はSwift2.3では動かないこともあります。例えばXcode上のPlaygroundはSwift3でだけ動き、特にiPad用のSwift PlaygroundアプリもSwift3を使用しています。XcodeのプロジェクトテンプレートはすべてSwift3であり、すべてのドキュメントはSwift3に最適化されて書かれています。

Xcode8が今年の終わりにGM(Gold Master)版となったらSwift3でも2.3のどちらのアプリでもApp Storeに申請することができるようになります。Swift3での変更はSwift言語のあるべき未来を表しています。Swiftのコードをバージョン3に移行する時間を確保することを強くおすすめします。暫定的に2.3に移行したとしても、あとでXcode8のマイグレータを使用してSwift2.3からSwift3へ移行することもできます。

LINEで送る
Pocket

コメントを残す