目次

まえがき

はじめに
お問い合わせ先
免責事項

第1章 未経験から3ヶ月でつくる!個人開発マニュアル

1.1 1か月目 サービス設計と基礎知識の学習
1.2 2か月目 エラーで行き詰まってもくもく会に参加しまくる
1.3 3か月目 70%の完成度でリリースする
1.4 まとめ

第2章 とがったテーマの婚活サイトを開発して得た経験

2.1 作った動機
2.2 開発中に苦労したこと①:技術レベルが足りない!
2.3 開発中に苦労したこと②:デザインができない!
2.4 開発中に苦労したこと③:リリースに踏み切れない!
2.5 開発中の良かったこと
2.6 リリース後の大変だったこと
2.7 リリース後の嬉しかったこと
2.8 最後に

第3章 アイデアからリリースまで、Webサービス開発を徹底詳説

3.1 サービス紹介 - ありそうでなかったWEBサイト
3.2 企画 - ユーザーと向き合って考える
3.3 開発 - 小さく始めるアグリゲーションサービス
3.4 リリース - 価値を届ける
3.5 まとめ - 「私の個人開発」奮闘記

第4章 「通知止まらんwww」体験アプリを作ったらバズって通知止まらんwww

4.1 はじめに
4.2 作ったもの
4.3 苦労した点
4.4 まさかの大反響
4.5 おわりに

第5章 積読の解消を促すWebサービスをリリースした話

5.1 サービス内容
5.2 きっかけとコンセプト
5.3 使い方
5.4 ランキング機能
5.5 Twitterでシェアして積読金額を晒す機能
5.6 リリースした後のプロモーション
5.7 登録サイトに投稿・依頼
5.8 いろんなところで記事を執筆
5.9 進捗・使い方・Tipsに関する投稿
5.10 おわりに

第6章 累積120万DL!なぜかインドで大ヒット!クソアプリを量産しよう!

6.1 真実はいつも1つ!「蝶ネクタイ型変声機」
6.2 ほろびこそわがよろこび!「RPG風画像ジェネレーター」
6.3 おらワクワクすっぞ!「瞬間移動」
6.4 野球好きなあなたに!「バッティングセンター 〜無限素振り〜」
6.5 サムライが好きなあなたに!「侍刀 〜The Samurai Sword〜」
6.6 鳴らして遊ぼう!「ジングルベル」
6.7 正真正銘のクソアプリ!「つんつくつん」
6.8 埼玉の食卓から、世界のShokutakuへ
6.9 あくまでクソアプリ

第7章 ダウンロード数と収入報告!スマホアプリの個人開発は儲かるのか?

7.1 スマホアプリの個人開発は儲かるのか?
7.2 アプリ開発でのお金の稼ぎ方
7.3 アプリのダウンロード数と収入報告
7.4 ダウンロード数の考察
7.5 有料アプリの必要性について
7.6 アプリ開発は転職に有利
7.7 アプリ開発の壁
7.8 アプリ開発で稼ぐために
7.9 まとめ
7.10 最後に

第8章 格安スクレイピングを支える技術

8.1 はじめに
8.2 このパートで学べること
8.3 スクレイピングで気をつけるべきこと
8.4 スクレイピングを行うプログラムの基本構造
8.5 スクレイピングが捗るライブラリーの紹介
8.6 おまけ:オススメのインフラ
8.7 あとがき

第9章 個人開発だけで食べられるようになるまでにやったこと

9.1 自己紹介
9.2 付箋アプリを作った理由
9.3 インストールしてもらうためにやったこと
9.4 使い続けてもらうためにやったこと
9.5 オシャレなUIにするためにやったこと
9.6 収益を得るためにやったこと
9.7 安全で効率的な開発のためにやったこと
9.8 プロ個人開発者の働き方
9.9 プロ個人開発者の考え方

第10章 ストアからアプリが削除!消された個人開発アプリとその理由を公開!

