Swift 3でアプリを作成する方法|新機能・開発環境・学習リソースを徹底解説
Swiftは、macOSやiOSデバイス向けのアプリを開発するために使われるプログラミング言語です。Appleはデバイスから最速かつ最高効率のパフォーマンスを引き出すことを目的としてSwiftを設計しており、Swift 3では既に高い評価を受けていた機能セットがさらに拡張されました。
Swift 3の誕生背景:オープンソースコミュニティが生んだ初のメジャーアップデート

「Swiftはわずか6ヶ月前にオープンソースプロジェクトとして公開されました」と、Appleで言語およびランタイム部門のシニアマネージャーを務めるTed Kremenek氏は語ります。「GitHubにソースコードを公開すること自体が目的ではなく、今後のSwiftの進化を牽引する完全にオープンなコミュニティを作ることが大きな目標でした。Swift 3は、まさにそのコミュニティの成果として生まれた最初のメジャーアップデートなのです。」
もうひとつの重要な変化は、SwiftがもはやiOSやOS X開発専用の言語ではなくなったことです。Swiftのオープンソース化以降、Linux向けバージョンも登場し、サーバー開発者にも扉が開かれました。
「今日のソフトウェアエコシステムは非常に多様です。サーバー開発であってもアプリ開発であっても、私たちはSwiftをすべての人のための言語にしたいと考えています。これはSwiftがLinuxへ移植されて以来、初めてのメジャーアップデートとなります」とKremenek氏は強調します。
Swift 3の新API設計:言語の基礎を固める

Swift 2以前を使ってきた開発者を驚かせるのは、Swift 3における言語変更の規模の大きさでしょう。「Swift 3の最大のテーマは、言語のコアとなる基礎をしっかり固め、その上に将来の発展を築いていくことです」とKremenek氏は説明します。
Appleの開発者ツール部門シニアディレクター、Chris Lattner氏もこの考えに同意しています。「私たちはSwiftのコア体験を最高のものにしたいのです。」
「これは簡単な課題ではありません。単にカンマやコロンの使い方を決める問題ではなく、互換性の問題でもあります。だからこそ、私たちはSwiftを長年にわたって付き合える完成された形にするため、あらゆる努力を惜しまないのです。」
Swift 3には以下のような新しい機能が多数搭載されています。
- Swift 3におけるAPI設計の変更:最大の変更点はAPI記法です。AppleのAPIへのアクセスは、Swift(そして多くのモダン言語)によるソフトウェア開発に不可欠な要素ですが、Appleは可読性を重視してAPI記法を根本的に見直しました。新しい構文の詳細はSwift.orgで確認できます。
- Playground対応の強化:Xcode 8では、ダウンロード可能なスナップショットに対応したPlaygroundサポートが追加されました。Xcode内で最新のSwiftスナップショットをダウンロードすれば、Xcodeを再起動することなくすぐに実験を始められます。進化し続ける言語の最新動向を追うのが格段に楽になります。
- パラメータラベルの変更:Swift 3では引数ラベルに関する大幅な変更がありました。Swift 2ではObjective-Cとの整合性が保たれていましたが、API記法が大きく変わったことに伴い、パラメータもSwift自身のスタイルに合わせることになったのです。
- ジェネリクス:ジェネリクスの構文も変更されました。シグネチャが先頭に来るようになり、制約条件はその後に続きます。
- 警告機能:関数内で未使用の結果がある場合、警告が表示されるようになりました。意図的な動作であれば、この警告を無効化することも可能です。
Swift 3.0では新機能の追加と同時に、いくつかの機能が削除されました。主な削除項目は以下の通りです。
- カリー化関数宣言の構文
- 関数パラメータリスト内のvar
- ++演算子と--演算子
- Cスタイルのforループ
- 呼び出し時のタプルスプラットの暗黙的適用
「こうした変更の中には、賛否を呼ぶものもあることは承知しています」とKremenek氏は認めます。ただし、これらは開発者コミュニティとの綿密な議論を経て決定されたものであり、議論のログはすべてオンラインで公開されていると指摘しています。
Swift 3でアプリ開発を始める:Xcode 8ベータ版のインストール

