koogawa blog

iOS、Android、foursquareに関する話題

【書評】本気ではじめるiPhoneアプリ作り(ヤフー黒帯シリーズ)

ヤフー株式会社 西 磨翁 様より献本頂きました。ありがとうございます。


2016.12.12追記:Xcode 8 & Swift 3改訂版が発売されました!これからアプリ開発をはじめる方はこちらがオススメです。


Xcode 7 & Swift 2 対応版はこちら

本気ではじめるiPhoneアプリ作り Xcode 7.x+Swift 2.x対応 黒帯エンジニアがしっかり教える基本テクニック (ヤフー黒帯シリーズ)

ヤフー黒帯シリーズとは

ヤフーには 黒帯 という制度があるようです。

ヤフー株式会社には、技術や制作の分野において専門性に優れたエキスパート人財を「黒帯」に認定し、 その活動を手厚く支援する黒帯制度があります。 「ある分野に突出した知識とスキルを持っているその分野の第一人者」が黒帯として任命され、 褒賞金と活動予算が付与されます。 それぞれの分野において、社内外への情報発信を積極的に行うとともに、 社内外の専門技能の発展に寄与します。

本書は「黒帯」である西さんが書かれた本であり、これからアプリ作りを始めようとしている人がApp Storeに公開するまでを 爆速 で支援してくれる本になります。

この本をおすすめしたい方

  • プログラミングを少しかじったことがあるけど、iOSアプリの開発は未経験
  • 古くからiOSアプリを開発しているけど、実はAuto LayoutやSize Classesがよくわかっていない
  • iOS 9から追加されたスタックビューの使い方をちゃんと学びたい

Apple IDすらもっていない」という方でも、この本を読めば最終的にアプリをApp Storeに公開するところまでできるようになります。

各章の内容

感想も交えて順に解説していきたいと思います。

Chapter1 アプリ開発の準備

この章ではApple IDを取得するところから、開発ツールである Xcode を用いて、実機テストをするところまで詳しく解説されています。

実機テストをするための設定は初心者がとても躓きやすいところなので、図を交えながらの丁寧な解説は嬉しいですね。

また、いきなり開発に入るのではなく、アプリ開発の主な流れについて説明があるのは良いと思いました。

  • 企画
  • 制作
  • 開発
  • テスト
  • リリース
  • フィードバック対応

Chapter2 Swiftプログラミングの基本

この章ではプログラミング言語 Swift の基本的な書き方を Playground というツールを用いて学習していきます。プログラミングはちょっとかじったことがあるけど、Swiftは全く初めて、という方に最適な進め方だと思います。最終的にはXcodeで簡単なプロジェクトを作り、ビルドするところまでできるようになります。

また、章末のコラムとして、ヤフーさんがiOSアプリを開発するプログラミング言語として Objective-C から Swift へ移行した際の話についても触れられています。詳細はヤフーTech Blogに寄稿されています。

Chapter3 iOSにはどんな部品があるか

この章ではiOSアプリの基本的な画面構成、各部品について解説されています。

最初に「ビューとビューコントローラの関係」について触れられています。実は私自身もアプリ開発を始めた頃はビューとビューコントローラの違いがなかなか理解できなかった記憶があるので、「なぜビューコントローラが必要なのか」の解説はとても重要だと思いました。

章の後半ではボタン、ラベル、画像などの各部品について解説があり、iOSアプリ開発に必要な部品をざっと把握することができます。

Chapter4 アプリの基本をマスターしよう

この章からは「割引計算アプリ」を作りながら、本格的なiOSアプリの開発に入っていきます。

Storyboard という仕組みを用いて開発を進めていく形式で、もちろん最近のiOSアプリ開発における必須知識である Auto Layout の解説もあります。

また、Xcode バージョン6から登場した Size Classes の仕組みについてもしっかり説明があります。昔からiOSアプリを開発してるけど、Storyboardの画面下部に表示される 「wAny」「hAny」という文字の意味が実はよくわかっていない という人にもおすすめです。

Chapter5 永続的なデータを扱う

この章では、実用的なアプリを作る上で重要な永続化(アプリを終了してもデータを保持できるようにすること)について解説されています。

iOSアプリでの永続化手段としては

  • NSUserDefaults
  • Core Data
  • iCloud
  • Keychain

などがありますが、ここではそれぞれの特徴や、実際にデータが保存される場所について解説されています。

後半では応用としてToDoリストアプリを作って行きます。ここで UITableView が登場するのですが、実は ここがとても重要 だと思っています。iOSアプリを開発したことがある方ならわかって頂けると思いますが、実用的なアプリを作る上で、テーブルビューの理解は必要不可欠と言っても過言ではないでしょう。

この章ではコラムとして、「テーブルビューを滑らかにスクロールするにはどうしたらよいか」についても触れられていて、素晴らしいと思いました。

Chapter6 サウンドとアニメーションの処理

この章ではサウンドやアニメーション機能を利用して、よりインタラクティブなアプリを作っていきます。

iOSアプリの場合、開発者が意識しなくともOS側で自動的にアニメーションを付加してくれるため(暗黙的なアニメーション)、それなりにインタラクティブなアプリが出来上がります。しかし、さらに凝ったアニメーションを実現するためには、開発者が明示的にアニメーションを実装する必要があります(例えばイイネ!ボタンをタップした時のアクションなど)。本章ではそういった明示的なアニメーションの実装方法についても詳しく解説されています。

また、後半で作成するクイズアプリでは、iOS 9から登場した UIStackView が さり気なく使われています。実は UIStackView の使い方がよくわかっていない、という方にもおすすめです。

Chapter7 通信できるアプリを作ろう

この章からより高度な内容になっていきますが、一番重要な章でもあります。と言うのも、App Storeに公開されている人気アプリのほとんどがネットワーク上のデータと連携するものだからです。

本章では NSURLSession という通信用のクラスを用い、ヤフーショッピングの商品を検索できるアプリを作っていきます。(2016.12.12 追記:改訂版ではSwift 3 の URLSession を使用)

初学者が躓くであろうATS(App Transport Security)についてもカバーされているので、安心して学習を進められると思います。

Chapter8 アプリの公開に向けて

この章ではいよいよアプリをApp Storeに登録していきます。

アプリアイコンの作成にはグラフィックツールである「Sketch 3」が使われています。Sketchの使い方までカバーされているのはすごいですね。

後半ではアプリ申請に必要な情報(アプリ名、説明文、Bundle ID等)や、実際の手順について詳しく解説されています。とくに証明書まわりの作業は複雑であり、初心者がもっともハマりやすいところなので、この章は必読でしょう。

また、万が一アプリ審査に落ちた場合(リジェクト)の心構えについても触れられていて、著者の優しさを感じました。*1

おわりに

「本気ではじめるiPhoneアプリ作り」というタイトルではありますが、入門者から中級者層まで広くカバーしている一冊だと思いました。私自身、実はiOS 9から追加されたスタックビューの概念をよく理解していなかったので、とても勉強になりました。

また、「初代ヤフオク!アプリが1週間でできた秘話」など、ヤフーならではのコラムが非常に面白いと感じました。

2016年、本気でiPhoneアプリの開発を始めたい方にぜひおすすめしたい一冊です。

※本書に出てくるサンプルコードはもちろん書籍サイトからダウンロードできます

おまけ

「黒帯」というだけあって、章ごとに瓦を一枚ずつ割っていくのが印象的でした。

f:id:koogawa:20160227175910p:plain

*1:実際にとても親切な方です