10.1 アプリの開発歴や実績はどのくらいあるか
10.2 これまでどんなアプリを作ってきたのか
10.3 どんなアプリを消されてしまったか
10.4 事例1:[警告]コンテンツレーティングが合っていない
10.5 事例2:[警告]プライバシーポリシーがない
10.6 事例3:[削除]イラストの露出度が高い(Part1)
10.7 事例4:[削除]イラストの露出度が高い(Part2)
10.8 事例5:[削除]広告の表示方法が望ましくない
10.9 Google先生に怒られないようにするためには

第11章 自分の漫画ライフを充実させる「新刊通知アプリ」を作ってみた

11.1 どのようなアプリを作ったのか
11.2 なぜ作ったのか
11.3 どのように作ったのか
11.4 どのような苦労があったか
11.5 どのような学びがあったのか

第12章 カメラアプリを開発して憧れのレビューサイトに掲載された話

12.1 遅延再生カメラ
12.2 レビューサイトでの紹介
12.3 ダウンロード数は……
12.4 まとめ

第13章 会社が潰れて1ヶ月でリリース&起業!エンジニア社長の奮闘記

13.1 はじめに: ある日のPitPaへの音声投稿
13.2 1st Mission - 1ヶ月でアプリをリリースせよ
13.3 2nd Mission - 10万再生を目指せ
13.4 3rd Mission - グロースハックせよ
13.5 4th Mission - イノベーションを起こせ
13.6 おわりに: ある日のPitPaへの音声投稿

第14章 個人開発のモチベーションが続かない、作り終わらない。その原因と対策

14.1 クリエイターの創作活動を応援するサイト「ためしがき」
14.2 クリエイターの創作活動を挫く「どうしてこうなった」の数々
14.3 原因1: 構想がでかすぎて作りきれない
14.4 原因2: 技術的にしんどい
14.5 原因3: 作ってる間に似たようなサービスが先に出てきた
14.6 原因4: 他のメンバーが動かないor自分の負担が大きい
14.7 原因5: 作ったけど誰にも使われなくて悲しい
14.8 まとめ

第15章 学生エンジニアが語る「技術学習 x 個人開発」のススメ

15.1 自己紹介
15.2 React と恋に落ちた理由
15.3 Study Typer とは
15.4 技術的なお話 〜どうやって作ったか〜
15.5 システム構成
15.6 英単語データ
15.7 Reactの実装
15.8 最後に

第16章 「このままでいいの?」駆動のサービス開発

16.1 地域の魅力をクイズにする「Korette」
16.2 諦めかける日々との戦い
16.3 「このままでいいの?」を持つということ
16.4 アイデアはどうやったら思いつくのか
16.5 サービスを開発したいと思っている人へ
16.6 Koretteのこれから
16.7 あなたの「このままでいいの?」は何ですか?

第17章 使われなくてさみしい問題を解決する(しない)方法論

17.1 Webサービスの死因
17.2 個人開発サービスの一生
17.3 失敗例:book loves music(ブック・ラブズ・ミュージック)
17.4 「バズか死か」の二元論を避ける
17.5 【1】CGMではなくツール型にする
17.6 具体例:THE TOURNAMENT(ザ・トーナメント)
17.7 【2】できるだけ何も作らない
17.8 具体例:ブンゴウメール
17.9 具体例:THE TIMELINE
17.10 【3】絶対に赤字にはしない
17.11 具体例:スマホde百人一首
17.12 具体例:ゾラサーチ
17.13 死なないだけだと、ただのゾンビ
17.14 最後は確率論、いっぱい作ろう

第18章 サービス開発のハードルが高いあなたに!便利プログラム開発のススメ

18.1 どんなプログラムを作ったの?
18.2 なんで作ったの?
18.3 システム構成
18.4 開発中のトラブルと反省
18.5 便利機能を開発してみてよかったこと
18.6 振り返ってみて

第19章 アクセスログから見えた時代の移り変わり

19.1 サービス紹介
19.2 モチベーション
19.3 AWSの構成
19.4 コミュニケーション促進
19.5 アクセスとツイート
19.6 ちょっと特別な経験

第20章 Pythonと野球オープンデータで地図アプリを作る

