iPhone SDKの教科書

iOSBook Icon
【お知らせ】iOS 4とXcode 4に完全対応した電子書籍「iOSの教科書」を刊行しました。今後は同書をご利用いただければ幸いです。(2011/07/20)

【お知らせ】筆者による「iPhone SDKの教科書」サポート・サイト(本サイト)の更新を終了します。今後は出版社のサポートをご利用ください。(2011/07/08)

【お知らせ】本書に掲載したサンプル・コードはiOS SDK 4.0やiPhone 4で、そのまま利用できます。(2010/07/28)
【お知らせ】本書に掲載したサンプル・コードはiPhone SDK 3.0やiPhone 3GSで、そのまま利用できます。(2009/06/11)

iPhoneアプリケーション開発の第一人者が指導するiPhone SDKの教科書です。iPhoneアプリケーションの開発に初めて取り組む人を対象に、アイディアをアプリケーションに反映するための考え方や制作プロセスについて、具体的な事例を使って解説します。

iPhone SDKのインストールから、プログラミングに使用するC言語やObjective-Cの概要を説明し、実際にカウンターやゲームなどのアプリケーションを作成する手法までを網羅。タッチスクリーン機能やアニメーション、乱数によるランダム移動、加速度センサー、効果音の再生、ビューアイテムの作成、ローカライズ方法など、アイデアを実現するさまざまなテクニックを学ぶことができます。

iphone-sdk-textbook

書名:iPhone SDKの教科書
副題:Cocoa Touchプログラミング、最初の一歩
著者:赤松正行
仕様:B5変判、1色、376ページ
価格:2940円(税込)(本体2800円)
発売:2009年3月19日
発行:秀和システム
ISBN-10: 4798022322
ISBN-13: 978-4798022321

目次
正誤表(第1刷)
正誤表(第2刷)
ダウンロード
出版社の書籍紹介ページ
インターネット書店一括検索

ipst0-5-in-app-store

※本書に掲載したサンプル・アプリケーションはApp Storeからダウンロードすることができます。赤松正行のすべてのアプリケーションが表示されますので、その中でiPST#で始まる名称のアプリケーションが本書に掲載したサンプル・アプリケーションです。

