第6回 ネットワークiアプリのためのサーバサイド活用(1):90Xi専用ゲームiアプリ開発講座(4/4 ページ)
ここまで900i専用のトレーディングカードゲームを開発してきたが、今度はこれをネットワーク対戦に対応させる方法を学んでいく。
DBAクラスは、次回ネットワーク対戦用のAPIを追加する時に再利用することになる。クラスの再利用について少し述べておくと、505i以前のモデルのアプリ開発時には、クラスを分割して再利用性の高いプログラミングを行うことは、容量の上限があって難しかった。しかし、今回のようにサーバを利用する場合、サーバサイドでは、容量の制限がないため、柔軟な設計のプログラミングが可能である。大容量を生かす道の一つが、設計の質を上げ、バグを防いで拡張性を高めることであるのはいうまでもない。
正規表現でUTNを取得する
インストールが済み、次に行うべき処理はUTNの取得であるが、これはDownloadクラスの、getUtnメソッドで実装する。UTNは携帯電話の製造番号(FOMAの場合はFOMAカードのIDも付加される)であるが、htmlのフォームタグの中に
と、追加することで、UserAgentの後ろに
という形式で追加させることが可能だ。これをPHPの場合は$_SERVER['HTTP_USER_AGENT']から、JAVAの場合はHttpServletRequestオブジェクトのgetHeader()メソッドを使って取得し、さらに正規表現関数を使ってUTNだけを抜き出す処理を実装した。
上記がその処理に当たる。言葉に直すと、
が、";"と行末の間にある場合に、取得せよという命令になる。Javaの場合には、java.util.regexパッケージの、PatternとMatcherという2つのクラスを利用する。
正規表現関数は、iアプリ開発では利用できないので、なじみのない方がいるかもしれないが、これはとても便利な関数であり、例えば、UserAgentから機種名を判別して、非対応機種のユーザにはダウンロードができないという処理なども可能になる。情報もインターネット上に豊富にあるので、この機会に覚えておくといいだろう。
データベースに情報を登録する
続いて、取得したUTNと、ユーザが入力した登録名をregistUserメソッドを使って、DBに登録する作業を行う。registUserメソッドの中で、UserDBAクラスのgetUserIdFromUTNメソッドを呼び出し、すでにユーザ情報が存在するかどうかを調べて、新規ユーザの場合はinsertNewUserメソッド、登録済みユーザの場合はgetUserIdFromUTNメソッドで、データベースに適切なデータを格納している。
データベースへのアクセスは、今回のようにPEARのDBクラスを利用するのが一般的だ。PEARとはPHPに標準でバンドルされている便利なライブラリ集である。PEARのDBクラスを使う利点は、データベース関連の抽象化が容易なこと、エラーをクラスで処理できること、固有のRDBMSへの依存を少なくできることなどが挙げられる。Javaを使用する場合はJDBCドライバを活用する。これも「ビジネスiアプリ開発講座第4回」で詳しく解説されているので、こちらを参考にしてほしい。
ADFファイルを書き換える
最後に、writeJamメソッドによって、テンプレートとして用意したADFの、"AppParam"を書き換える処理を実装した。これでUTN情報をアプリ上から参照することができるようになり、ネットワーク対戦時にこの情報をサーバに通知することで、対戦者同士の識別が可能になる。これは、上で述べてきた正規表現のシンプルな応用である。これで、ダウンロード前の処理は全て完了し、アプリのダウンロードが開始される。サーバの仕事は以上でひとまずお休みとなる。
今回の開発したプログラムのソースはこちらからダウンロードできる。
次回は、ネットワーク対戦部分の、設計から実装までをサーバ・アプリ両面から解説する。ネットワーク対戦アプリを実現する一番重要な部分なので、楽しみにしていてほしい。
筆者紹介──澤橋辰典・武上将樹
ケータイアプリ(iアプリ/EZアプリ/Vアプリ)のNo1ポータルサイト「アプリ★ゲット」を運営するスパイシーソフトに勤務。
澤橋は学生時代、iアプリのコンテストでゲームアプリやツールアプリを制作し、入賞経験がある。また、所属していたサークルの後輩に、ものづくりの楽しさやアプリの奥義を授け、その後輩も入賞していることから、自らをiアプリエヴァンジェリスト(伝道者)と呼んでいる。現在も大手企業にOEM提供しているアプリの開発を行っている。
武上は、イーアクセスとの共同事業「どこでも読メール」や、各社にOEM提供しているアプリメールサービスなどで、主にサーバサイドやデータベースまわりの開発を担当している。ゲームアプリは、もっぱらプレイ専門。
関連記事
- 連載バックナンバー
- 第1回 90xiの時代に何を作るか
ドコモのFOMA 900iシリーズが普及し始め、パケット定額制サービス「パケ・ホーダイ」も人気を博している。こうした新たな時代のiアプリ開発とはどんなものなのだろうか。 - 第2回 カードゲームをつくってみよう
900i専用の、トレーディングカードゲームを開発してみる。まずはカーソルを動かしてカードを選択するところまで作ってみよう。 - 第3回 簡単なゲーム作成の流れを身に付ける
900i専用のトレーディングカードゲームを開発するため、今回はシーン別処理とランダムな値の取得について学んでいく - 第4回 カメラ機能を使ってカードを作ろう
900i専用のトレーディングカードゲームを開発するため、今回は900iのカメラ機能と画像処理機能を利用してゲームの主役であるカードを生成する方法を紹介する。 - 第5回 スクラッチパッドへのデータ保存とダウンロードファイルの処理
900i専用のトレーディングカードゲームを開発するため、今回は携帯のスクラッチパッドを利用したデータの保存と、効果的なデータのダウンロード方法を紹介する。 - ドコモ四国、第3回iアプリコンテストを開催
ドコモ四国は今年で3回目となるiアプリコンテストを開催する。iアプリ部門、Flash部門、四国学生部門の3部門を設け、大賞には賞金30万円などが授与される。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.