知識ゼロからはじめるiPhoneアプリ開発
iPhone アプリ開発を初めてはや2年。わけわからんレベルからなんとかアプリをリリースするところまでこぎつけました。もともと趣味ではじめた事ですが今は仕事でも iPhone アプリ開発をしています。ここに至るまで自分が調べたことや参考にした文書をアプリの構想からアプリをリリースするまでの手順にそってまとめてみました。
iOSアプリ開発関連の本を書きました
初めて iOS アプリ開発をされるかた向けに「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」という本を書きました。
この記事を読んで iOS アプリ開発に興味を持たれた方におすすめです(2013年2月26日発売)。2015年1月17日にSwiftに対応した改訂版がでました。
本の内容に関する詳しい記事はこちらです。
初期投資
8400円とプライベートな時間、iPhoneまたはiPod Touch。
対象開発者と前提知識
- Objective-C 未経験者
- Java や C♯ C++ などのオブジェクト指向言語で開発したことがあるけど、どうやって iPhone アプリ開発したらよいかわからないという開発者
- MVCぐらいは知ってた方がいいかも
まつもと直伝 プログラミングのオキテ 第20回 MVCとRuby on Rails - .NET の Windows Form アプリの開発経験または Android アプリの開発経験があればなお可。
英語の知識は必要か?
- 英語の文書であっても図を見てサンプルプログラムを動かせば何が言いたいのか何となくわかります
- 大学で英語の単位落として留年したような人間でも何とかなりましたw
- 大量の英語文書を見てくじけないために
原文をスラスラ読みたい!「MSDN ライブラリによく出る英単語 100選」
アプリを公開するまでの道のり
アプリ名と簡単なコンセプトを作成
- 開発中に迷ったら必ずここに立ち戻ること
- アイデアを形にする為に役に立つ書籍
発想する会社! ― 世界最高のデザイン・ファームIDEOに学ぶイノベーションの技法
アイデアのつくり方
画面イメージと画面遷移の設計
- できるできないの判断。iPhone アプリに向いてる向いてないの判断をする
- サンプルコード UICatalog を動かして何ができるかを把握すること
UICatalog - 以下の文書は必ず読むこと
iOS Human Interface Guidelines
iOS Application Programming Guide - UI部品をどう並べるか、画面遷移をどうするか、ユーザとアプリのやり取りをどう設計するか、迷ったらこの本を読んでみてください
iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザイン
Objective-C の構文や特徴を押さえる
- 入門編
Obejctive-C 3分クッキング - 最低限黒本は読むこと(開発と同時並行で良いので)
詳解 Objective-C 2.0 改訂版 - 深く知りたければ Dynamic Objective-C を読むこと
Dynamic Objective-C - iPhone アプリ開発の流れを知る
Creating an iPhone Application - C言語のポインタについて理解しておく
ポインタと配列
画面と UIViewController の対応図を作成
- 画面開発の基礎
iOS アプリの画面開発の基礎を理解する - UITabBarController や UINavigationController をどこで使うか整理する
- 以下の文書は必ず読むこと
View Controller Programming Guide for iOS
画面周りを中心にプロトタイプ開発開始
- Interface Builder の使い方に慣れる
- プロトタイプなのでメモリリークとかあまり気にしない
- iOS4から導入されたマルチタスキングについて理解する
Executing Code in the Background - UIApplicationDelegate と UIViewController のイベントを把握する
iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する - UITableView を使うのであれば以下の文書は必ず読むこと
Table View Programming Guide for iOS - Android アプリの開発経験者には以下の記事がおすすめ
開発者目線でAndroidとiPhoneを比較してみる
周辺技術に付いて調べ始める
- 開発するアプリ固有の技術要素を調べる
例:位置関係やるなら Core Location。マッシュアップアプリやるなら NSURLRequest,XML パーサーなど - 都度アップルのサンプルプログラムをを見て研究すること
iOS Reference Library - Sample Code - - その他役に立ちそうなiPhoneアプリのコード
AppsAmuck iPhone Development Tutorials and Examples
公開されているソースコード
37 Open Source iPhone App Store Apps
モデルの設計
- 画面開発中に必要と思われるモデルクラスを抽出。設計する
- UML 描画ツールは Astah がおすすめ
astah* - 最も身近なソフトウェア開発設計支援ツール
データ管理方式の決定
- NSUserDefaults,plist,CoreData どれを使うのが良いか考えて使用すること
例:XXは設定項目なので plist、XXはデータの登録変更削除をするので CoreData など - iOS のデータ管理について以下の記事が参考になります
iOS であつかうデータの種類と生存期間
iOS でデータを永続化する方法 - Core Data 使うのであれば以下の文書は必ず読むこと
Getting Started with Core Data
サルでもわかる Core Data 入門【概念編】
サルでもわかる Core Data 入門【実装編】
iPhone Developer Program に登録する
- 年間8400円(以前は10800円でしたが為替レート改正で値段が変わりました)。ケチらず払うこと
- Apple ID 登録時に日本語を使わないように気をつけること
本格的に開発開始
- プロトは思い切って捨てちゃいましょう
- プログラミング規約の作成(一人でやるなら脳内規約でも可)
アップルのサンプルコードや Google の規約を参考にする
Google Objective-Cスタイルガイド 日本語訳 - プログラミングで気をつけること
iPhoneアプリ開発時のメモリ管理で気をつけること
iPhoneアプリ開発時のメモリ管理で気をつけること(マルチスレッド編)
メソッド設計で守るべき10個のルール
UITableViewのハイライトについてまとめてみた - その他開発に役立ちそうなTIPS
NSOperationQueue スレッドと処理の関係
NSOperation 非並列実行モードと並列実行モードの使い分け
タイマーを使って電子コンパスの動きを滑らかに見せる方法
iPhone の地図上に簡単に図形を書く方法 - 実機にインストールするときの手順
実機へのアプリインストール手順 - TabBar や ToolBar でアイコンが必要になったら
Glyphish – Great icons for great iPhone & iPad applications
iPhone用アイコンしょぼくてすみませんw
アプリのアイコン作成
- デザイン経験がなくてもやるしかない
- Adobe 製品を買うことができない開発者は Inkscape(Illustratorに相当) と Gimp(PhotoShopに相当) で頑張る
Inkscape. Draw Freely.
GIMP - The GNU Image Manipulation Program - どうしていいかわからなくて困ったときは
デザインとか加工とか出来ないからなんかいいの教えて、と言われて教えたツールいろいろ
iPhone4やiPadに対応する
以下やるやらないは任意
- iPhone4 の Retina に対応する
アプリケーションを iPhone 4 の Retina Display に対応するための方法いろいろ - iPadに対応する
iPhone アプリを iPad 対応にする方法(プログラミング編) - 端末ごとに必要なアイコンのサイズが違うのでそれぞれ用意する
Icon Reference | Hicksdesign
値段を決める
- 完全無料
- 無料 + 広告付き(iAd,Admob)
- 有料
アプリの値段を後から下げるのは簡単だけど、上げるのはかなり難しい。115円はおすすめしない - アプリ内課金
In App Purchase 概要
失敗しない iOS In-App Purchase プログラミング
アプリ申請
- iTunes Connect でアプリの説明とスクーンショット等を登録
- アップルからお金を受け取るための設定
iTunes Connectへの契約、税金、銀行情報登録 - 手数料等を考慮すると銀行口座は CITIBANK が良いようです。
App Storeの売上の入金プロセスが変わった話
iTunes Connect の振込先を CITIBANK に変更 - ゆうちょ銀行の口座でドル建てにすると手数料がかからないという情報も
外国からの送金手数料 - App Store Review Guidelines を必ず確認すること
App Store Review Guidelines for iOS apps
App Storeの審査基準 - 過去にリジェクトされたアプリと同じことをしてないかチェック
iPhoneアプリの審査でリジェクトを食らった事例をお教えください。
アプリのPR
- 売れるアプリにするためにどうすればいいか
iPhoneアプリの販促活動に関してまとめてみた - アプリの海外展開を考えているのであれば以下の本が激しくおすすめ(2012/01/31 追記)。
iPhone&iPadアプリマーケティング
開発で困ったら
どうしてもわからないことがあれば@iphone_dev_jp宛に質問をつぶやいてみると解決策が得られるかもしれません。
一番大事なこと
とにかく作ってみることです。作りながらこの記事を参考にその都度必要な知識を仕入れていけばなんとかなります。
これまで開発したiPhoneアプリ
改訂履歴
- 2011年9月9日
画面イメージと画面遷移の設計、データ管理方式の決定を修正 - 2012年6月4日
リンクを追加