20.1 対象読者
20.2 きっかけは「もくもく会」参加
20.3 野球オープンデータ「Retrosheet」
20.4 野球(MLB)データベースを作る
20.5 インフラ構築を自動化
20.6 試しにPythonでデータを使ってみる
20.7 データを使ってやりたいこと
20.8 球場データを探す
20.9 Beautifulsoupでスクレイピング
20.10 geopyでらくらくGeocoding
20.11 bottle + Google Map APIでサクッっと地図アプリを作る
20.12 地図アプリの完成
20.13 まとめ

第21章 困りごとを1日で解決する「どやっ」駆動のツール開発

21.1 どんなツールを作ってるか
21.2 個人開発ソフトウェアを一挙紹介
21.3 「えいや!」→「どやっ!」→「いいね!」の成功体験
21.4 気をつけているポイント

第22章 10年つづくWEBサービスの育て方 〜地道な宣伝から法人契約まで〜

22.1 街の電源検索サイト「モバイラーズオアシス」
22.2 サービス開発のきっかけ
22.3 サービス公開も反応なし、地道なデータ入力
22.4 サイトで扱っているデータを法人に販売
22.5 サービスが手のひらから飛び立つとき

第23章 Build to Think!

23.1 15年間を振り返って
23.2 つくりたいからつくる
23.3 個人開発と創意工夫
23.4 Build to Think
23.5 オフラインで閲覧できるブログ
23.6 Build to Think のサイクルを広げる
23.7 みんなでThink!
23.8 おわりに

第24章 14年かかった!個人開発で月収100万達成した話

24.1 自己紹介
24.2 実際の月間PVと月収
24.3 バズった経験
24.4 ランニングコスト
24.5 月収100万円で見えてきた事
24.6 失敗を重ねて得た知見
24.7 アイデア編
24.8 システム編
24.9 保守はツライ
24.10 メンテナンス編
24.11 マーケティング編
24.12 トラブル編
24.13 マネタイズ編

第25章 それでも挑戦は止められない。個人開発の絶望と希望

25.1 純粋な個人開発は楽しい
25.2 目的に向かって進むための個人開発
25.3 Webサービス作りをスタート
25.4 転機
25.5 一番大きな学び
25.6 ひたすら突っ走り始めた

付録A 141人に聞いた!みんなの個人開発事情

あとがき

関係者へのお礼
商業出版に寄せて
同人版との違い
今を生きるクリエイターに
「+1」
個人開発をはじめよう!

まえがき

はじめに

 本書を手にとっていただき、ありがとうございます。この本は、個人でWebサービスやアプリを開発する「個人開発者」の合同誌です。「個人開発の楽しさ」をお伝えします。

想定読者①:プログラミング初学者

 本書は先輩開発者のエピソード集です1。モチベーションの向上にお役立てください。「こういうアイデアを実現できたら楽しそうだ」という未来を描いてください。

 「一度は自分でサービスをリリースしてみたい」という憧れがあるからこそ、本書を手に取ってくださったのではないでしょうか。筆者も同じです。先人の背中に憧れて個人開発を始めました。筆者にとって本書は「過去の自分」へのエールなのです。

想定読者②:個人開発に挫折しそうな(あるいは挫折してしまった)方々

 本書は現役開発者のエピソード集です。再挑戦のキッカケとしてお役立てください。「こういうアイデアを実現するのが楽しいんだよな」と過去を思い返してください。

 「もう一度頑張ってみたい」「あの頃は楽しかったな」という思いがあるからこそ、本書を手に取ってくださったのではないでしょうか。筆者も同じです。1年後には挫折しているかもしれません。筆者にとって本書は「未来の自分」へのエールなのです。

想定読者③:今まさに打ち込んでいる個人開発者

 本書はあなたと同じ個人開発者のエピソード集です。「こういうことあるよね」と共感できるはずです。「これはマネしてみたい」と発見できるはずです。

 自分で実践しているからこそ、共感や発見を求めて、本書を手に取ってくださったのではないでしょうか。筆者も同じです。同じ気持ちを持つクリエイターたちが集まって本書ができたのです。筆者にとって本書は「現在の自分」へのエールなのです。

本書の構成:「7つのテーマ」と「25人のエピソード」

