必見!iOS 8時代のiPhoneアプリ開発見積もり時の8つのポイント Part1

こんにちは!おおはしりきたけです。iOS 8がリリースされてもうすぐ3ヶ月になりますね。iPhoneアプリ開発も益々勢いが伸びています。クラスメソッドも開発ラインが年々増えており、非常に嬉しい状況です。しかし、対応するOSバージョン、端末など増えて来ており、見積もりも難しくなってきている状況です。今回は、iOS 8時代の見積もり注意点を2回に分けて書かせていただきたいと思います。Part1では、アプリの外部的要素、Part2では、アプリ内部的要素のポイントを書かせていただきます。

1.OSバージョン

こちらに書かせていただいたようにiOSが発表されたのが、2007年です。そこから現在まで毎年OSがリリースされて現在は、バージョン8になっています。開発する上で、OSのバージョンターゲーットをどこにするのかは非常に重要です。AppStoreでリリースされている有名なアプリがどのOSをターゲーットにしているのか幾つか調べてみました。iOS 5から対象にしています。

国内で様々なターゲットユーザーに利用されているアプリは、iOS 5までカバーしているアプリが多かったですが、FacebookやTwitterなど海外で幅広く利用されているアプリは、iOS 7以降ということになっています。これは下位互換を敢えて減らしているのだと思います。

2014年10月27日にAppleが発表したOSバージョンごとのシェア率は以下になります。

スライド1

実際どこまで対応必要なの?上記の5%の対応が必要なのか?以下がポイントになります。

いつリリースするのか?

iOSは、6から9月にリリースされています。アプリのリリース時期によって対応しておくOSを検討しておく必要があります。特に9月にリリースしようとしているのに、最新OSを対応しないというのは難しいところですが、Beta版も配布されていない場合、どのような影響があるか把握できない状況なので、もし見積もり時にリリースが9月以降だけど、Betaがリリースされていない状況の場合は、別途対応にしておいたほうが良いです。

どのような機能を利用するのか?

例えば、iBeaconを利用するアプリは、iOS 7以降でしか利用できないので、必然的に7以降の対応になります。その他は6以降じゃないとAutoLayoutが使えないとかもあります。また、新規の場合はそこまで影響でませんが、アプリのアップデートのためのバージョンアップ対応というのはかなり大変です。iOS 6→iOS 7の場合はUIも大幅に変更になったため、大変そうだという認識されていましたが、実はiOS 7→iOS 8の場合も細かい部分が色々変更されてます。GPSを利用した位置情報の取得やUIAlertViewからUIAlertControllerに変更など、地味ですが以外に作業は多かったりします。

クラスメソッドではどうしているのか?

新規のアプリの場合は、必ず7以降にしています。お客さんから6以降という話もでてくることありますが、上記のシェア率など、本当に必要なのをかを説明して話し、納得してもらって進めていくことにしています。

2.端末

9月にiPhone 6とiPhone 6 Plusが発売されついに、統一されていた横幅が変更されました。コレにより、位置を絶対値で開発していた開発者は修正に大変な時間がかかったことだと思います。4以降でも以下の端末があります。

機種 ディスプレイサイズ iOS 8対応
iPhone 4 960×640px(326ppi)  ×
iPhone 4s 960×640px(326ppi)
iPhone 5 1136 x 640px(326ppi)
iPhone 5s 1136 x 640px(326ppi)
iPhone 5c 1136 x 640px(326ppi)
iPhone 6 1334 x 750px(326ppi)
iPhone 6 Plus 1920 x 1080px(401ppi)

