iPhone
デザイン
技術書

これからiPhoneアプリを作ろうと思ってる人に正月休みを使って読んでみてほしい書籍

More than 3 years have passed since last update.


はじめに

来年 2015年1月からミクシィでAndroid/iOSアプリの勉強会を開こうと思い、先日説明会を開いたのですが、会の中で行なったアンケートの中で、入門書を教えてほしいという声が結構あったので、最近の状況に合ったものをスキルレベル別にセレクトしてみようと思いました。

実際、私の持論としては、本を読むよりも最新の公式リファレンス(もちろん英語です)に当たるのが一番の成長の近道ですが、お守りがわりに本を読みたい気持もわからなくはないので、あまり多くはないですが、推薦してみます。

ちなみにこの記事を書いている2014/12/27時点でのXcodeはVersion 6.1.1、iOSは8.1.2です。iOS,AndroidはOSのアップデートの度に利用できるライブラリの仕様などが変わるので、古い本はなるべく避けるように心掛けました。みなさんもアプリ関係の書籍を選ぶ時は対応OSやXcodeのバージョンなどには十分注意してください。最新のバージョンの1つ前のものくらいであればあまり問題はないと思います。


全レベル共通


デザインの教室 手を動かして学ぶデザイントレーニング

いきなりデザイン書かよ、と思われるかもしれませんが、アプリの開発を実際に行うと、様々な技術的なスキルは必要にはなるのですが、意外と抜けているのが、デザインスキルです。

デザインスキルなんて、エンジニアには必要ないと思う人もいるかもしれませんが、デザイナーさんと協力する場合であっても一人で開発する場合であっても、デザインに関する知識、経験というのは役に立ちます。

実際に自分だけでアプリを作ってみるとわかるのですが、画面のデザイン、遷移の仕方、起動してから、目的を達成するまでのイメージを具体的に形にするのは思ったよりも大変です。

本書はスマフォアプリに特化したものではないのですが、普遍的なテーマで実践を交えて基礎を学習する事ができますので、今までデザインについてのあれこれを敬遠してきた方は正月中に是非試してみてください。


フラットデザインの基本ルール Webクリエイティブ&アプリの新しい考え方。

こちらも同じく佐藤好彦さんの本ですが、イラレやるまでは、、、と思った方はせめて今時のスマートフォンアプリのデザインについて勉強してみてはどうでしょう。iOS7時代のものなので、多少古くはなっているのですが、iOS8やAndroid Lollipop時代でも本質は古びてはいないと思います。


UIデザインの教科書 マルチデバイス時代のサイト設計-アーキテクチャからUXまで

もうひとつ、こちらはアプリに特化しているわけではないのですが、マルチデバイス時代のWeb/アプリのデザインの考え方について、大変参考になります。PC向けのGUIアプリしか経験の無い人にはわかりやすいかと思います。

また、普段業務でデザイナーさんとうまくコミュニケーションできずにモヤモヤしているエンジニアの方や、古いシステムのスマートフォン対応を迫られているご担当の方は是非勉強してみてはいかがでしょうか。


プログラミング初心者向け


ズバわかり! プログラミング Objective-C iPhoneアプリ開発 スタートブック Xcode5.1+iOS7.1対応

よく聞かれて困るのが、プログラミング初心者がiPhoneアプリ開発始めるにあたって、おすすめの本を教えてくださいという質問です。なぜかと言うと私がiPhoneアプリを始めた時はすでにプログラミング初心者ではなかったですし、iPhoneOS2か3とかの頃なので、iPhoneアプリ開発に関する書籍もなく、英語の公式リファレンスだけを頼りに勉強していたからです。

みんながみんなそれが出来るわけでもないので、新宿紀伊国屋書店で頑張って探しましたが、まあ、本書が精一杯親切に書かれた入門書なのではないかと思います。

「selfって何?」、「なんで、*って付いたり付かなかったりするの?」みたいな初歩的な疑問についての解説もあり、とても丁寧なのですが、500ページの入門書でオブジェクトやポインタについて、初心者に説明するのって無理があるよね、っていう気持ちは押し殺して推薦致します!というか、このくらい親切な本から手を付けてみて、何とか最後まで進む事が出来れば、エンジニアとしてはやっていける気がするので、もし無理だったら厳しい気はするのですが、個別に相談に乗る事はできると思います。


初級向け


最新iOSプログラミング徹底解説

プログラミング経験者で、iOS初心者の方はここらへんから始めるのがちょうど良いかと思います。内容も割と現場目線で、実践で必要になりそうなところはしっかりめに解説されているので、バランスの取れた解説書だと思います。


UIKit徹底解説 iOSユーザーインターフェイスの開発

Web系など、他分野からの入門になると、アプリの画面、レイアウトの根幹を担う、UIKitについての知識が曖昧だと、その後の学習でも効率が悪くなってしまいがちなので、UIKitについてはまんべんなく勉強してみると良いと思います。

UIKit意外にも、CoreDataやCoreAudioなど、用途に応じた様々なライブラリセットがあるので、具体的に作りたいアプリのアイデアがある方は用途に特化した書籍を読んでみると良いと思います。


中級向け


iOSデバッグ&最適化技法―for iPad/iPhone

ひととおり作りたいものが作れるようになった時にぶち当たる壁が、「アプリが重い」「クラッシュ多発」「ストアレビューがほぼクレーム」などだと重います。そいういう方はベテランエンジニアまで、あともう少し。メモリ管理やパフォーマンスチューニングについて、一定のメソッドに基いて、解決するという事を一度学習してみると良いと思います。

swift時代に置いてもメモリ管理の仕組みは依然としてリファレンスカウンタ方式なので、言語仕様なども含め知っていて損はないと思います。


番外編

以下はアプリ関係なく、副読本的な位置づけで推薦します。

というのも、勉強会参加者アンケートでは、より良い品質のアプリを作りたいという声もそれなりにあったので、いくつかアプリの品質についての考え方を身につけるための書籍を紹介したいと思います。


リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

この本を読んで、「当たり前の事ばっか書いてあるな」と思ったら一人前だと思います。逆に勉強になるなと思った方は両書に巡り会えて良かったですね!と言って上げたい。というようなまさしく試金石となる本です。

普段コードを書く場面が職場であったり、ひとりであったりするかもしれませんが、良いコードって、こうだよね、と言える基準となる価値観を持つ事が重要だと思います。ベテランエンジニアだからと言って、いつもスラスラと自信満々で完璧なコードを書いているわけではありません。コードレビューやペアプロでより良いコードを書こうという態度が結果として良いプロダクトを生み出します。

普段あまりコードレビューやディスカッションをする機会の無い方は、価値観を身につけるための1冊として読んでみてはいかがでしょうか。

ちなみに1月からの勉強会では後半の方でコードレビューについても触れますので、その予習としても最適だと思います。


レガシーコード改善ガイド (Object Oriented SELECTION)

念のためですが、私はテスト至上主義者ではありません。ただ、テストを書けないのとテストを書かないのとでは大違いです。テストを書いた経験のあるエンジニアとテストを書いた経験のないエンジニアでは設計からして、まるで違ってしまいます。

勉強会の後半の回では多少テストについて触れる回があると思いますが、その前に、なぜテストを書くのか、テストを書くと、どういう良い事があるのか、について予習してみては如何でしょうか。