「個人開発をはじめよう!」

 そう思えるような、クリエイター25人の実践エピソードを集めました。

 【テーマ①】何からやればいい? 個人開発のはじめ方。

 ・第01章:未経験から3ヶ月でつくる!個人開発マニュアル

 ・第02章:とがったテーマの婚活サイトを開発して得た経験

 ・第03章:アイデアからリリースまで、Webサービス開発を徹底詳説

 【テーマ②】皆に使ってもらえる? 個人開発で、バズった話。

 ・第04章:「通知止まらんwww」体験アプリを作ったらバズって通知止まらんwww

 ・第05章:積読の解消を促すWebサービスをリリースした話

 ・第06章:累積120万DL!なぜかインドで大ヒット!クソアプリを量産しよう!

 【テーマ③】ぶっちゃけどうなの? 個人開発と、おさいふ事情。

 ・第07章:ダウンロード数と収入報告!スマホアプリの個人開発は儲かるのか?

 ・第08章:格安スクレイピングを支える技術

 ・第09章:個人開発だけで食べられるようになるまでにやったこと

 【テーマ④】試行錯誤の繰り返し? こんな苦労も、個人開発。

 ・第10章:ストアからアプリが削除!消された個人開発アプリとその理由を公開!

 ・第11章:自分の漫画ライフを充実させる「新刊通知アプリ」を作ってみた

 ・第12章:カメラアプリを開発して憧れのレビューサイトに掲載された話

 ・第13章:会社が潰れて1ヶ月でリリース&起業!エンジニア社長の奮闘記

 【テーマ⑤】くじけそうなときは? こうして続ける、個人開発。

 ・第14章:個人開発のモチベーションが続かない、作り終わらない。その原因と対策

 ・第15章:学生エンジニアが語る「技術学習 x 個人開発」のススメ

 ・第16章:「このままでいいの?」駆動のサービス開発

 ・第17章:使われなくてさみしい問題を解決する(しない)方法論

 【テーマ⑥】作りたいものがない? もっと自由に、個人開発。

 ・第18章:サービス開発のハードルが高いあなたに!便利プログラム開発のススメ

 ・第19章:アクセスログから見えた時代の移り変わり

 ・第20章:Pythonと野球オープンデータで地図アプリを作る

 ・第21章:困りごとを1日で解決する「どやっ」駆動のツール開発

 【テーマ⑦】その先に見えるのは? 個人開発と10年間。

 ・第22章:10年つづくWEBサービスの育て方 〜地道な宣伝から法人契約まで〜

 ・第23章:Build to Think!

 ・第24章:14年かかった!個人開発で月収100万達成した話

 ・第25章:それでも挑戦は止められない。個人開発の絶望と希望

 7つのテーマに分かれていますが、好きなページを好きなように読んでいただければと思います。

本書の特徴:「事例集」であること

 本書の内容は十人十色です。どう企画するか。どうモチベーションを保つか。どうユーザーを獲得するか。どうテクノロジーを使うか。様々な意見が次々と出てきます。

 メディアで脚光を浴びる著名人に「これが正解だ」と教えてもらう本ではありません。悩みや迷いや失敗も含めて、等身大のエピソードを、1人1人の言葉で綴った本です。

 ある人にはある人の楽しさがあります。別の人には別の人の楽しさがあります。それが個人開発なのだと思います。

あなただけの「個人開発」と出会える本

 「個人開発」という言葉の定義は1人1人違います。しかし少なくとも本書に出てくるエピソードの中に「誰かに強制されたもの」はひとつもありません。やりたいときに、やりたいことを、やりたいようにやる。自分なりの正解を見つけていくのです。

 筆者たち1人1人は、各々が考える「楽しさ」を書き記しました。ぜひ自分に合うものを見つけてもらいたいと思っています。「自分はこの考え方やエピソードが好きだ」「自分もこういうクリエイターでありたい」と少しでも感じてもらえたら嬉しいです。読者であるあなた自身が、そうした新しい可能性と出会える1冊の本になっていれば幸いです。

(発行代表・企画者 @yuzutas0)

お問い合わせ先

 本書に関するお問い合わせ: @yuzutas0(ゆずたそ)

