スマホアプリ開発を外注する際の注意点とフロー

最近、スマホアプリの開発を外注する機会があり、無事リリースまで こぎつけたものの、反省する点も多々あったので、今後のためにも どのような流れで行えば良いのかを まとめておきます。

■要件定義

必要な機能を箇条書きにしながら、絞っていきます。

開発手法としては MVP(minimum viable product)がおすすめです。

実用に足る最小限の製品(MVP)をリリースし、ニーズをみつつバージョンUPする方向で進めます。

■画面設計

外注先の開発会社に、スマホアプリの概要を伝えやすくするために、概要画面設計を作成しておきます。

紙でまず画面設計を簡易的に書きます。

最初から、Adobe XDやSKETCH等のプロトタイプ作成ツールで、画面設計を行うよりも、紙で書きながらアイディアを出した方が良いですね。

ラフなスケッチにすることで、レイアウトとフローに集中できます。
(ツールを使うと ツールの使い方に労力を奪われますので。)

紙で書いたものを基にソフトを使って、開発会社に見積作成を依頼する際の資料とし完成させておきます。

以下のAdobeのブログでも、紙の力のことが書いてありますね

▼プロトタイプをつくる理由と紙の力
https://blogs.adobe.com/japan/web-fundamentals-wireframing-prototyping/

■技術選定

要件定義・画面設計がまとまってきたところで、技術選定を行います。

ネイティブにするかクロスプラットフォームにするかで、今回悩みました。

◆ネイティブアプリ
iOS:Objective-CまたはSwift
Android:JavaまたはKotlin(コトリン)

◆クロスプラットフォームアプリ
React Native
Flutter (フラッター)
Xamarin (ザマリン)

◆クロスプラットフォームアプリ(WebView)
Ionic (アイオニック)
Monaca (モナカ)

◆ガワネイティブアプリ
ネイティブアプリだけど中身はWebViewというアプリ

速度・操作性を考えると 全ネイティブが理想なのは明白ですが、そこは 今回のスマホアプリの特性や開発コスト・保守運用を考えつつ、決めていきます。

結論として、今回リリースしたアプリは

ネイティブで開発、その内の40%ほどをWebViewにする、ネイティブアプリ・ガワネイティブアプリを掛け合わせたもので作成しました。

クロスプラットフォームアプリ(React Native)と最後まで悩みましたが、ios/androidのOSバージョンアップ時に 不安なため、React Nativeは今回は見送りました。

また、主要機能はネイティブに、お知らせ等はWebViewといった形のアプリが多いことを、開発会社との打ち合わせ時に聞き、この技術仕様に決定しました。

反省点は、
・主要機能でないと考えて WebViewで作成したページが実は重要だった
・WebViewの表示速度が思っていた以上に遅い(特にios)
ということが起きたことです。

ユーザーの使用頻度をみつつ ネイティブに作り直すことも考えています。

■開発会社選定

要件定義・画面設計をみせつつ、複数の開発会社と会い、見積もりをお願いします。

11月当初から選定を開始、翌年3月末のリリースを考え動き出しましたが、アプリ開発会社の年末・年度末の忙しさはすごいです。

小さな仕事(500万以下)はやらないという話もありました。

またアプリエンジニアが現在埋まっているので、すぐに稼働できないという返答も多くありました。

開発会社選定時で、注目すべき点は、担当ディレクターの能力です。

実作業することとなるエンジニアの能力を、こちら側で把握するのは困難なので、担当ディレクターをしっかり見極めましょう。

■発注

外注先が決定したら、NDAを結び、開発費用、納品物、納品日を確認後、発注です。

納品日に関しては、エンジニアリソース・Appleの審査等々あり、明確に納品日を決められないという開発会社も多いです。

今回発注した会社も、ある程度、納品日に幅をもたせて、お互いに共有するということにしました。

今回スマホ開発を発注して感じたことは、動作テスト・不具合改修時間が、WEB開発と比べ、スマホアプリ開発は 3倍程かかるなということです。

そのためリリーススケジュールは 相当余裕をもちましょう。なお 今回 想定より1ヶ月リリースが遅れました。

■仕様詰め

正式発注後、

最初の段階の仕様詰めが一番重要です。
(全ての開発にいえることなので、スマホアプリ開発に限ってのことではありません。)

今回、私にスマホアプリ開発経験が少なかったこともあり、ディレクションもお願い(ディレクション費用 全体費用の10%くらい)したのですが、

決して任せきりにしてはいけません。

また相手先から来た質問にはすぐ答えるようにして、仕様・画面設計を徹底的に詰めましょう。

丸投げは決してダメです。

■開発

開発中は、常に質問や仕様詳細を、開発会社とチャットでやりとりしました。開発先のエンジニアの進捗を送らせないためにも、質問に対する返答は すばやく行いましょう。

■リリースのために用意するもの

リリースの前に、こちら側で用意するものをあるので、その準備をしましょう。

・アプリの説明(App Store/Google Playに載るアプリ説明文)
・アプリ利用規約
・プライバーポリシー

今回 多言語対応(日英)アプリだったため、アプリ利用規約・プライバーポリシーは日本語版と英語版を用意しました。

■リリース前テスト

一通り完成したら、実機テストを行います。

今回の開発会社はDeployGateというツールを使っていたので、それでアプリを共有してもらい、動作テストを行いました。
https://deploygate.com/

■審査・リリース

ios/androidの審査に要する時間を しっかり把握しておきましょう。

◆ios
Appの審査は50%が24時間以内に、90%以上が48時間以内に完了します。
https://developer.apple.com/jp/app-store/review/

◆android
2~3時間でリリース公開されます。

■保守

リリース後もスマホアプリ保守には相応のリソースがかかります。端末毎の不具合対応・OSアップデート時対応で目が回ります。

スマホアプリ保守は、知見がたまりましたら 別記事にして公開したいなと思っています。


この記事をシェア