Swift 3.0は現在、すべての開発者が利用可能であり、有料のApple Developer Connectionプログラムに登録していなくても使用を開始できます。Xcode 8ベータ版をダウンロードすれば、すぐにSwift 3.0での開発を始められます。さらにAppleは『The Swift Programming Language』ガイドをiBooks Storeで無料公開しており、新機能や新しい構文を効率的に習得できます。
Swiftのオープンソース化とは何を意味するのか?

2015年12月以降、Swift 2はオープンソースとなっています。しかし、これはプログラマーやアプリユーザーにとって何を意味するのでしょうか?
オープンソースとは一般的に、プログラムやプログラミング言語の背後にあるソースコードが一般公開されることを指します。開発者はそのコードを自由に閲覧、修正、配備することができます。
実際には、開発者はSwiftを使って非Apple製オペレーティングシステム向けのビルドを行えるということです。特に、LinuxとOS Xが類似のUnix系構造を共有していることから、Linux OS上でのSwift実行が現実のものとなりました。
理論上は、将来的にWindowsコンピュータへのSwift実装もあり得ますが、現時点ではWindowsで実用的に使えるバージョンは登場していません。また、AndroidでJavaを使用しているGoogleがSwiftへ移行するのではないかという噂もありますが、GoogleがOracleとのJava API著作権訴訟で勝訴したことを考えると、その可能性は低いと思われます。
では、AndroidスマホでiOSアプリが動くようになる?
他のデバイスでSwiftコードを利用できるとはいえ、OS XやiOSのソフトウェアがWindowsやAndroid上で動作するようになるわけではないので注意が必要です。ソフトウェアの移植は容易になりますが、Appleは引き続きSDK(ソフトウェア開発キット)の管理権限を保持すると考えられます。AppleがSwiftのどの部分をオープンソース化するのかは明らかになっていませんが、Xcodeのソースコードは非公開のまま維持される可能性が高いため、OS XやiOS向けソフトの開発には依然としてMacが必要となるでしょう。
Appleは非常にクローズドな企業であり、独自の創作物を強く保護する傾向があるため、開発者以外の人にはオープンソースとの相性が奇妙に映るかもしれません。しかし、Appleは決してオープンソースコミュニティに馴染みのない存在ではありません。OS XはUNIXをベースとしており、その多くのソフトウェアコンポーネントはオープンソースで構成されています。
Appleの「Open at the source」ページには次のように記されています。「Appleは、オープンソース手法の採用によってMac OS Xがより堅牢で安全なオペレーティングシステムになると確信しています。その中核コンポーネントは、数十年にわたりピアレビューという坩堝にかけられてきたからです。」
AppleのSwiftとはどんなプログラミング言語?
WWDC 2014で初披露されたAppleのSwiftは、Mac OS XおよびiOSデバイスのプログラミングを大幅に容易にすることを目的として設計されました。この記事では、Swiftという言語の特徴、Macへの環境構築方法、そしてSwiftプログラミングの学び方について詳しく見ていきます。
Swiftは、Appleの従来のプログラミング言語であるObjective-Cを補完し、最終的に置き換えることが予定されている言語です。Objective-Cは1980年代に開発され、1996年にMacに導入されました。2014年までの17年間、Appleから新しいプログラミング言語は発表されておらず、それだけにSwiftはApple開発者コミュニティにとって非常に重要な存在なのです。
Swiftプログラミング言語の正体
Swiftは、Cocoa(Mac OS X向けフレームワーク)とCocoa Touch(iOS向けフレームワーク)のためのプログラミング言語です。Swiftプログラムは、Appleの統合開発環境(IDE)であるXcode 6以降を使用して作成されます。
Swiftは2014年に登場した比較的新しい言語ですが、既存のObjective-Cプログラムと共存できるように設計されています。これにより、開発者は古いObjective-Cコードをすべて書き換えることなく、既存アプリにSwiftコードを段階的に追加できるのです。
Swiftで開発するメリットとは?
Appleは、従来のObjective-Cに対するSwiftの優位性をいくつか挙げています。比較的新しい言語であるため今後の発展も含めて見極める必要がありますが、SwiftがObjective-Cよりも優れた選択肢である理由を紹介します。
クリーンで読みやすい構文
Swiftは、読みやすくコーディングしやすい言語として設計されています。各行末にセミコロンが不要で、関数も直感的に理解できます。例えば、多くの人がBASICで親しんだPrintコマンドは、Objective-CではNSLog(NSはスティーブ・ジョブズがApple退社後に創業したNeXTStepに由来し、Appleが置き換えてきたレガシーの深さを物語っています)でしたが、Swiftではより馴染み深いprint関数になっています。必要な記号も少なく、全体的にObjective-Cよりはるかに効率的です。
定番のHello Worldプログラム(画面に「Hello, world!」と表示するプログラム)を両言語で比較してみましょう。Swiftの方がシンプルで、はるかに理にかなっていることが分かります。
Objective-CでのHello World
#import <Foundation/Foundation.h>
int main(void)
{
NSLog(@"Hello, world!\n");
return 0;
}
SwiftでのHello World
Swiftでは、同じ処理がわずか1行で書けます。
println("Hello, world!")
ご覧の通り、Swiftははるかにクリーンで学びやすいコードです。Appleがコードの表現力を高めるために重要だと挙げているその他の特徴は以下の通りです。
- 関数ポインタと統合されたクロージャ
- タプルと複数戻り値
- ジェネリクス
- 範囲やコレクションの高速かつ簡潔な反復処理
- メソッド・エクステンション・プロトコルをサポートする構造体
- mapやfilterなどの関数型プログラミングパターン
自動化されたメモリ管理
Swiftの大きな利点のひとつは、開発者がメモリ割り当てを手動管理する必要がないことです。Swiftでは変数は使用前に初期化され、配列や整数のオーバーフローがチェックされ、メモリは自動的に管理されます。これにより、経験の浅い開発者にとっても安全にプログラミングできる環境が整いました。Swiftのメモリ管理によってアプリの信頼性が向上すれば、開発者だけでなくユーザーにとってもメリットがあります。
MacでSwiftを入手する方法
SwiftはXcode IDE(統合開発環境)の一部として提供されており、Mac App Storeから無料でダウンロードできます。