免責事項

 1.本書の内容は、筆者各人の個人的見解であり、所属組織を代表するものではありません。もし誤りや考慮不足だと感じる点があれば、それは編集・発行代表である @yuzutas0 の力不足によるものです。誠に恐縮ですが、上記宛先までご連絡いただけると幸いです。

 2.本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。本文中では © 、 ® 、 ™ マークなどは表示していません。

 3.本書は有志による情報提供を目的とします。本書の利用により発生したいかなる損害に対しても筆者一同はその責任を負いかねます。特にシステム開発・運用におきましては、他の情報源をご確認の上、ご自身の責任と判断にもとづいて実施してください。

 4.本書に記載されているサンプルコードや画面イメージ、URL等は執筆時点のものです。執筆以降で変更されている可能性があります。あらかじめご了承ください。

1. もしあなたがプログラミング教室や初学者向けコミュニティの運営者であれば、ぜひ学習支援コンテンツとして本書をご活用ください。お問い合わせいただければ可能な範囲でサポートを提供します。

第1章 未経験から3ヶ月でつくる!個人開発マニュアル

 フリーのWebエンジニアのかしいと申します。2018年11月にお笑いライブの検索サイト「ワラリー!」をリリースしました。このサービスを作りたくてプログラミングスクールに入会したのですが、1ヶ月後に気づきました。「個人開発やること多っ!!」

 このハードルを下げたいと思い、初めて個人開発したときの手順やコツをまとめました。

1.1 1か月目 サービス設計と基礎知識の学習

 きっかけは、お笑いライブの検索サイト「Walive!」がとつぜん閉鎖したことでした。お笑いファンに愛されているサービスが無くなってしまうのはもったいない。そう思った私は、サイトを引き継ぐためにサービス設計とプログラミングの学習を始めました。

アイデア出し

 1.自分が困っていることをベースに考える(自分が欲しいサービスを作りたい)

 2.自分が今できることをベースに考える(技術的な学びを実践することが目的)

 3.他人が困っていることをベースに考える(稼ぎたい、ユーザーの反応を見たい)

 まずは1番がおすすめです。2番や3番だと、途中で「本当にみんなサービスを使ってくれるだろうか」と不安になります。自分が使うサービスのほうがモチベーションを維持しやすいです。

サービス内容を決める

 サービス内容は「ひとことで言える」ことが大事です。機能が多すぎると、結局何のためのサービスか分からなくなります。開発の負担も増えます。まずはひとつの機能に絞りましょう。

×「お笑いライブを検索できて、芸人のプロフィールを見られて、チケットを融通できるサービス」
  ○「お笑いライブを横断検索できるサービス」

サービス名を決めて、ドメインを取得する

 ドメインを取るためにサービス名を考えます。ポイントは下記の5つです。

 ・1. サービス内容を端的に言う:サービス内容そのものをサービス名にすれば、わかりやすさはピカイチです(例:チケットトレード→チケトレ、小説を書く・読む→カクヨム)。

 ・2. 英単語を組み合わせる:サービスで重要となる要素を洗い出し、語感がしっくりくるものを選びます。お笑いライブ検索「ワラリー」という名前は、wara(わらい)+rally(集まり) という英単語の組み合わせから決めました。

 ・3. 長いサービス名にしない:サービス名が長いとユーザーは覚えられません。略称でつけると良いでしょう(例:careertrek → キャリトレ)。

 ・4. 日本語の方が親しみやすい:難しすぎる英語だと覚えられません。読めなかったりもします。カタカナでつけてしまいましょう。

 ・5. ユニークにする:名称が被るとエゴサーチで反響をチェックしづらくなります。

サービスで使う技術を決める

 初心者なら、まずはRubyやPHP、HTML/CSSとjQueryを学びましょう。フレームワークは情報を探しやすいRuby on RailsかLaravelがおすすめです。

モデル(テーブル)設計

 「SQL designer」というWebブラウザーアプリを使うと、ER図を簡単に作成できます。