ご覧のとおり、9月に発売された、iPhone 6と6 Plusはディスプレイサイズが変わっています。またiPhone 6 Plusは、デバイス・ピクセル比が3.0となっており、@3xの画像が必要になります。これまで開発者は、3.5インチと4インチの縦幅の部分だけ意識していればよかったのですが、iPhone 6と6Plusが発売されたことにより、4.7インチと5.5インチも意識して開発する必要があります。対応していなくても表示はされますが、6Plusでは画面の表示項目は変わらず、画面の表示部品が大きくなり、らくらくフォンのようなUIになります。その為、iPhone 6への最適化、iPhone 6 Plusへの最適化が必要なのかも含め検討が必要になります。iOS 6から導入されたAuto Layoutが、ここに来て必須の技術となってきました。画面固定の場合は、そこまで意識しなくても問題が発見されることは少なかったですが、iPhone 6と6 Plusのの対応ではAuto Layoutをしっかり覚えて対応する必要があります。iPhoneもいよいよAndroidのように複数解像度の対応が必要な時代になってきました

何を気をつけておくべきか

新しい端末は対応必須なので、まずは、古い端末を何処まで対応するのか?を明確に決めておく必要があります。「対応しておくと良い」と言うのは、「対応しなくても問題ない」という意味にもなります。どこまで網羅して開発しなければならないのかという開発者の負担にもなりますし、テストの工数も増えますので、必要ない端末は、見積時に見切っておく必要があります

3.開発対象

開発対象というのは、機能はもちろんの事、作業範囲も含まれてきます。例えばデザインはどうする?外部のシステムとの連携はないのか?申請まで作業範囲なのか?などになります。

機能の内容

クラスメソッドでは、過去Javaの業務システム、AdobeのFlexを利用したシステム開発などを行ってきました。その時は、開発期間や体制もじっくり検討しながら進めていくことが可能な時代でしたが、iPhoneアプリ開発では上述したとおり、毎年のOSアップデートであったり、とにかく早くリリースするというのが重要になっており、完全に要件が固まっていないまま見積もり依頼が来ることも多々あります。そういう状況では、開発会社によって見積もりが大きく変わるパターンも多々あります。開発するアプリの企画やアイデアをヒアリングしても、開発しながら要件が変わっていく部分というのも良くあることです。見積もり時は、こちらの前提を記載し認識がずれないようにしておくことが大切です

リリース申請

リリース申請の作業やリリースの準備作業というのは、そこそこの作業があります。こちらを開発側でやるのかもしっかりと認識合わせしておく必要があります。弊社ブログには、「よく分かる!iOS アプリのリリース手順のまとめ」として作業内容がまとまっていますので、是非とも見ていただければと思います。

4.開発対象以外の作業

開発対象以外の作業には、以下の様なものがあります。

開発ツール

ソースコード管理のためのGithubやCI環境を提供してくれるTravisCI、プロトタイプを作るのに便利なProttなど便利な外部ツールも増えてきている状況で、どのようなツールを利用して開発するのかも、見積もり時には必要なポイントになります。無料のツールの方が良いように思えますが、自分たちで環境を構築してメンテンナンスする作業をするより、便利なツールがたくさん出ているので、どんどん利用したほうがいいと思います

ハードウェア

最近では、ハードと連携するアプリ開発も増えて来ています。ハードは、借りることができるのか?こちらで購入しておく必要があるのかなども見積もりの注意点としておくべきです。

サーバー

クラスメソッドでは、サーバーサイドの開発を行う場合AWSを利用することがほとんどですが、開発期間中のサーバー利用費などは、見積もり時に見落としてしまう部分でもあるので確認ポイントとして置いておいた方が良いです。

交通費

遠距離のお客さんと仕事する場合、新幹線や飛行機などを頻繁に利用することもあります。人数と頻度で、大分変わってきますのでこういった部分も確認しておくポイントになります。

まとめ

Part1は、外部的な見積時のポイントということで書かせていただきました。OSバージョンと端末の組み合わせは、これからドンドン増えてきます。クライアント側からの要求と開発側の制限というのが今後も広がっていくことになると思いますので、開発側も言われるがままではなく、クライアントさんのためになる情報を提供し、意識合わせて開発していくことが非常に大切になってきます。Part2では、開発者が考えておくべきポイントを書きますので、こちらもご期待ください。