93 thoughts on “iPhone SDKの教科書

  1. no name

    イラストレーターのファイルがダウンロードできるとうれしいです。

    サンプル開いたらpngだけだったので残念。

  2. aka 投稿作成者

    なるほど、です。ただ、イラレ・ファイルはデザイナーさんに著作権がありますので、公開されるか否か問い合わせてみます。

  3. aka 投稿作成者

    デザイナーさんの承諾を得て、ダウンロードのページで公開しました。よろしくお願いします。

  4. ピンバック: iPhone SDK の教科書 赤松正行

  5. 初心者

    この本を参考に勉強中の初心者です。

    そこで、質問なのですが
    ①サンプルのような画像を作るには
    どのようなソフトが必要なのでしょうか。
    また、
    ②画面上を動くモノ(例えば蟻が歩くなど)を
    作るのに必要なソフトって何になりますか。

    画像自体は他の方が作成しているようですが
    分かる範囲で教えて頂けると助かります。

  6. 赤松 正行 投稿作成者

    サンプルのデザイナーさんは画像作成にIllustratorを、最終調整にPhotoshopを使われています。(2)のアニメーションもできます。難点は高価なことと、高機能過ぎて使いにくいかもですね。

  7. ピンバック: IPHONEWATCHERS.COM » Blog Archive » iPST#0-Counter

  8. 勉強中

    この本を参考に勉強中の初心者です。
    質問がありますがページ203の手順③をしたいですが
    私のものでは見つけませんでした。
    「Apple Iphone OS 2.2.1」で試していますが

    手順③のキー「UIStatusBarHidden」という項目はないです。

    ちなみにぺーじ186の手順⑥で「UIPrerenderedIcon」という項目もないです。

    どうすれば良いですか?
    教えていただきたいです。

    よろしくお願いいたします。
    以上。

  9. 赤松 正行 投稿作成者

    キーボードでタイプして入力してください。メニューにはありません。単に「入力してください」と書いているので、分かりにくかったかもしれませんね。次に改訂する機会があれば、工夫したいと思います。

  10. kanemi

    一日での早く自分でアプリを作って参加したがっていた、
    初心者の私にはこの書籍は本当に救世主でした。
    3.0に対応していなければ、アップルストアで公開できないとメールが来ましたが、
    2.0で作り続けていると駄目なんでしょうか?
    対応さくあれば教えてください。

    3.0対応の書籍でれば購入希望しています。

  11. Masayuki Akamatsu 投稿作成者

    現時点ではSDK 2.xで作って、OS 3.0Betaで動作確認すれば、いいんじゃないんですか?(間違ってたらゴメン)

  12. ピンバック: akalogue » 辻褄時計、リリース

  13. momo

    「iPhone SDKの教科書」の初心者にもわかりやすい説明が気に入り、昨日さっそく買って読んでいます。

    質問なのですが、
    P.32の図3-4「HelloWorld」フォルダ内容の場所が見つからないのですが、
    「HelloWorld」は教科書にあるようにAppleが提供しているサンプル・コードとはいえ、
    自分で「HelloWorld」という名前で新規プロジェクトを作成してから、生成されるものでしょうか?

    もしその場合、教科書ではどのテンプレートを選択すればよいのかなどの手順は省略されておりますが、
    ふさわしいテンプレートは「Window-Based Application」でよろしいでしょうか。

  14. momo

    ありがとうございます。無事ダウンロードできました。

  15. ピンバック: 簡単GameKit-P2P « akalogue

  16. KiD

    貴書、大変参考になりました。内容、実用性、デザイン等すべてにおいて満足しております。有り難うございました。

    さて、一点ご質問がございます。

    第2部の実機テストは貴書の最重要部分の1つかと思われます。本家サイトの Program Portal の説明に従い、プロビジョニングファイル作成やその他必須作業を3回行ったのですが毎回下記のエラーが出て先に進みません。

    Forumでも質問をポストし有効な回答を待っている状況ですが、とにかく他の読者の方にも私と同じような問題に直面して困っているかたがいるのではないかと拝察いたします。

    もし、なにかお気づきの点やご助言等がございましたらご教授いただきたく、よろしくお願い致します。

    1. Error
    Message
    CodeSign error: code signing is required for product type ‘Application’ in SDK ‘Device – iPhone OS 3.1.2’
    Place
    Line Location Tool: 0

    2. Other Info
    iPhone OS 3.1.2 (7D11)
    Mac OS X 10.5.8
    Language: Japanese

  17. Masayuki Akamatsu 投稿作成者

    Provisioning等はNDAの関係で詳しく説明できないので申し訳ないです。P.21からやP.190からの手順を再確認していただいているとは思いますが、エラー・メッセージは正しいProvisioning Fileが設定されていないってことです。図6-29や図6-31あたりの画面キャプチャをどこかにアップロードしていただけると、何かわかるかもしれません。

  18. KiD

    開発フォーラムでさっそく回答が寄せられ、コード署名IDの選択(P194:図6-29)をただしく行うことで実機テストが成功いたしました。わたしもまだ経験が浅いためウェブと本をいったりきたりしている間に、迂闊にも本手順をスキップしてしまったのかもしれません。お手間をおかけして済みませんでした。

  19. Masayuki Akamatsu 投稿作成者

    それは良かったです。

  20. ピンバック: iTunes Connectの言語問題 « akalogue

  21. KiD

    わかりやすい内容、実用的なサンプル、アプリや本のデザインの素晴らしさについては先般お礼申し上げたばかりですが、もうひとつ感心させられたのが、サンプルアプリの「改良・発展」というビジョンが提示されていることです。モチベーションを高め応用力をつけさせる配慮から本著に込められた著者の教育にたする考えやフィロソフィーが伝わってくるようです。

    その「改良・発展」についてですが、Objective-Cに熟達された読者はともかく、私のようなビギナーにはハードルが高くて全くお手上げな状態です。欲を言わせていただければ、詳細なヒントですとか模範解答(プログラムコード)をご提供いただければうれしい限りです。ですが、コストの問題等もあるでしょうから、無理は申し上げられませんが、続編や改版の際に本件をご考慮いただければ有り難いです。貴書の価値もさらに上がるかと愚考する次第です。

  22. Masayuki Akamatsu 投稿作成者

    KiDさん、コメントありがとうございます。ヒントではないのですが、難易度を以下にまとめています。Aランクから始められると良いと思います。また、読者の方が改良・発展されたコードをアップされるといいな〜と思っていますので、ご連絡いただければこのページにリンクを掲載させていただきます>皆さま(他力本願) http://akamatsu.org/aka/?p=2647

  23. c-geru

    はじめまして。「iPhone SDKの教科書」でiPhoneの手習いを始めました。P59にあるコード

    NSLog(@”index = %d rate = %f”, index, rate);

    を挿入すると、error:’rate’ undeclared (first use in this function) となってしまいます。何故でしょうか?
    HelloWorldは、http://developer.apple.com/iphone/library/samplecode/HelloWorld_iPhone/ からダウンロードし、Xcodeのバージョンは3.1.4です。Simulator – 3.1 | Debugで実行しました。

    rateが未定義ってことでしょうか?お時間ありましたら、ご教授いただければ幸甚です。

  24. Masayuki Akamatsu 投稿作成者

    c-geruさま、
    該当箇所ではフォーマット文字列の例として挙げているので、コードを記述した箇所に該当する変数が定義されていなければ、ご指摘のようなエラーとなります。整数や実数が使われている箇所でお試しいただければと思います。変数名が異なっている場合は、変数名も合わせる必要があります。よろしくお願いします。

  25. c-geru

    Akamatsuさま

    早速のご回答ありがとうございます。やはり未定義だったんですね。前段(P58)でコードの追加あったので、ココもそのまま動くコードだと思いこんでいました。スッキリと先に進めます。現在第二部に入りました。疑問が出てきましたら、またよろしくお願いいたします。

    ありがとうございました。

  26. garagekit

    はじめまして。

    上のリンク先からダウンロードできません。
    クリックするとiTunesは開きますが「全てのアプリケーション」とだけ表示されます。
    どのようにすればよろしいでしょうか?

  27. Masayuki Akamatsu 投稿作成者

    garagekitさま、
    すみませんでした。以前は「iPST#」で検索するようにしていたのですが、iTunesでのURLの取り扱いが変わったようで、うまく動作しません。暫定的に私のアプリケーションをすべて表示するようにしました。お手数ですが、iPST#で始まるアプリケーションをダウンロードしてください。よろしくお願いします。

  28. Fudou

    初めまして。
    先日からimacとSDKの教科書を買って開発にチャレンジしてます。
    カウンターの基本要素{5.5アクションの処理 P.155}までいったのですが、シミュレータでの実行でアプリが立上がり直後すぐに落ちてしまい実行ができません。
    プログラムコードにエラーは出てません。
    シミュレータのsafari等は問題なく立上がります。
    開発の為にAppleIDを新たに取得してSDKをダウンロードしてるのですが、元々imacに登録してるAppleIDと違うのでカウンターアプリが落ちるのでしょうか?

    先日、所有してるiphone実機でもimacと初めて同期したときにダウンロードしたアプリだけ落ちる現象が起き、AppleIDの同期し直しで復活しました。アプリの落ち方がこの時と非常に似てるのですがAppleIDとの関係はありますでしょうか?
    本書の内容とずれてますが先に進めず困っており、御教授いただけないでしょうか。

  29. Masayuki Akamatsu 投稿作成者

    Fudouさん、
    ダウンロードのページからサンプル・コードをダウンロードして、そのプロジェクト・ファイルを実行してみてください。それが正しく動作するようなら、MacやSDKには問題はなく、カウンターを作られる過程で何か間違いがあると推測できます。Apple IDとは関係がないと思いますよ。
    http://akamatsu.org/aka/?page_id=2328

    何か間違いがあった場合に、それが何かを見つけるのが難しいようなら、最初からやり直すこともオススメです。がんばってください!

  30. Fudou

    早速の御回答ありがとうございます。
    いわれた通り最初からやり直したら出来ました。

    お忙しいところお世話になりました。がんばります!

  31. Masayuki Akamatsu 投稿作成者

    Hi Scott,
    I hope so too! Translator? Publisher? The Kindle/iPad e-book version would be great.

  32. 2jump

    プログラミングの初心者です。
    iPhoneアプリの本を5冊買いましたが、
    プログラミング経験がほとんどない自分には、この本が一番わかりやすい本です。
    (まだChapter2が終わったばかりですが・・)

    2009年10月10日の第1版第5刷なのですが、
    いくつか直した方が良いかと思われる箇所を書きます。(実際間違っていたらスイマセン)

    1. P203の1.4ステータス・バーの消去 手順3 UIStatusBarHiddenは、Status bar is initially hiddenにどうやらSDK3ではなっているようです。

    2. P248の中央のコードの最後に「sppdY = 0.0;」とありますが、その5行前にもあるので、自信はないのですが、いらないかもと思っています。

    3. P250の図2-15ですが、y1が2つあります。たぶん上のy1が、y2だと思います。

    4. P253の2.9透明のアニメーションのところですが、ここをビルトしたときに注意の警告が出てきたので、ここに .hで、-(void) flash;を書くことを追加したほうがいいと思いました。最後のコードのまとめで
    書いてあったので、分かったのですが。

    同じように、この本で学習されている人もいると思ったので、参考までに書いています。

    まだ3つChapterを残しているので、また書くかもしれません。

    でも、とても良い本で感謝しています。
    今まで何度も他の本で、途中から訳がわからなくなって、困っていたので、
    この本は最後まで行けそうです!

  33. mtake

    正誤表(第3刷、第4刷)へのリンクを、このページに追加しては?更新に気付かなかったので。

  34. Pula belita in pizda matii

    Is this a Chinese site??? Sugetzi pula si cu curu si cu gura

  35. TOMO

    ダウンロードしたサンプルをコンパイルすると、error: There is no SDK with the name or path ‘iphoneos2.2.1’
    とエラーが出ます。
    使用しているバージョンはXcode 3.2.3です。
    上記iphoneos2.2.1は、何か設定をする必要がありますか?(古いバージョンのものはダウンロード可能ですか?)

  36. Masayuki Akamatsu 投稿作成者

    TOMOさん、執筆時と比べてSDK/Xcodeのバージョンが上がっているので、ご不便をおかけしています。おそらく現在お使いのSDK/Xcodeで大丈夫ですので、以下をお試しいただけますか?
    (Xcodeでプロジェクトを開いた状態で)
    ・プロジェクト・メニューの「プロジェクト設定を編集」を選ぶ。
    ・「一般」タブを選ぶ。
    ・すべての構成のベースSDKから「iPhone SDK 4.0」などお使いのSDKを選ぶ。
    以上です。

  37. TOMO

    赤松さま
    お世話になります。早急なご回答ありがとうございます。
    おっしゃる通りにやりましたところ、問題なくコンパイルできました。(^^)
    親切なご対応に感謝いたします。よろしくお願いいたします。

  38. Sao

    初めまして。iPhone/iPadアプリ開発を目指して勉強中の者です。
    貴書は一番わかりやすくて参考になるので、愛用させて頂いています。

    p.324 アイコンのローカライズに関して質問があります。

    手順通りにローカリゼーションを行ったのですが、シミュレータ上で実行するとアイコンが表示されず、
    白いアイコンになってしまいます。(ローカライズ前まではアイコンが表示されていました)

    クリーニングをしても直りませんでした。
    他にも、シミュレータ上でアプリを削除して再度実行なども行いました。

    Xibファイルやアプリケーション名のローカライズには成功しています。

    どのようにすればよろしいでしょうか?
    よろしくお願いいたします。

  39. Sao

    早速のご回答、ありがとうございます。

    教えて頂いた記事を参考にして、試してみました。
    すると、Images直下に追加したアイコンが常に表示されるようになりました。(日本語設定、英語設定の両方共)
    (クリーニングとアプリ削除後の再実行も済)

    XCodeのImagesグループの中身は、Default.png、追加したIcon.png、▼三角マーク付きのIcon.png(English、Japanese)の4つです。
    追加したIcon.pngしか認識されていないような印象です。

    XCodeでローカライズ処理がもう一度必要なのでしょうか?

  40. kouta

    大変分かりやすい本を書いていただきありがとうございます。
    初心者として、がんばってアプリ開発ができそうです。

    一つ質問があります。
    ビルドを実施しようとすると、以下のエラーコメントが出てきて、ビルドが実行できません。
    error:There is no SDK with the name or path ‘iphone2.2.1’

    何か、シミュレータなどの設定が必要なのでしょうか?

    よろしくお願いします。

  41. Masayuki Akamatsu 投稿作成者

    Saoさん、お書きになられた構成で大丈夫であるような気がしますが、言語を変えても表示が変わらない理由までは分かりません。ダウンロードのページからiOS SDK 4.0用のサンプルコードをダウンロードできますので、これを試していただけますか?

  42. Masayuki Akamatsu 投稿作成者

    Koutaさん、ダウンロードされたサンプルコードのプロジェクトをビルドされているのでしょうか?お使いのSDKのバージョンに合わせて、ベースSDKを変更していただくと解決するかと思います。あるいは、iOS SDK 4.0をお使いでしたら、ダウンロードのページにiOS SDK 4.0用のサンプルコードがありますので、そちらを試してみてください。

  43. Sao

    ダウンロードのページからios SDK 4.0用のサンプルコードをダウンロードして
    試してみたのですが、アイコンは常に英語版のAgeのままでした。
    (友人のPCでも結果は同じでした)

    App StoreのiPST#4-AgeのiPhone/iPad実行結果も同じでしたが、
    「App Storeでは言語ごとにアプリケーションアイコンを変えて登録ができない」
    と、アイコンのローカライズ時の注意点にありましたので、(意味を間違えていたらすみません)
    こちらは常にAgeが表示されて正しいのだと思います。

    何度もお手数をおかけして申し訳ありません。

  44. Masayuki Akamatsu 投稿作成者

    Saoさん、その後にAppleのフォーラムなどを検索してみると、iOS 4.0以降でローカライズしたアイコンが正しく表示されないとの問題が報告されていました。私も4.0以降の動作についてきちんと確認していなかったようです。さらに調べてみますね。申し訳ありません。

  45. kouta

    ありがとうございました。
    サンプルのダウンロードのバージョンが間違っていました。
    基本的なミスでした。
    すいませんでした。

  46. Sao

    なるほど、iOS4.0自体の問題だったのですね。
    原因が分かって良かったです。

    私も自分で調べてみます。
    赤松様の方でもし何か進展がありましたら、
    ぜひ教えて頂きたいです。

    丁寧に対応して頂いて、ありがとうございます。
    よろしくお願いいたします。

  47. H.Saito

    こちらでは初めまして。実は教えて頂きたい事があるのですが、「時計」「エイジ」などのプログラムを拡張する際に、曜日を表示したいのですが、他の参考書を2冊ほど見たのですがサンプルコードなどがありません。曜日は DatePicker などにある事はわかるのですが、(ん?DatePicker は私の知りたいことではない)知りたいのは、現在の日付の曜日です。西暦、月日などを計算すれば曜日が計算できますがそれはスマートでない。
    どうかお願いします。

コメントは停止中です。