みゆっき☆think#4 「こんどはiphoneに触ってみるよ!」
TRANSCRIPT
iPhone
ニコニコ事業本部 企画開発部後藤 哲志
自己紹介• 後藤 哲志
• ニコニコ事業本部 企画開発部
• ニコニコiPhoneチーム
• 2010年4月入社(新卒2年目)
• twitter @mtgto
アジェンダ
• iPhoneの紹介
• アプリの作り方
• アプリの公開
iPhoneの紹介
iPhoneの話をしよう
iPhone 4
iPhone 4 仕様 (外見)
• 115.2 mm x 58.6 mm x 9.3 mm
• 137 g
• 960x640 pixels (326 ppi)
• カメラ2つ(外向き、内向き)
• 音量調節、ミュート、ホームボタン
日本での発売の歴史• 2007/7 iPhone初代
• 2008/7 iPhone3G
• 2009/6 iPhone3GS
• 2010/6 iPhone4
• 2011/6 iPhone5 ???
iPhone 5 でるのかな
http://smart-style.up.seesaa.net/image/34343333.jpg
WWDC
• 毎年アップルが開催している開発者向けイベント
• 参加費は$1,599 (学生は無料)
• でもチケットはすぐに売り切れる
iPad / iPod Touch
•iPad = でっかいiPod Touch
•iPod Touch = ちいさいiPad
iPad / iPod Touch
• iPhoneと違うので注意が必要
• カメラの有無
• 3G回線の有無
• マイクの有無
国内シェア• 2010年度 国内出荷スマートフォン台数 ((株) MM総研
[ 東京・港 ])
国内シェア• 2010年度 国内出荷スマートフォン台数 ((株) MM総研
[ 東京・港 ])
実質iPhoneとAndroidの二強
iOS
• Mac OS Xのカーネル、コアフレームワークの上にiPhone用のビューなどの独自フレームワークを載せた物
• Cisco IOSと名前が被ってる
iOS Architecture
Mac Architecture
完全に(でもないけど)一致
センサ• 3軸ジャイロ
• GPS
• 2つのカメラ
• マルチタッチ
• つまむ、はじく、軽く叩く
iPhoneアプリの作り方
開発に必要なもの
1. Mac OS Xが動くパソコン
2. Xcode + iOS SDK
3. iPhone/iPod Touch/iPad
4. iOS Developer Program登録
Mac
• Mac OS X 10.6が動作するMac
• MacBook Airで開発やってます
• 絶対に必要ではないかもだけどかなり苦労するからMac使った方が絶対に楽
Xcode + iOS SDK
• Ver 4から有料 (Mac App Storeで600円)
• iOS Developer Program登録者は無料
実機 (iPhone / iPad)
• だいたいはシミュレータで確認
• カメラやマイクなど実機でしか試せない機能もある
• 申請前には必ずチェックしましょう
iOS Developer Program
• アプリの申請をするのに必須
• 実機で試験するのにもほぼ必須
• 個人の場合は$99/年
Objective-C
• iPhoneやMacの開発で使う言語
• C言語の上位互換
• 歴史はJavaより古い
• Obj.C 1983年, Java 1995年
• GCC, LLVMでコンパイル
Obj.Cでメモリ管理
• iPhone向けObjective-Cではガーベッジコレクションがない
• 参照カウンタによるメモリ管理
• 使い終わったら自分で解放する
オブジェクトの生成• Java
List array = new ArrayList<Hoge>();
• Objective-C
NSArray* array = [[[NSArray alloc] init] autorelease];
スコープ抜けると解放
if (HOGEHOGE) {
NSArray* array = [[[NSArray alloc] init] autorelease];
} スコープを抜けたらそのうちメモリは解放される(即座にではない)
NSArray* array = [[NSArray alloc] init];
[array retain]; // 参照カウント2
[array release]; // 参照カウント1
[array release]; // 解放
C言語の恩恵
• 多くのC言語で書かれたフリーウェアをObjective-Cから直接使うことができる
• GPLライセンスなど使うときは注意
http://www.gnu.org/graphics/heckert_gnu.png
統合開発環境 Xcode
統合開発環境 Xcode
テキストエディタ
GUIエディタ
デバッガ
UIView
UIViewController
UIButton UILabel UITextField
UIView
UIViewの上にドラッグ
UIView
UIViewController
UIButton UILabel UITextField
UIView
クリックされた
UIView
UIViewController
UIButton UILabel UITextField
UIViewクリックされたことだれに言うの?
Ctrl+ドラッグでクリックイベントの送信先に接続
iOS Simulator
• エミュレータじゃないよ!
• 起動早い!10秒以内
• 某Android Emulator (SDK 3.1)
• 起動に6分10秒 on MacBook Air
アプリの公開
App Store
2011年1月 100億ダウンロード
アプリ本数 35万以上
アプリ公開の流れ
1. iTunes Connectでアプリの情報登録
2. Xcodeでリリースビルド作成
3. レビュー
4. App Storeで公開
恐怖の審査• すべてのアプリがくぐり抜ける関門
• Apple様が気に入らないことはやらない
• 分かりにくい操作はNG
• お金儲けもかなり面倒
One more thing...
自作アプリの紹介
ニコ実
実況見るアプリ1. 実況のコメサーバにTCP/IPで接続
2. XMLSocketでコメをリアルタイム取得
3. Core Animationでスクロール
Core Animation
1. 画面右端にコメント配置
トゥットゥルー
Core Animation
2. ?秒後に画面左端に移動すると宣言
トゥットゥルー
Core Animation
3. iOSが間を補完してなめらかスクロール
トゥットゥルートゥットゥルー トゥットゥルー
iOSなら1行で書ける詳しくはCore Animationでググって・・・
MikuStand
MMD見るソフト
• MMD_DesktopMascotの移植
• OpenGL ES 1.0
• http://code.google.com/p/mikustand/
今日のまとめ• 日本ではiOSとAndroid OSの二強
• 開発環境としては簡単
• Objective-C覚える必要あり
• レビューで落ちないイイアプリを作ろう
おわり
• ご清聴ありがとうございました
参考にした資料• http://ja.wikipedia.org/wiki/IPhone
• http://ja.wikipedia.org/wiki/WWDC
• http://ja.wikipedia.org/wiki/IOS_(%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB)
• http://images.apple.com/jp/iphone/gallery/images/gallery01-20100624.jpg
参考にした資料• http://www.m2ri.jp/newsreleases/main.php?
id=010120110510500
• http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html
• http://blogyac.com/wp-content/uploads/2011/02/apple-imat1.png
参考にした資料
• http://smart-style.up.seesaa.net/image/34343333.jpg