Swiftを学ぶべきか?
開発者の間での総意としては、Swiftは非常に優れたプログラミング言語だと言えます。Swiftは、高く評価されているPythonと多くの面で似ており、Objective-Cよりも新人にとって習得しやすい言語です。Pythonはプログラミング講座で頻繁に採用されているため、多くのプログラマーがSwiftの構文の大部分にすでに親しんでいるかもしれません。
一方で、ベテラン開発者にとっても、クリーンな構文は作業の効率化につながります。
Objective-Cに慣れ親しんできた人なら、Swiftの多くの点に便利さを感じるはずです。ただし、新しい言語への移行には新たなコードの学習が伴い、当面は業務の妨げになる可能性もあります。しかし長期的に見れば、熟練したObjective-C開発者にとってもSwiftへの移行は十分に見返りがあると期待されています。
なお、SwiftによってMac OS XやiOSのコードをAndroidなどの他プラットフォームへ簡単に移植できるようになるわけではありません。多くの開発者は、Swift開発のメリットとApple環境へのさらなるロックインを天秤にかけています。現時点ではAppleはCocoa/Cocoa TouchアプリのビルドにおいてObjective-CとSwiftの双方をサポートしていますが、最終的にはすべての開発者をSwiftへ移行させる意向とみられます。
Swiftプログラミングの学び方
Swiftの学習に興味があるなら、さまざまなリソースが利用可能です。App StoreからXcodeを入手でき、AppleはすでにiBooks StoreでSwift解説書『The Swift Programming Language』を公開しています。ちなみにこの本は誰でもダウンロードでき、登録済みのApple開発者である必要はありません。
Appleの公式書籍は、Mac OS XのiBooksやiPad・iPhoneで読むことができます。内容は基本演算子から継承までを網羅していますが、残念ながらXcode環境でのiOSアプリ開発については扱っていません。今後、より詳細なSwift関連書籍や初心者向けチュートリアルが続々と登場することが期待されます。
おすすめのApple Swift学習リソース:
- The Swift Programming Language(iBooks Store)
- The Swift Programming Language(Swift.org公式ドキュメント)
- Using Swift with Cocoa and Objective-C
オンライン学習なら、Udemyなどで開発者向けコースが多数提供されているのもチェックする価値があります。
- iOS 9 and Swift Mastery: Build 11 apps with Swift
- Complete iOS 9 developer course
- Learn to build 20 websites and 14 iOS 9 apps with Swift
また、多くの開発者がインターネット上でSwiftやその機能について情報発信しています。Swiftプログラマー志望者がブックマークすべきサイトは以下の通りです。
- Swiftly Functional
- Reddit /r/swift
さらに、Stanford、MIT、Harvardといった大学による優れたオンライン動画講座もあります。iTunes Uで視聴できるStanfordの「Developing iOS 9 Apps with Swift」コースは、開発全体の流れを掴むのに絶好の教材です。
その他のおすすめのSwift関連サイトや書籍があれば、ぜひコメント欄でお知らせください。
ゼロからSwiftプログラミングを学ぶ最良の方法
プログラミング初心者の場合、あるいはプログラミング全般を学びたい場合は、役立つウェブサイトやサービスが数多くあります。特におすすめのコーディング学習サイトを紹介します。
- Codecademy:無料のオンライン学習コミュニティで、デジタルスキルを教えてくれます。まだSwiftは扱っていませんが、手取り足取りPython(初心者に最適な言語です)を学べます。
- Learn Python the Hard Way:名前は少し不気味に聞こえますが、この書籍&講座は、初心者がプログラミングを身につけるのに最良の方法のひとつです。
- MITx 6.00.1x: Introduction to Computer Science and Programming Using Python:コンピュータサイエンスやプログラミングの未経験者向けにMITとハーバードの学生向けに設計された講座で、すべての教材がオンラインで公開されています。プログラミング入門のロードマップとして最高の内容です(コンピューティング一般に興味があるだけでも動画を見る価値があります)。
さらに、開発者のNate Murray氏のおかげで、Swift版Flappy Birdで遊ぶこともできます。ソースコードはGitHubで公開されています。
その他、掲載すべきリンクやリソースがあればぜひ教えてください。

