30
NHN Japan株式会社 ウェブ企画推進室 川合

20100925 Hangame for iphone 開発秘話

Embed Size (px)

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/2128317429983707301

Citation preview

Page 1: 20100925 Hangame for iphone 開発秘話

NHN Japan株式会社

ウェブ企画推進室

川合 毅

Page 2: 20100925 Hangame for iphone 開発秘話

川合 毅(かわい たけし)

  2004年NHN Japan入社

  CURURU立ち上げ

 ケータイ版ハンゲーム(旧ハンゲ.jp)立ち上げ

 ハンゲーム for iPhone立ち上げ

Page 3: 20100925 Hangame for iphone 開発秘話
Page 4: 20100925 Hangame for iphone 開発秘話

<主要機能>

  ゲームランチャー

  アバター(プロフィール管理)

  イマコレ(コレクションカード)

  ミニメール

Page 5: 20100925 Hangame for iphone 開発秘話
Page 6: 20100925 Hangame for iphone 開発秘話
Page 7: 20100925 Hangame for iphone 開発秘話
Page 8: 20100925 Hangame for iphone 開発秘話
Page 9: 20100925 Hangame for iphone 開発秘話
Page 10: 20100925 Hangame for iphone 開発秘話

  MacBook 2.26GHz Intel Core 2 Duo + Memory4GB

  XCode3.2.3

Page 11: 20100925 Hangame for iphone 開発秘話

  参考にした書籍3冊

Page 12: 20100925 Hangame for iphone 開発秘話

  Interface Builderは使わないほうが内部動作を理解しやすい(と思う)

Page 13: 20100925 Hangame for iphone 開発秘話
Page 14: 20100925 Hangame for iphone 開発秘話

Web Server

Browser Game Server

Database API Server

Page 15: 20100925 Hangame for iphone 開発秘話

ブラウザゲーム(UIWebView)

外部Application

内包Application

アプリケーションコントローラ

Delegate経由の URLRequest

URLScheme Objective-Cクラス

  各ゲームとアプリ基盤での情報のやりとりが必要

Page 16: 20100925 Hangame for iphone 開発秘話

ブラウザゲーム(UIWebView)

アプリケーションコントローラ

  例1:ブラウザゲーム中に音声再生

<html> <body> <a href = “soundplay”>soundplay</a> </body> </html>

UIWebViewでページ遷移が発生すると呼ばれるshouldStartLoadWithRequest:(NSURLRequest *)requestメソッド内で”soundplay”を処理する

Page 17: 20100925 Hangame for iphone 開発秘話

ブラウザゲーム(UIWebView)

アプリケーションコントローラ

  例2:コントローラからUIWebViewを操作

[webView stringByEvaluatingJavaScriptFromString:@“document.location = ’http://www.hangame.co.jp/'"];

Page 18: 20100925 Hangame for iphone 開発秘話
Page 19: 20100925 Hangame for iphone 開発秘話

 ユーザーインターフェース

 通信状態

 マルチタスク

 バッテリー

Page 20: 20100925 Hangame for iphone 開発秘話

 通信状態を把握することが重要

開発環境と実際の利用シーンを意識!

Page 21: 20100925 Hangame for iphone 開発秘話

  通信状態を把握することが重要   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 開発秘話
Page 23: 20100925 Hangame for iphone 開発秘話

 AppStore申請方法

 レスポンス

 メモリ管理超重要!

Page 24: 20100925 Hangame for iphone 開発秘話

 メモリ管理その1

→ビルドオプションのBuildAndAnalyzeを実行

Page 25: 20100925 Hangame for iphone 開発秘話

実行例

Page 26: 20100925 Hangame for iphone 開発秘話

  メモリ管理その2

→InstrumentsのAllocationsとLeaksを使ってメモリリークを無くす!

Page 27: 20100925 Hangame for iphone 開発秘話

  メモリ管理その3

→オーガナイザでCrashログをチェック

Page 28: 20100925 Hangame for iphone 開発秘話
Page 29: 20100925 Hangame for iphone 開発秘話

  Android共通開発環境の整備

  旧機種サポート   iPod Touch 第四世代+iPhone 3G,3GS,

4+iPad

  マルチタスク環境での安定動作   ユーザはマルチタスクを知らない

Page 30: 20100925 Hangame for iphone 開発秘話