20100925 hangame for iphone 開発秘話
DESCRIPTION
ライブドアテクニカルセミナー(第三回)で川合毅が発表した「Hangame for iPhone開発秘話」です。 ■Ustream http://www.ustream.tv/recorded/9806039 ■講演者 川合 毅/NHN Japan株式会社 ウェブ企画推進室 ■プロフィール ハンゲームのコミュニティ系サービスの企画開発をやっています。 ■講演タイトル/概要 「ハンゲーム for iPhone開発秘話」 1)ハンゲーム for iPhoneとは? 2)開発環境 3)スマートフォン向けハンゲームのアーキテクチャ 4)デバイス特性上気をつけるべきポイント 5)失敗から学んだこと 6)これからの課題 ### ■ハンゲーム for iPhone http://itunes.apple.com/jp/app/id382020864?mt=8 ■NHN Japan http://www.nhncorp.jp/ ■NHNグループ採用情報 http://matome.naver.jp/odai/2128317429983707301TRANSCRIPT
![Page 1: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/1.jpg)
NHN Japan株式会社
ウェブ企画推進室
川合 毅
![Page 2: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/2.jpg)
川合 毅(かわい たけし)
2004年NHN Japan入社
CURURU立ち上げ
ケータイ版ハンゲーム(旧ハンゲ.jp)立ち上げ
ハンゲーム for iPhone立ち上げ
![Page 3: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/3.jpg)
![Page 4: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/4.jpg)
<主要機能>
ゲームランチャー
アバター(プロフィール管理)
イマコレ(コレクションカード)
ミニメール
![Page 5: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/5.jpg)
![Page 6: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/6.jpg)
![Page 7: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/7.jpg)
![Page 8: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/8.jpg)
![Page 9: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/9.jpg)
![Page 10: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/10.jpg)
MacBook 2.26GHz Intel Core 2 Duo + Memory4GB
XCode3.2.3
![Page 11: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/11.jpg)
参考にした書籍3冊
![Page 12: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/12.jpg)
Interface Builderは使わないほうが内部動作を理解しやすい(と思う)
![Page 13: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/13.jpg)
![Page 14: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/14.jpg)
Web Server
Browser Game Server
Database API Server
![Page 15: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/15.jpg)
ブラウザゲーム(UIWebView)
外部Application
内包Application
アプリケーションコントローラ
Delegate経由の URLRequest
URLScheme Objective-Cクラス
各ゲームとアプリ基盤での情報のやりとりが必要
![Page 16: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/16.jpg)
ブラウザゲーム(UIWebView)
アプリケーションコントローラ
例1:ブラウザゲーム中に音声再生
<html> <body> <a href = “soundplay”>soundplay</a> </body> </html>
UIWebViewでページ遷移が発生すると呼ばれるshouldStartLoadWithRequest:(NSURLRequest *)requestメソッド内で”soundplay”を処理する
![Page 17: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/17.jpg)
ブラウザゲーム(UIWebView)
アプリケーションコントローラ
例2:コントローラからUIWebViewを操作
[webView stringByEvaluatingJavaScriptFromString:@“document.location = ’http://www.hangame.co.jp/'"];
![Page 18: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/18.jpg)
![Page 19: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/19.jpg)
ユーザーインターフェース
通信状態
マルチタスク
バッテリー
![Page 20: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/20.jpg)
通信状態を把握することが重要
開発環境と実際の利用シーンを意識!
![Page 21: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/21.jpg)
通信状態を把握することが重要 Appleのサンプルコード
Reachablityが良い参考 TCP/IPの経路が確立されているか?
対象URLが有効か? Wi-fiか3G回線か? フライトモードか?
http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html
![Page 22: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/22.jpg)
![Page 23: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/23.jpg)
AppStore申請方法
レスポンス
メモリ管理超重要!
![Page 24: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/24.jpg)
メモリ管理その1
→ビルドオプションのBuildAndAnalyzeを実行
![Page 25: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/25.jpg)
実行例
![Page 26: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/26.jpg)
メモリ管理その2
→InstrumentsのAllocationsとLeaksを使ってメモリリークを無くす!
![Page 27: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/27.jpg)
メモリ管理その3
→オーガナイザでCrashログをチェック
![Page 28: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/28.jpg)
![Page 29: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/29.jpg)
Android共通開発環境の整備
旧機種サポート iPod Touch 第四世代+iPhone 3G,3GS,
4+iPad
マルチタスク環境での安定動作 ユーザはマルチタスクを知らない
![Page 30: 20100925 Hangame for iphone 開発秘話](https://reader030.vdocuments.net/reader030/viewer/2022020306/5484b526b4af9f8c0d8b4cf6/html5/thumbnails/30.jpg)