表紙画像

次世代iOS、OS Xプログラマーのための
Swiftアプリ開発入門

2015年4月10日初版第1刷発行

本書の記載内容について補足と訂正があります。
「Swiftアプリ開発入門」趣旨(本書の補足文)と正誤表はこちらを参照してください。

本書について

 本書では、Swift言語によるiPhoneやiPadのiOSアプリの開発を支援する意味で、iOSアプリの作り方を解説した。
 200~300万アプリがある中で、まだまだ、いろいろな教育分野や生活領域でコンテンツを生かしたアプリが少ないように思われる。かつては、インターネットで必要な学習教材が簡単に手に入るWebベースでの「教材・オン・デマンド」を提案した。今では、インターネットで必要な学習アプリ教材が簡単に手に入るスマートフォンベースでの「アプリ教材・オン・デマンド」を提案したい。
 本書で心がけたことは、テキストのプログラムコードをそのままキーボードから打てば、iOSアプリが楽しく作れますよだけでなく、どのように改良すれば、もっとより良いiOSアプリが開発できるか、発展できるようなコードの説明に努めた。そのために、練習問題(ほとんどはテキストやAppleのリファレンスから類推できるので解答は記載していない)を付けたので、ぜひテキストのコードを1行でもよいので、自分なりに変えて、独自のiOSアプリを開発してもらいたい。そのために、UIKitフレームワークに使われているいろいろなクラスやプロパティの説明も加えている。特に、今までWindowsベースやWebベースでのコンテンツは作ってきたが、それらをiOSアプリに改良したいときに、Swift言語でそれらのコンテンツを入れるだけでiOSアプリが作れるようになれば理想的である。

目 次

「Swiftアプリ開発入門」趣旨

 本書は、前作の「Swift言語入門」の姉妹編として、Swift言語を用いてiPhoneアプリがどのようにして開発できるかを説明した入門書である。そのために、Swift言語の基本文法については本書では説明していないので、前作を参照されたい。
 従来のiPhoneアプリの作り方は、Storyboardを使いUI部品を配置してレイアウトを設定して、そのUI部品とコードとのイベント処理設定をユーティリティ領域で関係づけていく方法が主に紹介されている。しかし、このStoryboardとイベント処理との関連がさほど明確に目に見えてこないので、コード中心にプログラムしてきたユーザにとっては、非常に不慣れな開発方法となっている。さらに以前はObjective-Cだったこともあり、ここで挫折する話をよく耳にした。
 そこで、本書では、Storyboardを使わないで、プロジェクトで自動生成されるViewController.swiftだけを編集して、ユーザが明示的にUI部品を配置し、そのUI部品のイベント処理もコードでしっかりと意識しながら記述するスタンスを取っている。つまり、プログラムの流れを自分の意思で把握しながら、iPhoneアプリを作っていこうという方針である。そのため、UI部品の配置には座標値の入力が必要になり、また、イベント処理設定も自ら行う必要がある。これを煩雑と思われるユーザは、従来のStoryboardの方法で行えばよい。しかし、おそらく、コード入力に慣れたユーザなら、プログラムの流れが自分で把握できるので、非常にコードの流れがよく分かりiPhoneアプリが作りやすいと感じるユーザも多いのではないかと考えられる。
 本書では、iPhoneアプリの開発例として使える100アプリ例を示し、基礎アプリからUI部品の全般的な作り方、グラフィックス、さらに、教育用アプリの開発事例を中心に説明している。もっとiPhoneアプリで英語でも科学や数学でも、もっと夢中に勉強できるように作成すれば、学習効果が期待できる。また、生活向上や災害に対応したiPhoneアプリがもっと多く作られれば、益々日本や世界が良くなるであろう。200~300万アプリがある中で、まだまだ、いろいろな教育分野や生活領域でコンテンツを生かしたアプリが少ないように思われる。インターネットで必要な学習アプリ教材が簡単に手に入るスマートフォンベースでの「アプリ教材・オン・デマンド」があると良いと思われる。
 特に、本書で心がけたことは、テキストのプログラムコードをそのままキーボードから打てば、iPhoneアプリが楽しく作れるだけでなく、どのように改良すれば、もっとより良いiPhoneアプリが開発できるか、発展できるようなコードの説明に努めた。そのために、練習問題を付けたので、ぜひテキストのコードを1行でもよいので、自分なりに変えて、独自のiPhoneアプリを開発してもらいたい。そのために、UIKitフレームワークに使われているいろいろなクラスやプロパティの説明も加えている。特に、今までWindowsベースやWebベースでのコンテンツは作ってきたが、それらをiPhoneアプリに改良したいときに、Swift言語でそれらのコンテンツを入れるだけでiPhoneアプリが作れるようになれば理想的である。
 iPhoneアプリの開発は容易ではないが、これほどiPhoneが世界を魅了しており、iPhoneアプリ開発には非常に奥深いものがある。Apple社の開発者たちによって長年培われたiOSフレームワークのお陰様で、簡単なコードでiPhoneの機能が取り出せて、iPhoneアプリ開発には無限の可能性がある。最後に、本書はiPhoneアプリ開発を諦めていた読者に是非読んでいただきたい。そして、Swiftコードを書いて世界を変えるアプリ開発ができる一助に、本書がなれば幸いである。

■正誤表■ 2015/3/25

本文の内容に誤りがありました。 お詫びして訂正いたします。

[1] p.91

Sw2-9のコードで6行目のsuper.viewDidLoad( )の下に、つぎのコードを追加してください。

let l = UILabel(frame: CGRectMake(10, 40, w - 20, 40))
l.font = UIFont.systemFontOfSize(CGFloat(20))
l.textColor = UIColor.blueColor( )
l.textAlignment = .Center
l.text = "UIWebViewでのHTML形式の表示"
view.addSubview(l)

[2] p.181 5行目

IMG1 → IMG1.jpg

[3] p.186 10行目

CGRectGetWidth(b.bounds)/10.0 → 0.0

[4] p.186 下から5行目

IMG → IMG.jpg

[5] p.315 下から7行目

(i) → (i).jpg

[6] p.319 下から4行目

(i) → (i).jpg

[7] p.327 下から7行目

(i) → (i).jpg

[8] p.334 下から19行目

(i) → (i).jpg

[9] p.344 1行目

(n+1) → (n+1).jpg