殿堂入り記事

Android案件の見積り

2012.02.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Android案件を何件か担当して見積り前に確認しておいた方がいいと思うことや決めておくこと、
事前に説明しておくべきことがいくつかあったのでまとめます。

①ハードウェアの選定

・どの端末をサポートしますか?
動作確認を行う端末を決めてもらいます。
複数の端末をサポートする場合、テストも複数の端末で行うため工数もそれに応じて増やす必要があります。

・サポートするAndroidのバージョンは?
端末を決めた時点でほぼ決まってしまいますが"Android 2.2以上"のようにサポートする最小のバージョンを決めます。
特にお客様にご要望がない場合はアプリのリリース時期と端末、OSのシェアなどを考慮して提案しています。

・タブレットでの使用は想定していますか?
これはスマートフォン用に開発している案件で後からタブレットでも使用したい、
というご要望を受けることがあるためです。

・マルチデバイス対応にする予定はありますか?
ワンソースで開発できるAIR for AndroidやPhoneGapの採用も考慮に入れるためです。

・端末を貸してもらえますか?
ない場合はフィジビリティチェックができないので早めに購入する必要があります。

②実装技術

ネイティブアプリの他にはAIR for AndroidやPhoneGapなどがあります。
ネイティブアプリに比べるとAIR for AndroidやPhoneGapは制約がある場合がありますので事前に調査することをお勧めします。

説明しておいた方がいいこととしては
AIR for Androidの場合

  • ネイティブに比べるとパフォーマンスが悪い。
  • ランタイム同梱の場合、アプリサイズが大きくてダウンロードに時間がかかる。
  • 見た目がネイティブと違う。

PhoneGapの場合

  • エフェクト、スクロール、画面遷移がスムーズではない。
  • 見た目がネイティブと違う。

などがあります。

③スマートフォン特有の機能

・画面の自動回転に対応しますか?
レイアウトにもよりますが縦位置、横位置固定の場合と自動回転に対応では工数が多少変わってくるので
確認しておいた方がいいです。

・ハードウェアキーの使用
Androidのネイティブアプリの場合はほとんどのアプリケーションでメニューを使用できると思います。
またデフォルトのBackキーの動きで問題ないか、なども確認しておいた方がいいと思います。
Activity内で1つ前の状態を戻すような制御の場合はアプリ側で実装する必要があります。

・カメラ機能の使用
複数の端末で動作保障する場合に実装をメーカー毎に分けなければいけないことがあります。

④パフォーマンス

画像処理など高負荷な処理が必要な要件があった場合、性能要件を決めておきます。
性能要件によってはAndroid NDKで高速化するなどの対応が必要となるので見積りに入れておきます。

⑤多言語化

多言語化のご要望があった場合ですがアプリ内で変更するのかOSの言語設定に合わせるのか決めておきましょう。
あとは英語の場合は文言を頂けるのか、翻訳までするのかも確認します。

⑥納品物

・テストにエビデンスは必要でしょうか?
実機でテストするため機種によってはキャプチャが取れない場合があります。
DDMS を使用して取得することもできますが、デスクトップアプリよりも手間がかかることを考慮します。

⑦リリース方法

一般に公開するアプリの場合はAndroid Marketへの登録までを請け負うのか確認します。
公開しないアプリあればインストール方法を決めてもらいます。
Webサーバを構築してブラウザからインストールするかPCに接続してインストールすると思いますが、
どこまでを請け負うのか確認しましょう。

またインストール手順書などが必要かどうかも確認しておくといいと思います。