図1.1: ER図

 テーブル同士の関係は親と子までにすると良いでしょう。初心者向けの教材だと親と孫、ひ孫のデータの扱い方まで解説している記事が少なく、つまづくポイントとなります。

 「実際に運用可能か」ということも考慮ポイントとなります。たとえばワラリー!では、お笑いライブのチケット予約先を複数記録するためにふたつのモデルを作りました。

 ・Eventモデル(お笑いライブの情報を記録する親モデル)

 ・EventLinkモデル(お笑いライブのイベントの予約URLを記録する子モデル)

 しかし今考えると、最初はEventモデルに「URL」というカラムをひとつ作成すれば十分だったと思っています。手入力でわざわざ複数の予約サイトを登録するのは手間なのです。扱える情報を制限する方が、使いやすくなるという教訓を得ました。

画面遷移の設計

 ユーザーがどのような順番でページにアクセスするかを考えます。私は「Draw.io」を使って画面遷移図を作成しましたが、紙でも十分だと思います。

図1.2: 画面遷移図

サービスのデザインを決める

 印象をよくするために、今風のきれいなデザインにするのは大事です。一方でデザインに凝ると時間がかかるのも事実です。なるべくカンタンにイケてる画面を作りましょう。

 ・デザインは紙に書く:ツールはたくさんありますが、紙とペンで十分です。初心者はデザインツールの操作よりも開発技術の学習を重視しましょう。

 ・1カラムにする:ワラリー!は8割がスマホからの閲覧です。PCとスマホで表示を変えるのは大変なので1カラムにしました。大手サービスの構造を真似すると良い感じに見えます。

 ・イメージカラーを決める:ワラリー!のイメージカラーはピンクです。旧サイトのイメージカラーが水色だったため、「旧サイトと差別化をはかりたい」「目立ちたい」「わくわくする感じにしたい」という意図から、寒色ではなく暖色を用いました。ヘッダやサイト内のボタンなど、アクセントカラーとして使用しています。

図1.3: トップページ

1.2 2か月目 エラーで行き詰まってもくもく会に参加しまくる

機能を決める

 サービスを作り始めるときは、「あんなこといいな、できたらいいな」とやりたいことがどんどん浮かんできます。まずは全部書き出しましょう!思いつくものを羅列できたら、難易度や優先度を振り分け、リリースまでに開発する機能を絞ります。

コードを書く

 書かなければサービスは動きません!いよいよ書くべし!書くべし!!です!!!

モチベーションを維持するコツ

 わからないことや解決できないエラーにつまづきます。そんなときは「もくもく会」などのエンジニアが集まるイベントに行って相談しましょう!「自分のサービスを作っています」と言うと、快く相談にのってもらえます。オンラインのQ&AサービスやSNSで質問することもできますが、初心者だとエラー内容を適切に質問するのは難しく、コミュニケーションに疲弊します。慣れないうちは対面での質問をおすすめします。

サービスを完成させるコツ

ちょっとずつでいいので開発し続ける

 期間が空くと「どこまでやったっけ?」と状況を忘れてしまいます。なるべく毎日ちょっとずつ開発しましょう。また「やりたいことリスト」でタスクを忘れないようにします。進捗が遅すぎて「完成するのか?」と不安になるかもしれませんが、続けていればいつかは完成します。

タスクは細かく分解する

 GitHubのIssue機能を使って管理しましょう。「ユーザーの登録機能」と一口にいっても「メール認証」「SNSログイン(Twitter、Instagram、Facebook、Google)」「退会した場合、何週間まで復旧できるようにするか」など、細かい仕様はサービスによって異なります。メソッド単位までタスクを分解することで、進捗を可視化し、モチベーションを上げることができます。

