はじめに
昨年の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関連情報のリンクがトピックごとにまとめられており,これをブックマークしておけば,必要な情報にたどり着くと言っても過言ではないです。