More Related Content
Similar to ㉙iPhoneアプリ開発の基礎知識を覚えよう (20)
More from Nishida Kansuke (20)
㉙iPhoneアプリ開発の基礎知識を覚えよう
- 5. アプリの開発者に必要なこと
• 開発環境の構築や申請の手順などを理解
する必要がある
• iPhone独自のルール(イベント、アプリの
ライフサイクル、データの保存等)を理解
する必要がある
• iPhoneで出来る事、出来ないこと、しては
いけないことを理解し、アプリの企画、
デザイナーに適切にガイドラインの説明が
できる能力が求められる
- 7. iPhoneとiOS
• スマートフォンには沢山の種類がある!
(iPhone,Android,WindowsPhoneなど)
• 各端末の種類の違いは「OS」の違い!
• Appleが出してる「iOS」が動くスマート
フォンをiPhoneといいます!
• OSが違うと、アプリは動かない!(プレ
ステのソフトがWiiで使えないのと同じ)
- 9. iPhoneの画面サイズ
• iOSが動く端末は、画面の大きさの違いで、5種類あ
る!主な端末はこんな感じ!
• 320x480
– iPhone
3G,
iPhone
3GS
• 640x960(retaina)
– iPhone
4
,
iPhone
4S
• 640x1136(retaina)
– iPhone
5
• 768x1024
– iPad,
iPad
mini
• 1536x2048(retaina)
– iPad3,
iPad4
- 10. iPhoneで動くアプリの種類
• ネイティブアプリ
– AppStoreで売ってるやつ!普通はアプリといったらコレに
なる!
– iPhone専用に作る必要がある!
• Webアプリ
– 普通のホームページ!safariで開いて「ホームに保存」する
とアイコンになってアプリみたいになる!
– ホームページなので、Androidとかでもみれる!
• 側アプリ(側ネイティブ)
– ネイティブアプリなんだけど、実際はWebViewでWebアプ
リを表示してるアプリ!
– WebViewを表示するだけじゃなく、頑張って色々実装すれ
ば、ネィティブの機能も使える!
- 11. アプリの特徴
• ネイティブアプリ
⃝AppStoreで売れる、アプリ内課金が使える!
⃝速度が早い、端末の機能を最大限使える
×リリースに時間がかかる、リジェクトの可能性がある
• Webアプリ
×AppStoreで売れない、アプリ内課金使えない
×速度が遅い、ブラウザで対応している機能しか使えない
⃝リリースが早い、リジェクトがない
×サーバの用意が必要
• 側アプリ(側ネイティブ)
⃝AppStoreで売れる!アプリ内課金もがんばれば!
×速度は遅い、端末の機能も頑張れば使えるかも!
⃝リリースは一回しちゃえば、あとはサーバ側を変更すれば即反
映!
- 12. 開発環境
• ネイティブのiPhoneアプリを作成するには、
Xcodeを使用します。
• 言語は、Objective-‐Cを使います。
• ストーリーボードというGUIを使って直感的
に画面のデザインができます。
• Webアプリを作成する場合は、通常のホーム
ページと同様HTML5+javascriptなどで作成し
ます。
• その他にもいろいろな開発ツールがあります。
主に、クロスプラットフォーム開発をする場
合に使います。
- 13. クロスプラットフォーム
• アプリを作成する場合、iPhone用とアンドロイ
ド用の2機種に対応するには、プログラムを2
個作らなくてはいけない。
• WindowsPhoneに対応させたい場合は、3個作る
必要がある!他にも出てきたら・・・。
• たくさんの開発環境、言語を覚えて開発するの
は大変!
• プログラム1個作って、それを複数の環境で動
作させることをクロスプラットフォーム(マル
チプラットフォーム)といいます!
- 16. クロスプラットフォームのデメリット
• ネイティブに比べて、処理が遅くなることも
• 開発時に、コンパイルなどで手間や時間がかかる
• サードパーティ製のため、技術的な情報が少ない感じ
• プラットフォーム特有の機能(カメラ、傾き、GPS、電話帳など)
や固有のUI、デザインなどがつかえない場合がある(全プラット
フォーム共通の事しかできない)
• 新しいバージョンへの対応が微妙(タイムラグ、未対応など)
• 日本語対応に難がある場合も
• 将来的なサポートの不安
• ネイティブの開発ノウハウがつかえない
• 細かいことをするには、ネイティブの知識やプラットフォーム別の
対応が必要
• 開発環境の構築が難しいケースも。
• ハイブリットアプリケーションはリジェクトの恐れあり><(Apple
にWebでやれっていわれる)
- 18. アプリ申請に必要なもの①
• AppleID
– Apple
storeから無料で取得できるいつものやつ。住所氏名
など全て英語で登録しないと文字化けして以降の申請がう
まくいかない時があるので注意。
• iOS
Developer
Program
– 年間参加費 ¥8,400かかる。クレジットカードと毎年更新が
必要。コレがないと実機にアプリを転送したり、AppStore
でアプリを販売できない。
– 個人または企業で登録が可能。企業の場合は、申請時にい
ろいろ書類がいるので時間がかかるから注意。特に、D-‐U-‐
N-‐S
Numberの申請に時間がかかる。その代わり複数ユー
ザーで開発ができる。
– 上記の他組織内の社員やメンバーにアプリを配るための
iOS
Developer
Enterprise
Program
¥24,800もある。
- 19. アプリ申請に必要なもの②
• mac
+
Xcode
– 開発や申請にXcodeが必要。Xcodeは昔のOSに
対応していないので古いmacだと開発できな
いかも。
• テスト用の実機
– xcodeにシュミレータがついてくる!とはいえ、
実機とは実行速度がちがったり、カメラや
GPSなど、いろいろ違うので実機を用意する
といいかも。
- 20. アプリ申請の手順①
• iPhone
Developer
Programの登録
– 開発機の証明書を作る
– Certificatesに証明書を登録してファイルをダウン
ロード
– Deviceに自分の端末のIDを登録(100台までし
か登録できないし、削除したり整理するタイミン
グが年に1回の更新時しかないので注意!)
– App
IDsにアプリのIDを作成(間違えて作っても削
除できないから注意!)
– Bundle
Identifierを決める
– Provisioningにprofileを作ってダウンロード
- 21. アプリ申請の手順②
• XCODEの設定
– Bundle
Identifierの指定。灰色になってうまくいか
ない場合は、plistを編集するといい。
– 開発用Provisioning、リリース用Provisioningを設定
– 設定がうまくいくと、実機にアプリを転送できる
ようになる!(Deviceに登録してあるやつだけ)
– Version
Numberを設定する。1.0以上じゃないとリ
ジェクトされる。iTunesConnectに設定したのと同
じじゃないと申請できない。
- 22. アプリ申請の手順③
• iTunes
Connectの設定①
– アプリの説明文などを設定する
– とりあえず、全部埋めないと設定が終わらないの
で事前にファイルを準備しておく
– アイコン画像(1024x1024)、説明画像(640x960
と640x1136の2種類が最低必要)
– バイナリ申請後は変更できない項目が結構あるの
で注意(画像とかカテゴリとかキーワドとか)
– Default
language
• 英語を指定すること。日本語にすると外国のストアに
も日本語が表示される。
- 23. アプリ申請の手順④
• iTunes
Connectの設定②
– App
Name
• 1度登録されると同じものは作れない。自分で登録したアプリを消し
て再度登録できないので注意。使えない文字がある。★とかつかえな
い。
– SKU
Number
• 何でもいいけど連番とかにするとわかりづらいからアプリ名が分かる
感じにするといい
– Primary
category/
Secondary
category
• セカンドカテゴリを指定しておくとそのカテゴリで検索した時に、ア
プリが表示されるようになる。
– Bundle
Identifier
• アプリにつけるIDみたいなもの。ドメイン名を逆から書くjavaみたいな
感じの命名にするのが一般的(com.tonosamart.gameappとか)
• テスト用にワイルドカード(*)が使えるけど、リリース時には使えない
- 24. アプリの価格
• アプリの価格は2種類から選べる
– 有料
– 無料
• 有料にした場合、価格をテーブルから選べ
る。例えばTier1なら85円とか予め決まって
いる。ときどき円高とかで変動する(過去1
度だけ105円→85円になったことがある)
• 上記に加えて、アプリ内でプロダクトに対
して課金できるアプリ内課金がある。
- 26. アプリ内課金②
• アプリ内課金は以下の5種類がある。
– Consumable(消耗型)
• 一回使ったらなくなる奴。魔法石とか。
• たくさん買える。購入数は自分で管理する
– Non-‐consumable(非消耗型)
• 買ったらずっと使える奴。追加マップとか
• 1個しか買えない。リストアが出来る。
– Auto-‐renewable
subscriptions(自動更新購読)
• 定期購読(毎回自動更新)
– Free
subscriptions(無料購読)
• 無料の定期購読
– Non-‐renewing
subscriptions(非更新購読)
• 一定期間使えるようにするやつ
- 27. アプリ内課金③
• アプリ内課金にはガイドラインがある。
– 電子商品または電子サービス以外の販売禁止(実際
の商品やサービスの支払に使えない)
– 中間通貨のようなアイテムを提供することはできない。
(といいつつ、魔法石とかは使える・・・)
– ポルノ、誹謗中傷などは禁止
• StoreKitGuideに書いてあるガイドラインの他にも、
定期購読は本にしか使えないなど決まりがあった
んだけど、そのわりにAKB48のアプリは昔から定
期購読可能で謎だった。最近ルールが変わったら
しく東京いい店というアプリが定期購読を採用し
ている。
- 28. アプリのステータス①
• ストアに登録したアプリの状態はステータスで表
示される。主なステータスは以下のとおり。
• Prepare
for
Upload
– 最初の状態
• Waiting
For
Upload
– Ready
to
Upload
Binaryを押すとこれになる。バイナリ
をアップできる状態。
• Upload
Received
– アプリがアップされたらこれになる。
• Waiting
For
Review
– レビュー待ち。Upload
Receivedのあとしばらくすると
なる。
- 29. アプリのステータス②
• In
Review
– レビュー中。
• Processing
for
App
Store
– ストア公開中。レビューが終わったらコレになる。こ
の状態だとストアで検索できたり出来なかったりする。
あと、ストアにあるけどダウンロード出来ない時もあ
る。
• Ready
for
Sale
– ストアに公開可能な状態。コレになったら、公開完了。
• Rejected
– リジェクト
- 31. アプリの公開日
• アプリは公開日を指定できる。レビューが終わっ
たら即公開の設定もある。
• 公開日を指定しておけば、その日に公開されるけ
ど、レビューOKの日が発売日になるっぽいので、
AppStoreの新着の後ろの方に表示される(今は新
着ないから気にしなくて良さそう)
• 公開日を未来にしておいて、レビューが終わって
から今日の日付にすると、その日に公開できる。
ただ、ストアの反映には時間がかかるので、プレ
スリリースの前日に公開しておいたほうがいい。
- 32. リジェクト
• アップルに審査を出しても、ガイドライン
に従っていないとリジェクトされる
• 審査の基準は結構謎で、他のアプリが審査
を通っていても自分のアプリが通るとは限
らない
• 逆に言うと、審査が通ったらストアから消
されることはあまりない(エロ系、著作
権侵害、裏技系は消される)
- 34. 広告、リワード広告
• 広告主となって自分のアプリを宣伝できる
• 媒体となって自分のアプリ内に広告をいれる事ができる
• 基本は320x50のバナー広告だが、大きいサイズのものなど種類があ
る
• 基本的には、広告をクリックしたら報酬がもらえる(表示しただけ
ではもらえない)
• 通常の広告の他に、リワード広告がある。媒体に広告を置くときに、
インストールするとプレゼント(コイン、カードなど)がもらえる
ようにしてインストール率をあげる仕組み
• 広告を出稿する場合は、特にアプリの改造は不要だが、媒体となっ
て広告を掲載する場合は、各社の出しているSDKを組み込む必要が
ある
• リワード広告の場合や、インストール報酬だけでなくチュートリア
ル終了報酬などを与える場合は、出稿側のアプリにもSDKを入れる
必要がある。インストール確認だけなら、URLスキームを使う場合
も多い。
- 35. ブーストとブーストメディア
• 広告(通常はリワード広告)を短期間に大量に出稿して、
AppStoreのランキングをあげる作戦をブーストという
• ランキング上位にはいると、人の目につくため、ダウン
ロードされる確率が高くなる。そのため、ブーストでラ
ンキングを上げて、ストアからのダウンロード(自然流
入)を狙う
• ブーストの広告を得意とするメディアをブーストメディ
アという。アプリをインストールすることでポイントや
プレゼントがもらえるアプリなどがある
- 36. URLスキーム
• http://だとインターネットのアドレスになるが、この部
分をアプリ独自に定義してアプリを呼び出す仕組みを
URLスキームといいます。
• アプリ内に独自で設定ができる。他のアプリとかぶると
困るため、通常はドメインの逆(com.tonosamart.xxxと
か)を指定する
• この仕組を利用して、アプリが呼び出せるかどうかを
チェックし、そのアプリがインストールされているかど
うかを検出できる
• リワード広告のインストール確認などに利用される
- 37. マルチタスク
• iPhoneのアプリはマルチタスクで複数起動
できる。とはいえ、バックグラウンドで
の動作には制限がある(ずっと起動できな
い、出来る処理に決まりがある)
• Androidとの大きな違いがバックグラウン
ド実行で、常時ログを出力したり、起動
しっぱなしで特定のタイミングでアクショ
ンを起こすようなアプリは作れない。
- 39. 画面サイズと素材
• 基本的にアプリに使う画像は2種類用意する。一つは、
通常の解像度用、もうひとつはretina用で倍の大きさ
のものを用意する。さらに、iPhone5に対応するため
には、retina用で大きさの違う画像が必要になる。
• Xcodeを使うと、retina対応を自動的に行なってくれる。
ファイル名をxxx.png、xxx@2x.pngという用に命名す
る
• アプリの容量を抑えるため、画像リソースの軽量化を
行う必要がある
• 1枚の画像でも、2種類以上の書き出しが必要なため
特に外注を使う場合は契約をきちんとしておこう
- 44. フォーマットの最適化
• 同じPNGフォーマットでも、保存形式によっ
て容量が変わってくる
• 透明部分がない場合はアルファを保存しない、
色数が少ない場合はインデックスカラーを用
いるなど、最適なフォーマットを選ぶことが
必要
• PVRはテクスチャ生成が4倍速い!使用でき
る場合は、採用を検討しよう(そのまま使う
とファイルサイズが大きいので圧縮され
た.pvr.cczなどを使う)
• jpegの圧縮率もうまく調整しよう!
- 45. 減色処理
• 画像の見た目が変わらない程度に、色数
を少なくして、インデックスカラーで保存
する作戦!
• めんどくさいけど、効果が抜群!なので、
余裕があったらやった方がいい。
• 減色のアルゴリズムは、ソフトでかなり差
が出る!うまくいかなかったらあきらめ
るしかないかも・・・。
- 47. HIG
• ガイドラインに違反するとリジェクトされ
るため、アプリを作る上で絶対読む必要
がある。
• 画面サイズの説明や、ボタンの意味、最低
限必要なサイズなど色々なガイドライン
が書いてある。
• デザイナーや企画がこれを読んでないと確
実にハマるので注意。リジェクトされるた
め、最悪デザインやり直しになる。
- 48. アプリとサーバ
• アプリ単体では実装できない機能がある場合は、サーバを用
意する必要があります
• サーバがないと実装できない機能の例
– ほかのユーザとの連携
– 情報の更新、ダウンロード
– データの改竄防止
– WEBページ(側ネイティブ含む)
– お知らせ、通知など
• サーバを用意する場合は、維持費が必要です。売り切りのア
プリの場合はサーバの維持をどうするかなど事前検討が必要
です。
• アプリのバージョンアップ後に古いアプリを使ってる人が
サーバに接続した場合の処理なども事前に入れておく必要が
あります。
- 49. レベニュー、使用料
• アプリに著作物(版権物のキャラ、音楽等)を使う場合、使用料を決めま
すが注意が必要です。
• アプリ内課金はTierで決められているため、細かい値段設定ができません。
• Tierは変動するため、値段の10%といった決め方をしないとハマります。
(過去に¥105→¥85になったことがある)
• アイテムが1個売れるごとに何円支払うといった契約だと、魔法石の購入数
による割引や、無料キャンペーンの負担などでハマります。
• どういう形態で課金するかを最初に決めて、問題や矛盾のない契約にしま
しょう!
- 50. ライブラリ、ゲームエンジンの利用
• バーコードやJSONなど基本的な機能につ
いてはライブラリが存在するので、有効に
使おう!
• ゲームを作る場合はゲームエンジンの採用
を検討しよう!
• 規約がまちまちなので、注意が必要(特に
商用利用や受注したアプリ)