ツールや言語はあれこれ手を出しすぎない

 初心者の場合、ただでさえ技術を学ぶのが大変です。なるべく絞りましょう。ワラリー!は、下記の言語で構成されています。

 ・マークアップ言語(HTML/CSS/SCSS)

 ・バックエンドの開発言語(Ruby/Ruby on Rails)

 ・フロントエンドの開発言語(JavaScript/jQuery)

 新しく覚えて使用したツールは下記です。

 ・Homebrew:Macのパッケージ管理ツール。ツールのインストールに使います。

 ・Visual Studio Code:IDE(統合開発環境)兼エディター。ソースを書きつつターミナルでテストできるのが利点。以前はSublime Textの無料版を使いましたが、ポップアップ広告で集中しづらかったです。VS Codeは無料で、広告も出ません。

 ・PG Commander:PostgreSQLを操作するGUIツール。RailsアプリをHerokuで使うには、初期設定のSQlite3からデータベースを変更する必要があります。

 ・GitHub:ソースコード管理サービス。様々なサービスと連携できる。

 ・Slack:コミュニケーションツール。もくもく会やエンジニアコミュニティに所属すると、質問・相談を行えます。

 ・Heroku:カンタンにRailsのサービスを公開できます。ただ、無料枠はすぐに制限がかかってしまいます。ワラリー!では、hobby dev(月額$7、24時間稼働)とPostgres Premium(月額$9、1000万レコードまで使用可能)に課金しています。

 学習を諦めたけど、結果としてなんとかなったフレームワークやツールもあります。

 ・AngularJS:JavaScriptのフレームワーク。「このカレンダーのデザインいいな」と思った技術がAngularでしたが、jQueryで代替しました。

 ・Bootstrap:とても有名なCSSのフレームワーク。Bootstrapのテンプレートを使いたかったのですが、しっくりくるデザインがなく、結局CSSを手書きしました。

 ・Bourbon:CSSのフレームワーク。ライブラリーを導入した際に依存関係があったらしくエラーが出て、結局そのライブラリーごと使うのを止めました。

 ・Masonry:タイル状に可変で記事を配置できるRailsのGem。パソコンでは3カラムのタイル状レイアウト、スマホでは1カラムのレイアウトにしたかったのですが、力尽きて結局パソコン・スマホ共通で1カラムにしました。

 ・Prott:アプリ向けのプロトタイピングツール。操作を覚える時間がなかったため断念。ラフやデモは個人開発であれば省いた方が開発期間の短縮になります。

 ・Haml:Rubyを書く際に「erb方式でなくhaml方式で書いた方が実務に近い!」とアドバイスを受けたのですが、Progateなど初心者向けのRailsの教材はerbで書かれているので結局そのままerbを使いました。

1.3 3か月目 70%の完成度でリリースする

フォームの入力テスト

 1.まずは表示されるか、機能するかどうか

 2.実際に投稿される想定のデータを入れて、レイアウトが崩れないか

 3.悪意のあるデータや特殊記号を入れても問題が起こらないか(SQLインジェクション、クロスサイトスクリプティング対策など)

404エラー、503エラーなどのエラー画面の設定

 Railsの標準だと英語のエラー画面が出てしまいますので、日本語の画面を設定しましょう。「Better Error Pages」というサイトで、3種類のデザインから選んでエラーページを作ることができ便利です。

図1.4: エラーページ

ステージング環境をつくる

 本番環境とは別に、サーバーでの動作を確認するためのステージング環境を作りましょう。Herokuの場合は、Heroku Pipelineという機能が用意されています。

β版を公開してアドバイスをもらう

 β版を友人に見てもらいましょう。サービスの根幹にあまり重要でない機能を提案されることもあるので、もらった意見を取捨選択しつつフィードバックを反映します。

利用規約・プライバシーポリシーの作成

 利用規約やプライバシーポリシーが丁寧だと、ユーザーからの信頼度が上がります。『良いウェブサービスを支える「利用規約」の作り方』という本がおすすめです。

サービスのリリースをお知らせする

 おめでとうございます!サービスがリリースできました!この時点であなたはめちゃめちゃすごいです。自分で自分を褒めてあげましょう。SNSで宣伝しましょう。

Twitterで宣伝する

 リリース時はご祝儀訪問がもらえるチャンスです。アピール文言を練り、リンクを文中に仕込み、画像を添付しましょう。『朝に投稿 → 昼にRT → 夜に「RTありがとうございます!」と引用RT』の流れで告知効果が高まります。

 「ワラリー!」では、相手によって文言を変えました。エンジニア向けには「初心者の成功体験」「100日間という数字」をアピール。「91RT、355いいね」いただきました。

