【2014/11/6 既存の記事との前後関係を補足】
大変遅ればせながら、本記事の公開時と較べてSwiftに関連する記事が充実して参りましたので、
本ブログにて公開している他のSwiftの記事との間の前後関係について、補足説明を記載致します。
まず最初に、
本記事にて紹介している3冊のSwiftのプログラミング書籍について後日私よりレビュー記事を公開しましたので、下記にそれらの記事のリンクをまとめました。
2014/10/23発売 布留川英一 著「iPhone/iPadプログラミングバイブル Swift/iOS8/Xcode6対応」
2014/10/24発売 木下誠 著「たのしいSwiftプログラミング」
2014/10/31発売 森巧尚 著「Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】」
最後に、
昨月10月の3冊に限らず今年の12月には新たに2冊のSwift本が発売になりますので、それらの紹介記事のリンクを記します。
【第2弾】12月にもSwiftのプログラミング書籍が発売されます!
【2014/11/6 追記終了】
【2014/11/14 追記】
第3弾の記事を掲載しました。
今月下旬から同月末にかけて、
以下3冊のSwiftプログラミングの書籍が発売になります。
これらの発売日ですが、
また、出版社による紹介ページは次の通りです。
同じく左から順に紹介します。
タイトル:iPhone/iPadプログラミングバイブル Swift/iOS8/Xcode6対応
出版社 :ソシム株式会社
発売日 :2014/10/23
【2014/10/17 出版社の公式ページを記載】
URL :http://www.socym.co.jp/book/952
出版社 :ビー・エヌ・エヌ新社
発売日 :2014/10/24
URL :http://www.bnn.co.jp/books/7132/
タイトル:Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】
出版社 :マイナビBOOKS
発売日 :2014/10/31
URL :https://book.mynavi.jp/ec/products/detail/id=28840
私はこういったアップル系のプログラミング書籍を普段からチェックしているのですが、
今年は新プログラミング言語としてSwiftが発表されたこともあり、各社Objective-CからSwiftへ、既存シリーズの続刊という立ち位置をキープしたままメインとなるプログラミング言語を変えてきているように感じました。
特に左と右のシリーズついては、
今まで過去に新しいiOSやXcode、iPhone/iPadが発表される度に、年に一度は刷新されていましたので、
今回からSwiftへ内容が完全移行するのかな?と感じました。
このことについて私個人としてましては、
まだまだObjective-Cは現役であると思っていたため少々複雑な気分でもあります。(´・ω・`)
【2014/10/27 記述を修正】
次に真ん中の本ですが、こちらは前身として同著者による「たのしいCocoaプログラミング」があります。
(Mac OS X 10.5 Leopardに対応しているかにより、新旧の2つ版が存在します)
【2014/10/27 ここにて修正完了】
そして今回登場する本では、
なんとYouTubeにおいて著者自らが書籍と連動した解説動画を公開すると謳っています!
図や文章を用いた書面のみの力で解説するのではなく、実際のプログラミングにおける操作手順を動画で見られるそうですので、
上記3冊の中では最も初心者にオススメできるかもしれません。
ちなみに私管理人ですが、既に上の3冊全てを注文しております。(笑)
実際に届きましたら、以前のObjective-C主体の書面からどのようにSwiftへ変わったのかについても含め、レビューしたいと思います!
・Swiftのバージョン遍歴
さて、この新プログラミング言語である「Swift」ですが、
WWDC 2014での初お披露目から以降頻繁に言語仕様の改訂が繰り返され、
既に先日の9日(アメリカ現地時間)には、一般的に製品版と同義であるとされるGM版がバージョン1.0としてリリースされました。
このSwift 1.0は、
現在Mac App Storeで配信されているXcodeの最新版であるバージョン6.0.1に含まれているため、
開発者登録をされていない方であっても触れられる段階まで来ています。
↑
アプリの説明のスクリーンショットにご注目下さい。
以前はObjective-Cで開発している様子が写っていましたが、
現在はこのようにSwiftでの開発風景が採用されています。
また「バージョン1.0」と評しましたように、
Swiftはプログラミング言語という一種のソフトウェアであることもあり、GMに到達した現在も今後バージョンアップによる仕様変更が行われることが決定しています。
(決定しているも何も、WWDC 14で満を持して迎えられたばかりなのですから今後の展開があるのは当然でしょう。)
事実、
アップルが開設したSwiftの公式ブログ(英語のみ)には、そういった旨がはっきりと記述されています。
↑
原文(オリジナル)
同部分に対する、Google Chromeによる機械翻訳の結果
↓
そしてこの仕様変更こそが、
本記事でとりあげたプログラミング書籍としての面から見て、最も気にすべき点に相当します。
・プログラムの実行環境における「互換性問題」
こういった方面に強い方であれば既にお気づきかもしれませんが、
本投稿では最初から丁寧に説明していきたいと思います。
当たり前の事実を改めて述べることになりますが、
紙媒体である書籍はデジタル媒体とは異なり、一度刊行された内容をアップデートして書き換えることは物理的に不可能です。
このことを踏まえますと、
言語仕様が短期間で頻繁に改訂されているSwiftのプログラミング書籍を刊行する場合、どういった懸念が想定されるでしょうか?
詳しくは後述しますが、
実はSwiftのプログラミング書籍は今回発売になるものが初めてではなく、現時点でも既に何冊か発売されています。
このような書籍は、
基本的に発売当時における最新の版の言語仕様を前提に書かれているため、
当時の最新が今日の時点での最新と異なってしまった場合、必然的にその内容が古くなることは避けられません。
具体的に「どのように古くなるか」と言いますと、
当時のSwiftに採用されていた文法が現在のSwiftではサポートされなくなったことから、
結果的に「記載されているサンプルコード通りに入力したソースコードが、文法エラーでコンパイルできない」といった事態が起こりえます。
このようなことは実際に珍しいことではなく、
さらには紙媒体に限らずWeb(例えば個人ブログ)で紹介されているコードであっても、それがどのバージョンのSwift, Xcode, iOS, OS Xに向けて書かれているかをキチンと判別できない限り、私のようなプログラマからするとこういった互換性問題を引き起こす可能性があるのです。
この問題について突き詰めていくと、
最終的には「動作対象としている時期が異なる」というただ一点がずれているだけであり、結果的にどちらも正しいものであることには違いは無いのですから、
私個人としては仕方がないことであると考えます。
・プログラミング書籍を制作する会社から見た「互換性問題」
ただそうは言うものの、
これはプログラミング書籍を制作する会社からすると死活問題なのです。
このことを説明するにあたり、
まずは「なぜプログラミング書籍を購入するのか?」という、私達一般消費者から見た購入理由を考えてみましょう!∩(*・∀・*)∩
この理由ですが、
本投稿では一般的に考えられるバリエーションを列挙するのではなく、
今回は便宜上の理由として「プログラミングという分野について、体系的にまとまった正確な情報が欲しいから」という、私主体の理由に仮定して話を進めたいと思います。
私もプログラミング書籍を購入する人間の一人であり、
同じアップル系のプログラミング書籍であっても、その本が対象とする分野によって私が求める条件も変わってきます。
ただ必ず言えることは、そこに記載されている情報に対し正確性を求めているということです。
これは分野をプログラミング書籍に限らず、さらには私以外の他の方から見ても言えることでしょう。
では次に、この正確性という面について、
上述したプログラムの実行環境における互換性問題と照らし合わせて考えてみます。
そうしますと本投稿にて紹介しているように、
Swiftのプログラミング書籍が現在のタイミングで一気に3冊も発売されるというラッシュを迎えることについても納得がいく筈です。
この理由ですが、あくまで私個人の推測ではあるものの、
「Swiftのバージョンが1.0(GM)に達したから」と見て間違いないと思っています。
逆に1.0に達する前に発売するとなると、
言語仕様の面から見て最新の版との変更点が多くなることは、1.0に達してから発売する場合と比べて明らかであるからです。
この場合、ユーザに対する読者サポートにおいて費やすコストが必然的に増えることになるでしょう。
このことを説明するための実際の例としまして、
既に発売されている下記の2冊を紹介したいと思います。
これらは誤字・脱字といった人為的ミスに対し、下記の読者サポートにて正誤表を公開しています。
それと同時に、結果的に発売後に行われることになったSwiftそのものの言語仕様の改訂に伴うサポートについては、
発売日の関係から左で紹介する書籍は対応していますが、
右で紹介する書籍においては、今のところそのような記述は見つけられません。
これについては単に読者からの報告が寄せられていないだけの場合も考えられますが、
Swiftが1.0に到達した後に発売したこともあり、言語仕様に起因するサポートの必要が本当にないのかもしれません。
タイトル:はじめてのSwiftプログラミング
出版社 :工学社発売日 :2014/8/23
URL :http://www.kohgakusha.co.jp/support/swift/index.html
タイトル:次世代iOS、OS XプログラマーのためのSwift言語入門
出版社 :カットシステム発売日 :2014/9/19
URL :http://www.cutt.co.jp/book/978-4-87783-356-5.html
サポート:http://www.cutt.co.jp/book/978-4-87783-356-5.html#teisei
ここで話が逸れますが、この2冊については私も購入しています。
これらの内容を最新のSwift 1.0で活用する際に、言語仕様の改訂における対応が必要かどうかについて検証した結果を、私の方から今後投稿できましたらと思っています。
上記2冊の例はいかがでしたでしょうか?
冒頭で紹介した今後発売になる3冊については、
どれも「iOS 8およびXcode 6に対応する」といったニュアンスが、出版社のウェブページや書籍のタイトルから汲み取れますので、問題なくSwift 1.0に対応していると思われます。
またそもそもの前提として、
「SwiftでiOSアプリを作成する」という書籍の趣旨から考えるに、こちらからもSwift 1.0に対応していると見て間違いないでしょう。
(上のリンク先のページに記載されています通り、
厳密に言うとSwiftには「Swift for iOS」と「Swift for OS X」の2種類があります。
説明がややこしくなると思ったため本投稿ではここまで敢えて言及しませんでしたが、
私がここまで説明してきたのは全て前者のSwift for iOSの方になります。
Swift for iOSは、iOS 8およびXcode 6のリリースに伴い正式バージョンがリリースされ ましたので、
おそらくSwift for OS Xについては、OS X 10.10 YosemiteおよびXcode 6.1のリリースと同時に正式バージョンになると思われます。
なお現状ではXcode 6.1のGM版が既にリリースされていますので、このページからダウンロードし用いることで正式リリース前にSwift for OS Xを試用することが可能です。)
※現状では、開発者登録をされている方のみXcode 6.1のGM版をダウンロードすることができます。
・このタイミングで、Swiftのプログラミング書籍が多数発売される理由
それでは、今までのまとめに入ります。
一言で表すと、「プログラミング書籍の制作会社としては、今まで言語仕様が発展途上であったSwiftの書籍を、一体どのタイミングで発売するのが最も適切であるか分からなかった」というのが真相と言っていいでしょう。
おそらくはSwiftの正式版がリリースされるのを見越して各社は事前に編集作業を進めており、先月の9月に正式版になったことから大急ぎで内容をこれに準拠するものに編集し、結果的に10月に一斉に発売に踏み切ったのであると思われます。
このように今後発売になる3冊については、
正式版に準拠したものであることから以前の書籍と比較し、書いてある内容をそのまま写しても文法エラーでコンパイルできない等、そういった初歩的な点で躓くことは少なくなっていると予想できます。
今まで言語仕様が発展途上である点から手を出せずに悩んでいた方に対し、
Swiftのプログラミング書籍を購入するターニングポイントになる可能性は高いでしょう。
・SwiftとObjective-Cの共存について
今年6月のWWDCにてSwiftが発表になってから、
今後Objective-Cを置き換える技術として徐々にSwiftが広まっていくとは予想してはいたものの、私としてはまさか半年も立たないうちにこれほどの早さで広がるとは思っていませんでした。
また日本時間の今週17日(金)には、OS X Yosemiteの正式版がリリースされることが有力視されていますので、この出来事がきっかけで更にSwiftの普及が加速するでしょう。
いつかはSwiftがObjective-Cを完全に置き換える(リプレイスする)と仮定しても、
それまでは少なくとも数年はかかると思っていましたが、少なくとも今年中の動きだけを見ても想像を超える早さでシフトしているように感じます。
このペースを鑑みるに、近い将来にはSwiftの方がObjective-Cよりもシェアが高くなることも十分考えられると私は思っています。
ただし、SwiftがObjective-Cに対するすべての代替になるかというと、そんなことはない筈です。
例えば後方互換の意味では、
Swiftは現状においてiOS 8およびOS X 10.10の環境でしか動かせないため、それより前のiOS 7やOS X 10.9 Mavericksといった環境では、まだまだ現役で出番があると言っていいでしょう。
特に最近ではiOS 8の挙動が芳しくないこともあり、アップデートせずiOS 7の環境をキープしている方も多いですし、
開発者としての立場からすると、SwiftとObjective-Cはどちらかのみをマスターしておけば良いという時代ではまだないように私は思います。
このことについては、実際にプログラムを記述するプログラマの視点からも言えます。
Swiftの前身となったObjective-Cの言語仕様が発展してきた遍歴を見ると、
参照カウンタ方式で書かれたプログラムをARC方式に変換したり、
モダンObjective-Cシンタックスに対応していない旧来の書式のソースコードを、この文法に変換するなど、
こういった自動変換を行う仕組みが、その統合開発環境(IDE)であるXcodeに新機能として組み込まれたという経緯があります。
ただSwiftについて言うと、
現状ではこういった自動変換を行う仕組みがXcodeに備わっていません。
つまり、今現在ではObjective-Cで書かれたプログラムをSwiftで書かれたプログラムに自動変換する仕組みはないため、
現状においてこれを実現するにはプログラマが手作業でSwiftに書き換えるしかありません。
こういったリプレイスの面から見ても、Objective-Cに理解のあるプログラマが求められると言えます。
・正式版となったSwiftにおける、今後の展開について
Swift for iOSは既に正式版になったこともあり、
以前よりは頻繁に極端な仕様変更が行われることはないと思いますが、絶対にあり得ないかと聞かれるとそんなことは誰にも分かりません。
これから発売になるSwiftの書籍を購入したとしても、今後も多少は言語仕様の改訂における対応が必要になるかもしれないという事態については、今でも変わらないということです。
このような事態を受け、
ここからは紙ベースの書籍だけではなく、電子書籍についても紹介します。
本投稿ではSwiftのプログラミング書籍ということで、
今まで全て紙ベースの書籍を紹介してきましたが、中には電子書籍としてリリースされているものもあります。
タイトル:先取り!Swift
出版社 :技術評論社発売日 :2014/6/19
URL :http://gihyo.jp/news/nr/2014/06/1901
タイトル:Swift離陸ガイド
出版社 :有限会社 快技庵(かいぎあん)発売日 :2014/6/25
URL :http://www.cutt.co.jp/book/978-4-87783-356-5.html
iBooks :
この2冊は電子書籍という媒体の特性も相まり、Swiftが発表になってからとにかく早く発売されています。
どちらも600円という安価で購入できますので、
紙の書籍を買うのに踏ん切りが付かないという方は、まずはKindleまたはiBooksの無料サンプルだけでもご覧になってみてはいかがでしょうか?
私はどちらも購入していますが、
どちらの方がオススメかと聞かれますと、私個人としては迷わず右の方をオススメします。
なぜなら左は6/19に発売になってから一度も内容がアップデートされておらず、
お世辞にもSwiftの正式版に対応しているとは言えないでしょう。
これは、出版社のサイトやAmazonに寄せられているレビューからも分かります。
↑
私はKindleのハードとアプリを持っていないこともあり、
技術評論社のサイトからEPUB版を購入しました。
発売されてから一度も内容がアップデートされていないことが分かります。
続いて右ですが、
既に最新のSwiftに対応していると明記されており、過去の対応事例から見ても安心度が高いです。
また出版社のサイトに記載されています通り、
電子書籍であることから一度購入すると無料で最新版にアップデートできます。
↑
こちらについてはKindleからだけではなく、iBooks Storeからも購入できます。
電子書籍であることもあり、
電子書籍であることもあり、
iPhoneなどに最新版をダウンロードすることで常に最新の情報が得られます。
この2冊の電子書籍については、いかが思われましたでしょうか?
プログラミング書籍という分野から見ると、紙の書籍では対応できない情報のアップデートが行えることは大きな利点ですし、
何より言語仕様が頻繁に改定されるとなると、電子書籍の方が安心できる面があると思います。
さらには机に向かっている時だけでなく、スキマ時間などにもスマホやタブレットから学習することが可能であることも大きいです。
・管理人におけるSwiftへの向き合い方
私はObjective-Cについては、GUIのアプリケーションを作れる程度には理解できていると自己評価しているのですが、
Swiftについては未だGUIベースのアプリケーションを作成したことがありません。
Objective-CでGUIアプリケーションを開発する際に活用する「アクション」および「アウトレット」の扱い方について、
Swiftではどのように操作すれば使えるのか分からなかったことが最大の要因です。
これについては、
冒頭で紹介した書籍の著者自らが、実際のSwiftプログラミングの様子を動画として公開することに加え、
さらにはSwiftの公式ブログにて、GUIアプリケーション作成のチュートリアルが動画付きで投稿されたという、2つのまたとないチャンスに恵まれましたので、
これらを参考に再度Swiftの理解に挑みたいと思っています。
最後に、ここまで紹介する機会がなかった書籍を1冊紹介したいと思います。
こちらはSwiftの名を関してこそいないものの、
実際の内容ではSwiftのサンプルコードも掲載されています。
ただし、書籍名に「iOS 7.1対応版」とあることからも分かるように、
Swiftで作成したプログラムをiOS 8で動かすことを趣旨とした本ではありません。
Swiftが目的で読まれる方は、あくまでSwiftの参考程度として読むべきでしょう。
タイトル:やさしくはじめるiPhoneアプリ開発の学校 【iOS 7.1対応版】
出版社 :マイナビBOOKS
発売日 :2014/7/31
本投稿は、以上をもちまして終えさせて頂きます。
少しでもSwiftについて関心を持っていただけたのであれば嬉しいです(*^^*)
0 件のコメント:
コメントを投稿