2012年2月23日木曜日

スマホ3大OS同時開発は、どこまで可能なのか

 ブリリアントサービスのかわかみひろき氏、八木俊広氏、原昇平氏の講演「Android, iOS, Windows Phone向けにアプリを同時開発せよ」では、Android、iOS、Windows Phoneの3つのプラットフォーム向けに「デブサミ用のTwitterクライアント」を受託開発するという案件を想定した発表があった。

 対象が3つのプラットフォームということで、まず考えるのはクロスプラットフォームのツールを使っての開発だろう。ところが、PhoneGapを利用してプロトタイプを作ってみたところ、一部のプラットフォームで期待した通りの動作にならないという問題が発生した。

 また、要件定義を正しく行わなかったために、そもそも発注元はプラットフォームごとの特色を出すことを望んでいたという事実が後になって発覚した。つまり、そもそもクロスプラットフォーム開発が向かない案件だったわけだ。

 これが物語の出発点である。では、この複数プラットフォーム向けの開発案件を成功させるためには、どうしたらいいのか。先の失敗からネイティブ開発が適していると結論付けたうえで、開発の各工程において注意するべきポイントが紹介された。

 まず、開発前に確認しておくべきこととして、次の8つの項目が挙げられた。

  1. 【OSのバージョン】すべてのバージョンでは対象が広すぎて互換性の確保が困難
  2. 【端末の種類】同上
  3. 【サポートする言語】スマートフォンの場合、販売チャンネルがワールドワイドになる
  4. 【タブレットはどうするか】画面が大きいためUXが異なる
  5. 【テスト端末の確保】自前で用意する必要があるのか
  6. 【公開予定日】審査期間も考慮
  7. 【暗号化の有無】コンテンツ保護やユーザー情報の管理をどうするのか
  8. 【納品の仕方】ソース+アプリの納品なのか、マーケット公開までやるのか

 UIデザインを考える際には、最初に必要な画面を洗い出して構成を決める。そのうえで、次の4点を意識してデザインすることが重要だという。

  1. プラットフォームごとのUI部品の違い
  2. ハードキーによる操作感の違い
    • iOSはホームボタンのみで、その他の操作はすべて画面上で行う
    • AndroidとWindows Phoneにはホーム以外のハードキーがある
  3. 画面遷移の違い
    • iOSはナビゲーションバーとタブ
    • AndroidはActivity
    • Windows Phoneはパノラマとピポット
  4. 画面解像度やスクリーンサイズ、画面密度(Android)の違い

 これらを考慮すると、画面仕様はプラットフォームごとにまったく違ったものになることは明らかだ。

 実際に開発を行う段階では、最低限次の6つのリソースを用意する必要があるとのこと。

  1. 【アイコン画像】プラットフォームごとにサイズが異なる
  2. 【スプラッシュ画像】同上
  3. 【文字列リソース】プラットフォームごとに形式が異なるほか、サポートする言語の数だけ必要
  4. 【画像部品】解像度ごとにそれぞれ必要
  5. 【メディアリソース】動画や画像のサイズ制限が異なる
  6. 【マーケット用リソース】マーケット公開の用意が必要

 テストおよびマーケット配信のための準備としては、次の6つのポイントを考慮する必要がある。

  1. 取得しなければならないアカウント
  2. アカウント取得に掛かるコストや有効期限
  3. アカウント取得にかかる時間
  4. 公開のための審査と審査機関
  5. リジェクトの可能性や、その影響
  6. アプリの容量

 その他、講演では冒頭の想定案件に対する開発を実際に行い、プラットフォームごとに微妙に異なる動作や実装方法の違いにどう対処するかといったTipsも紹介された。

 クロスプラットフォーム開発のメリットに注目が集まっている昨今だが、現実的には、まだ課題が多いことや、開発要件を満たすために(そして、プロジェクトを成功に導くために)何を意識すべきかなど、複数プラットフォーム向け開発のためのヒントが示された発表だった。

0 件のコメント:

コメントを投稿