Web系未経験の初心者が100日間で初めてのrailsサービスをリリース
  https://warally.info

  首都圏のお笑いライブを日付やキーワードで横断検索できるサービスです!
  ・5秒で使えるTwitterログイン
  ・わかりやすいUI
  ・13サイトからデータを毎日スクレイピング
  よかったら見てください〜 (添付画像3枚)

 お笑いファンには「できること」を強調して伝えました。「お笑いライブ検索サイトの閉鎖」から2週間というタイミングもあり、224RT、325いいねとかなり拡散されました。

【お知らせ】お笑いライブを検索できるサイトができました!
  http://warally.info/
  ・日付検索、キーワード検索ができます
  ・フライヤー表示機能あり
  ・誰でもライブを登録可能
  今日やってるライブあるかな?という時にぜひご利用ください (添付画像4枚)

Qiitaで記事を書く

 サービス公開と同時に記事を書くと、Qiitaユーザーにもサービスを知ってもらうことができます。宣伝目的だとQiitaの規約違反となってしまうため、サービスで使用した技術の紹介をメインで書くと良いでしょう。

Google Analyticsを使用して人気機能を見極める

 どのページにアクセスが集まっているか、どこから集客できているかを分析するにはGoogle Analyticsを導入します。コンテンツの詳細ページを、posts/[:id]ではなくposts/[:title]にすると、GAの画面で人気記事がわかるので便利です。

Google Search ConsoleでSEOを強化してアクセス数を増やす

 SEO(Googleからの検索最適化)に力を入れると長期的なサービスの発展が望めます。

 ・サイトマップの生成とサイトマップの自動更新機能を実装する

 ・メタキーワードを設定する:ワラリー!の場合は「お笑いライブ」「チケット」「東京」「スケジュール」などを設定しました。

 ・ページタイトルを動的に設定する:「サイト名|ページタイトル」ではなく「ページタイトル|サイト名」の順番で設定するとよいそうです。

 ・サイト内リンクを増やす:ワラリー!では日付、タイトル、会場、出演者などそれぞれの項目がリンクになっています。SNSシェアボタンも付けましょう。

図1.5: イベント個別ページ

Google Adsenseによるマネタイズのコツ

 Webサービスで稼ぐ場合、Google Adsenseによる広告を導入するのがカンタンです。ワラリー!では、月間5万PVに対して5000円程度の収益が発生しています。

 ・広告サイズはレスポンシブにする:サイズが大きいほど、クリック数が増えますし、閲覧によるインプレッション収益が上がります。ワラリー!では、最初は控えめにラージモバイルバナー(320×100サイズ)を使いました。しかし、売上が伸びず赤字になったため、レスポンシブ(336 x 280サイズ)に変更しました。フィード型のサービスなので、ファーストビューには広告を置かず、5つのライブにつき1つレスポンシブ広告を表示します。広告サイズを変えたことで、11月に500円だった収益が12月には5000円と10倍になりました。

 ・不快な広告はブロックする:毎日使ってもらえるサービスにしたいので「デリケートなカテゴリー」(出会い系、宗教、消費者金融など)や「マンガ系の広告主」(エロ・グロ系のマンガ)をブロックしました。これらの広告はクリック単価が高いという側面もあるので、サービスのテーマや世界観に応じて、ブロックするカテゴリや広告主を決めると良いでしょう。

1.4 まとめ

 初めて個人開発を始めたときは「一生完成しないんじゃないのか」と不安な毎日を過ごしていました。しかし、諦めずにいろんな方に相談して助けてもらったことで、なんとかリリースまでこぎつけることができました。

 これから始めるかたは「こんなに大変なの?」と心が折れそうになる瞬間もあるかもしれません。そんなとき、この本がモチベーションにつながるよう、祈っております。

かしい

  フリーの駆け出しWEBエンジニア。お笑いライブの検索サイト「ワラリー!」を運営中。
  もともと外資のITコンサル会社で業務システム設計をしていたが、独学でRuby on Rails、
  JavaScript などを勉強して独立。技術ブログでは初心者向けの情報を発信中。

  https://warally.info/
試し読みはここまでです。
この続きは、製品版でお楽しみください。