関連記事
- Swift 3と新機能の完全ガイド
- WWDCで発表されたmacOS Sierra
- iOS 10プレビュー:ベータ版を使ったファーストインプレッション
-
Rubyでファイルを読み書きする方法を実例つきで徹底解説
Rubyでファイルの読み書きができるようになると、ファイルからデータを抽出したり、新しいファイルを作成したり、必要な情報を素早く見つけたりできるようになります。この記事では、Rubyにおけるファイル操作の基本を、実際のコード例とともにわかりやすく解説します。 この記事で学べること Rubyでファイルを読み込む方法 Rubyでファイルに書き込む方法 覚えておきたいFileクラスのメソッド ディレクトリ操作の基礎 FileUtilsモジュールの使い方 まとめ それでは始めましょう! Rubyでファイルを読み込む方法 Rubyでファイルを読み込む基本的な流れは、次の3ステップです。 op
-
先延ばしグセを克服!スマホで使えるおすすめ集中アプリ5選
私たちは日常のさまざまな場面で、ついSNSアプリを開いてしまいがちです。スマートフォンは生活に欠かせない存在となりましたが、やるべき作業を後回しにする原因になっていることも少なくありません。 物事を先延ばしにする癖は大きな問題であり、この習慣があると目標達成は遠のいてしまいます。スマホの利用が増えた現代では、この傾向はさらに顕著になっています。しかし興味深いことに、解決策もまたスマホの中にあります。先延ばし癖を克服するためのアプリが数多く存在するのです。 スマホへの依存は、家族や友人と過ごす時間の大切さを見失わせるほど私たちを変えてしまいました。だからこそ、この習慣を断ち切り、時間をより賢く使