はじめに
昨年のWWDCにて、AppleはiOS8やOS X Yosemiteの発表とともに、新しいプログラミング言語「Swift」を発表しました。まさか新しい言語を開発するとは思いもよらず非常に衝撃的な発表でしたが、あれから半年が経ち、開発者向けベータ版などを経て、仕様やツールもだいぶ落ち着いてきたように思います。そろそろSwiftを、という方も多いのではないでしょうか。
本連載では、すでにObjective-CでiOSアプリを開発している開発者に、Swiftへ移行する際のポイントを解説したいと思います。
第1回である今回は、Swiftを学ぶための情報源と、Playgroundについてご紹介します。
その前に自己紹介
はじめまして。ogaoga(@ogaoga )と言います。仕事ではIT系の会社でフロントエンドエンジニアをやっています。iOSアプリは趣味で開発していて、SDKが公開されてからこれまでに10本以上作ってきました(公開できたのは数本 ですが……) 。
本特集ではSwiftで素早くアプリが作れるようなヒントをお届けできればと思っています。よろしくお願いします。
Swiftの印象
SwiftはRubyやPython、JavaScriptなどのスクリプト系言語に似ていて、初心者でもとっつきやすい言語、という記事を発表当初はよく見ました。実際触ってみると、確かにObjective-Cのような変則的な記法はなくシンプルに記述できるのですが、オプショナル型など、他の言語にはない新しい概念の獲得に苦労しました。
また当初、Swiftの言語仕様自体がコロコロ変わったり、Xcodeが不安定でコードの補完ができないなど、言語の習得を妨げる要因がいろいろあり、リリース直後のベータ版のころは非常に苦労しました。
最近では仕様の変更もなく、ネット上にも様々な解説記事が見られるようになり、学習しやすい状況になってきたと思います。
Swiftの学び方
The Swift Programming Language(iBooks)
Appleは当初からSwiftの言語仕様のドキュメントをiBooksで無料で配信しています。オフラインでもiPhoneでも読むことができ、電車の中で読んで勉強できたのは予想以上に便利でした(Web版もあります ) 。
ドキュメント自体英語で書かれてはいますが、サンプルコードが多いのでわかりやすいと思います。ただ、Language Referenceを除いても600ページ近くあり、全部読むのは大変です。かなり細かい仕様まで書かれているので、飛ばし飛ばしで基本的なところを読むのでも充分役立つと思います。
WWDCのビデオ
Swiftは昨年6月のWWDCで発表されましたが、Swift関連のセッションのビデオも公開されています 。
もちろん英語なのですが、映像はほぼソースコードなので、眺めるだけでも参考になるかと思います。ただ、発表時点から仕様が変更になっているところもあるので、最終的な仕様はドキュメントで確認したほうが良いです。
Swift Blog
Apple公式のSwiftのブログ があります。Appleがブログを書くと言うのも珍しい気がするのですが、常に進化を続ける言語の最新情報を伝えるために、有効な手段なのかもしれません。
最新情報だけでなく、仕様書を補完するようなTipsなどもサンプルコードと共に投稿されています。RSS等でウォッチしましょう。
Xcode Release Notes
ベータバージョンのころは頻繁にXcode/iOSのバージョンが上がり、その度に、ビルドすると大量にエラーや警告が出るような状況で、新しいバージョンへの対応にかなり時間を費やしました。
今でこそ仕様変更やバグは減ったと思いますが、もし、バージョンアップ後にビルドが通らなくなったりしたら、Xcode Release Notes を見るとヒントがあるかもしれません。新機能を知ることも出来るので、バージョンアップの際はリリースノートをチェックすると良いでしょう。
その他ネットの情報
最近ではSwiftに関する日本語の情報も多くあり、Appleのドキュメントを読まなくても学ぶことができる状況かと思います。
Qiita
Qiitaはプログラミングに関する情報共有のサイトで、Swiftのタグがつけられている記事 がすでに1,300件以上投稿されています。日本語でググるとQiitaの記事にたどり着くことも多いです。
スタックオーバーフロー
つい先日、Stack Overflowの日本語版 がオープンしました。Swiftに関する質問はまだ少ないですが、日本語で質問できて日本語の回答を期待できるのは心強いのではないでしょうか。
[iOS][Mac] Swiftを学べる記事のまとめ(Developers.IO)
この記事 には、たくさんのSwift関連情報のリンクがトピックごとにまとめられており、これをブックマークしておけば、必要な情報にたどり着くと言っても過言ではないです。
PlaygroundでSwiftを試す
ある程度知識がつけば、Swiftで実際にプログラミングしてみたくなりますよね? Appleは、Swiftを簡単に試すことのできる「Playground」を提供しています。
PlaygroundはXcodeに組み込まれているSwiftの実行環境で、エディタでSwiftのプログラムを書くと、ほぼリアルタイムにその実行結果を表示してくれます。WWDCのKeynoteでも紹介されていたので、ご存知の方も多いと思います。
Playgroundを使えば、Swiftの挙動を確認するためだけにiOSのプロジェクトをビルドして、デバッグコンソールでその結果を確認する、といった作業は不要です。初めのころには、Swiftの仕様を理解するためによくPlaygroundを活用しました。
PlaygroundはXcodeのメニューから、[ File]-[New]-[Playground...] を選択するとすぐに試すことができます
図1 PlaygroundでSwiftを試す
Swiftでは、文字列演算が非常に簡単になりました。たとえば文字列の連結を試してみましょう。一番下の行を追加します。
// Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
str += " world!" // ←追加
追加した最後の行の右側、プレビューのエリアに「"Hello, playground world!"」とリアルタイムに表示されたかと思います(ちなみにSwiftでは、文字列の先頭の「@」は不要です) 。
図2 文字列の連結を試す
このように、実行結果が即表示されるため、ストレスなくSwiftの挙動を試すことができます。
また、このPlaygroundは単にテキストの出力だけではなく、グラフやグラフィックスを出力することが可能です。
図3 グラフを出力
図4 グラフィックを出力
これ以外にも、XCPlaygroundというフレームワークが用意されており、非同期処理や高度なアニメーションなども実行できるみたいです。詳しくは、Appleが提供しているドキュメント「Source Editor Help 」の「Exploring and Evaluating Swift Code in a Playground 」や、「 Playground Reference 」を参照してください。
次回は……
今回ご紹介したように、Swiftを学ぶための情報は充実してきており、Xcodeも以前に比べると断然安定してきています。また、Playgroundを使って、試しながら学べる環境もあります。そろそろSwiftに移行しても良いかなと思われたのではないでしょうか?
次回は、Swift言語仕様について、Objective-Cとの違いとSwiftの新機能を紹介したいと思います。