プログラマーやエンジニアの方であれば、誰もが一度は「こんなサービスつくれたらいいな。」と、考えたことがあるのではないでしょうか?
技術的には個人でアプリケーションを開発してリリースすることができる方でも、実際に開発まで至らないことが多いのかもしれません。
その大きな理由の一つとして、「サービスをリリースするにあたって、開発以外は何を準備すればいいかわからない」ということがあると思います。
そこで、本記事では、「個人開発のアプリをリリースするまでに準備したこと」を、筆者自身の体験談を交えつつ、紹介させていただきます。
- ※Source・・・
- 弊社とお付き合いのあるITフリーランスの方や弊社プロパーエンジニアを中心に、
現役のITエンジニアの方の体験談をもとに執筆されたシリーズコラム
構想段階
はじめに思いついたアイディアは非常に重要ですが、早い段階で、アイディアベースの状態から、できる限り構想を具体化させておく必要があります。
構想が曖昧だと、後々、色々な問題が発生するだけでなく、アプリの運用自体を断念せざるを得ない状況になってしまうかもしれません。
そこで、構想段階において、私が準備したことを4つご紹介します。
1. ニーズの調査
初期段階では、自分でアプリのアイディアを考えたものの、どの程度ニーズがあるのか分からない、という心配がありました。
そのため、市場の調査と対象ユーザーの絞り込みをし、自分のアイディアが、市場ニーズとマネタイズという観点から妥当性があるものなのか、検討するところからはじめました。
市場ニーズを調査するために、ターゲットユーザーの明確化と、潜在ユーザー数の調査をしました。
まず、自分の考えたアプリを使ってくれそうなユーザーの、年齢・職業・地域・その他の属性などを洗い出し、ターゲットとなりそうな層を分類しました。
その後、分類したターゲットごとに、国の統計情報や、関連メディアやプラットフォームの登録者や閲覧者数から、自分の構想アプリを使ってくれそうな、潜在ユーザーの母数を推定しました。
調査の結果、それなりの潜在ユーザーがいることが確認でき、アプリの収益化の可能性があることを判断できたため、開発に着手することができました。
2. 法務チェック(準備段階)
次に、初期段階で簡単な法務面でのチェックを行いました。
この段階で、私が法律的に気にしたことは、「自分の考えたアプリが、法的な面から運用が難しくなり、中止せざるを得ない状況になる可能性があるか」ということです。
具体的には、他の類似サービスから著作権侵害等の申し立ての可能性や、自分が想定していない法的リスクがあるか、ということを気にしていました。
まだ構想段階ということもあり、弁護士の単発相談サービスを利用して、弁護士の先生に相談ベースで法的リスクについて確認しました。
構想段階のアイディアを先生に話したところ、この段階では大丈夫そうと判断いただきました。
本格的な法務チェックは、ある程度開発が進んでから、弁護士の方にアプリの画面を見てもらって実施しましたので、そちらについては、後述の『法務チェック』にて、記載します。
3. タイトルの決定
サービスのタイトルも、なるべくこの段階で決めておいた方が良いと思います。
タイトル決定にあたっては、以下の3つの要素を考慮して決定しました。
- 他のサービス名と被らないこと
- ユーザーにとって覚えやすいこと
- サービス名から、どのようなサービスかイメージしやすいこと
- SEOの観点から、Google検索に引っ掛かりやすいこと
※自分の場合は、なかなか良いタイトルが決まらず、仮タイトルを設定して開発をスタートしました。ですが、ソースコードの中にアプリのタイトルを記載する必要がある箇所が多く、後々、無駄な改修の手間が発生する原因となってしまったので、可能であれば開発前の段階でタイトルは決定しておく方が良いと思います。
開発
エンジニアの方にとって、開発フェーズは得意な分野であると思います。
そのため、ここでは技術的な話というより、『個人開発をするにあたって気をつけたこと』という点に絞って、解説をします。
技術選定
開発にあたっては、何の言語やフレームワークを使用するか、選定する必要がありました。
自分の場合は、開発やテストの効率と汎用性を重視し、Django と Python を使用することに決めました。
1. 開発効率
Django場合、クラスベースビューを使用すれば、ある程度、自分でビジネスロジックやクエリを作成しなくても、開発を進めることができました。踏み込んだ機能を作る場合は、クラスベースビューだけだと足りないのですが、出来る限り効率よく開発したかったので、むしろ仕様や設計をDjangoに合わせる方向で設計・開発を進めました。
2. テスト効率
開発効率とも関係があるのですが、クラスベースビューの機能を使えば、Django側で性能が担保されているので、必要なテストの数を大きく減らすことができました。
3. 汎用性
言語の汎用性という面から、Pythonを使用しているフレームワーク(Django)を選定しました。構想時点では、他の言語やフレームワークでも開発可能だったのですが、将来的に機能を追加する可能性を考えると、なるべく汎用性の高い言語であることが望ましいと考えました。
Pythonであれば、Web開発以外にも、AI・統計・スクレイピングといった別分野の技術にも応用しやすく、言語の汎用性という点も考慮して選定しました。
設計
個人開発ということもあり、案件の業務内で作成するような詳細な仕様書は作成しなかったのですが、画面遷移図とER図だけは作成をしました。
画面遷移図とER図だけ念入りに作っておけば、大まかな機能や仕様の認識がブレることなく、個人開発のレベルでは基本的に困ることはありませんでした。
法務チェック
試作段階のアプリを操作できる状態になったたら、実際に弁護士の先生に法務チェックを依頼しました。
1. 弁護士の決定
まず、依頼する弁護士事務所を決定するところから始めました。
自分が連絡した弁護士事務所の場合は、すべて初回の見積もり相談は無料でできたため、複数の弁護士事務所に相談と見積もり依頼をしました。
試作段階のアプリを検証環境にデプロイしておき、実際に画面を操作してサービスの概要を説明することで、色々とアドバイスを多くいただくことができました。
後日いただいた見積もりの金額と、相談した時の印象で、実際に依頼する弁護士を決定しました。
2. 依頼内容の決定
弁護士の先生から見積もりをいただいた際は、内容ごとに、金額を算出いただきました。
具体的には以下のような内容です。
- プライバシーポリシーについて
- 利用規約について
- 著作権について
- その他上記に関連する注意点や改善点などの包括的なアドバイス
全部依頼すると、予算オーバーになってしまうので、今回は利用規約についてのみ依頼することにしました。
プライバシーポリシーは、別のWebサービスを利用することで、安価に自動作成をすることができ、弁護士の先生には依頼しない方針にしました。
著作権やその他のアドバイスについては、利用規約の中に盛り込むで、まとめてアドバイスをもらう方針にしました。
さらに、自分で関係法や類似サービスの利用規約等を調べ、自分で利用規約の土台を作成した上で、チェックの依頼をしました。
作成済みのものに対してアドバイスをいただくため、0から利用規約を作ってもらう場合に比べ、費用を大きく抑えられました。
何より、自分自身がサービスに関わる法的知識やリスクを把握することにつながったので、利用規約を自分でつくって、最終的に弁護士の先生に法務チェックをいただく進め方は、非常におすすめです。
イラストの外注・作成依頼
サイトのTOPページに掲載したり、マーケティングに使用したりする目的で、イメージキャラクターの作成・外注をしました。
外注の依頼をする際は、なるべくどのようなイラストを作成してもらいたいか(キャラクターの場合は、おおよその年齢、髪色、ポーズ等)を細かく定義しておくと、イラストレーターの方は作業がしやすくなるかと思います。
SEO対策
準備段階でのSEO対策は、内部SEO対策、Google Search Console の登録とクロールのリクエスト、 Google Search Analytics への登録を実施しました。
内部SEO対策
内部SEO対策で行ったことは主に以下の点です。
- 全ページの html に Title, Description, h1 を設定
- 全ての画像に alt タグを設定
- URLの見直し(正規化をして重複ページをなくす)
- サイトマップの作成
特にTOPページの Description については、サービスの内容が分かりやすく伝わるよう、文章を考えました。
全ページ・全画像に、適切な Title, Description, h1, alt タグを考案・設定するのは、数日かかりましたが、Google Search Consoleの登録とクロールのリクエストをする前に、全部完了させておきました。
Google Search Console の登録とクロールのリクエスト
Google Search Consoleは、Google社が提供する、SEO管理ツールです。
Google Search Consoleに登録し、Googleにクロールをリクエストしました。
Googleにサイトのクロールをリクエストすることで、Googleの検索システムに、新しいサイトとして認識・把握されます。
Googleでの検索に引っかかるようになったり、検索順位を上げたりすることにつながります。
また、クロールのリクエストだけでなく、Google Search Console を使うことで、サイトの検索トラフィックや掲載順位を測定できるなど、SEO改善に役立てることができます。
Google Search Analytics に登録
Google Search Analytics とは Google社のWebページアクセス解析サービスです。
サイトに訪問したユーザーの流入元(オーガニックサーチ、各種SNS等)や、ユーザーの属性(国・地域やデバイス等)といった情報を分析することができます。
サイトに訪問するユーザーの情報を分析するため、登録しました。
SNSの選定と準備
マーケティングに活用するため、SNSのアカウントを開設しました。
SNSのプラットフォームは、Facebook, Instagram など色々ありますが、開発したアプリと想定するユーザーとの相性を基準に、Twitterを選択しました。
また、イラストレーターの方に作成いただいた公式キャラクターを、アカウントのアバターやTOPページに使用することで、Twitterユーザーに認知してもらいやすくなりました。
まとめ
本記事では、筆者自身の体験談をもとに、個人開発アプリのリリースにおいて準備したことを紹介させていただきました。
自分でサービスを開発して世に出すことは、大変なこともあるものの、とてもやりがいがあり、楽しい作業です。
また、個人開発を通じて、技術的にも大きく成長でき、新しい技術の案件に参画できるチャンスにもつながります。
私自身、DjangoやPythonは未経験だったのですが、個人開発のアプリが評価されて、Django案件のオファーをいただけた経験があります。
※関連記事「フリーランスエンジニアが、未経験の技術案件に参画するまでに実践したことと体験談」や「Laravelエンジニアが、Djangoに挑戦した感想と体験談」についても、ご覧いただけたらと思います。
本記事を読んでくださった方に、個人アプリ開発に挑戦してみたいと思っていただけたら幸いです。
掲載記事に関してのお問合せと、
記事執筆にご興味をお持ちの方・ご協力いただける方は下記にご連絡下さい。
株式会社フォスターネット CV課 keiei-kikaku@foster-net.co.jp
[ 寄稿者 ]
パッタナー株式会社
代表取締役社長
佐藤寛人
・都内で特別学校の教員として9年間業務に従事。在職中、JICA青年海外協力隊にてタイ派遣を経験。
・2020年4月から、プログラミングを学習しITフリーランスとして活動