Java
Android
Kotlin
アジャイル
アプリ開発

まともにコードが書けない大手SIerエンジニアが60万ダウンロードの大ヒットAndroidアプリを作った物語

はじめに

消臭力アプリって知ってますか?

shoshu.JPG

  • 2011年にリリース
  • 一時期日本のAndroidアプリランキング3位を獲得
    • ちなみに1位がYoutubeアプリで、2位がFacebookアプリだったと記憶してます:confused:
    • エンターテイメントカテゴリでは1位も獲得
  • Androidアプリ大辞典(2012年)や、数々のムック本に掲載

という伝説的な偉業(?)を成し遂げたアプリです。
もうだいぶ前の話になりますが、当時の出来事や取り組んだことなどを振り返ってみたいと思います。
ちなみにアプリは完全に趣味の個人開発なので、所属先である大手SIerは全く関与してません(釣り気味のタイトルにしたらアクセス数伸びるかなーと思っていれました)

なお、この記事は過去の成功体験(?)を振り返っただけの自己満ポエムなのであまり参考になる話はないかもです。すいません。

自分のスペック(当時)

  • SIerで基盤系エンジニア
  • 上流メインで自分でコード書くことはほぼない
  • バッチやシェルくらいならちょっと書いた経験はあるが・・

SIerのエンジニア(いわゆるSE)はコードが書けないと揶揄されがちですが、自分もそのとおりでどの言語もスラスラとコードが書けないです。
正直コードが書けなくてもExcelとパワポ(ときどきWord)が使えれば実業務はなんとかなるのですが、やはりコンプレックスを持ってましたし、コードを書けるWeb系やスタートアップ系の人(いわゆるフルスタックエンジニア)に憧れを持ってました。

きっかけ その1

  • 仕事でEclipseを用いた開発(のマネージメント)をする必要が出てきたので本を購入
  • それにAndroidアプリ(簡単なおみくじアプリ)の作り方がちょっとだけ載っていた
  • やってみたらわりとすぐにエミュレータ(AVD)で動作した

本に載ってるがままにコードをコピペしてアプリが動くようになりました。
サンプルのおみくじアプリがランダム関数を使ってたので、ちょっと文言(≠コード)をいじるだけで、ごきげんようのサイコロトークみたいに使えるアプリに改変してちょっとオリジナリティを出したりしました。
今Androidアプリを作る場合は、Android StudioKotlinという言語を使うのが一般的らしいですが、当時はEclipseでJAVAでした。

きっかけ その2

  • 2011年の震災後に流れていたACのCM(ポポポポーン)をパロディにしたアプリを見つけた
  • それから数カ月後、消臭力のCMで少年が歌ってるCMにインパクトを感じた
  • これ同じ要領でアプリにしたらウケるんじゃね?

ボタンを押すと音が鳴って少年が歌うアプリ。
これぐらいなら自分でも作れるんじゃないかと思いたちました。
画像と音声が用意できれば実装は難しくないはず。
ということで自分の中で盛りあがりそのまま寝ずに作り始めました。
ちなみにこの時期は本業も忙しく、平日は深夜まで働き、土日も会社に行ってるのがデフォルトな感じでした。

作ってみた

  • アイコンや背景画像、音声ファイルの用意に3~4時間
  • 「ボタンを押したら音がなるコード」をググって組み込み。画面に配置していってトライ&エラーで4時間ほどで完成
  • Androidの実機をもってなかったのでエミュレータで動いたことを確認してそのまま公開

ほとんどJAVAがわからない自分でも1日でアプリを作って公開までこぎつけました。
ちなみによくわからず本に書いてあるとおりに作ってたのでパッケージ名はfoo.bar
詳しい人からみると失笑を買うようなことだとも知りませんでした。
実機で動くか心配だったので、公開後に家電量販店に行きいろいろな展示用端末にインストール&動作確認をしました。
ついでに★5つをポチっと押して、目立つようにあらゆる展示用端末のトップにアプリのアイコンを配置するようにしてました:smile:

世間の反響

  • 初日は100ダウンロードくらい、これが多いのか少ないのかは当時よくわからず
  • その後、1ヶ月くらいで、1,000ダウンロードを突破
  • Google Playのレビューも高評価、Twitterでエゴサーチすると結構な人が絶賛してくれている!

私は本業では企業相手の仕事をしています。
そんななかこのアプリ開発は個人を相手にしており、たくさんの人が自分の作ったアプリを使ってくれて即時反応が返ってくるというのは本当に嬉しかったです。
そしてこれがアプリの機能改善にさらなる拍車をかけます。

フィードバックをもとに機能追加

  • 本家CMに他のキャラが出てきたのでアプリも追随して「消~臭~力~」できる機能を追加
  • 音声認識機能を使って、ミゲル君と一緒に「消~臭~力~」を歌える機能を追加
  • 「消~臭~力~」のクイズをできる機能を追加
  • 「消~臭~力~」をフルコーラスで聞ける機能を追加
  • ウィジェットでいつでも「消~臭~力~」できる機能を追加
  • Twitterと連携し、いつでも「消~臭~力~」とつぶやく機能を追加
    • ※TwitterのAPIが変わり現在は動作せず
  • SDカードにインストールして「消~臭~力~」できる機能を追加
  • 英語端末にも対応し「Sho-Shu-Power」できる機能を追加

Google PlayのレビューやTwitterの投稿によせられた要望と、自分のスキルで実装できそうな部分から優先度を決めてどんどん機能を追加していきました。
まさにアジャイル開発って感じですね(当時は「アジャイル開発」という言葉は一般的ではなかったですし、全部1人でつくってますが・・)
機能追加はググって似たようなコードをみつけてそれをうまく実装していくという感じで、実はコードの細かいところはあまりわからず作ってたのが実情です。
新機能リリース後は「また消臭力アプリがアップデートしてる。くだらねぇー」という書き込みがTwitterに寄せられ、それをみてニヤニヤしていました

バグ発覚!

リリースして1ヶ月くらい経った頃でしょうか。レビュー欄にバグ報告がされるようになりました。

  • ボタンを連打すると音が出なくなる

エミュレータでは何回やっても再現しませんでした。
まだAndroid実機を持っていなかったので家電量販店に行ってテストすることにしました。
するとたしかに何回かボタンを押すと音がでなくなります。
しかも機種によって、10回程度で音がでなくなるものもあれば、50回やっても大丈夫なものもあり、Androidの機種依存の可能性が高いこともわかりました。
このあたりでエミュレータだけで開発することも限界だと考え、実機を購入してテスト環境を整えることにしました。

原因はメモリ不足とかだと思うのですが未だハッキリはわかりません。
とりあえずトライ&エラーで解決策を実装することにしました。

  • 音声ファイルをMP3からoggに変更する
    • これでバグが発生するまでのボタンを押す回数を3倍に引き伸ばせる
  • 一定回数ボタンを押した後に画面をスワイプするとプロセスを終了する処理を入れる。
    • これでバグが発生してもアプリを閉じずに使い続けることができる。

バグを完全になくすわけではなく発生回数を減らす策と、発生してもなんとかなる策を組み込むことで逃げることにしました。
これはSIのプロジェクトでいうところのリスクマネジメント(回避、転嫁、軽減、受容)に通ずるところがあります。

中の人からも連絡が

リリースから2ヶ月ほどして5,000ダウンロードを超えたあたりだったでしょうか。
Twitterで突然ある方から連絡がきました。

  • 「あなたですね。アプリをつくっているのは」

どうやらエステーの広報部で消臭力のCMを作っているプロデューサーの方のようです。
正直、アプリの内容から権利的には結構微妙な点があったと思います。
ところがこの方から非常に寛大なお言葉をいただきました。

  • 「楽しませてもらいました。今後も頑張ってください」

アプリの開発を事実上容認(黙認?)していただきお墨付きをいただきました。
これで私はますますエステーのファンになり、家では今でも消臭力を愛用しています。

様々なニュースサイトやブログで取り上げられる

今探してもいくつかみつかりましたが当時はヤフーニュースやライブドアニュース、アメーバニュースにも取り上げていただき、ここからダウンロード数は指数関数的に伸びていきました。
1万ダウンロードを超えた2週間後には5万ダウンロードを突破!
さらにその2週間後に10万ダウンロード、次の2週間で20万ダウンロードと恐ろしいくらいにバズりました。(当時バズるという言葉はなかったかな?)
Twitterでエゴサーチすると追いきれないほどの投稿があり、「学校で流行ってる」「飲み会で盛り上がった」などの嬉しい反応が満載でした。

広告いれませんか?

これだけダウンロード数が伸びると、いろいろな会社から「アプリに広告を入れてください」と声がかかるようになりました。
たしかに広告を入れたら月に何万かの収入は得られたと思います。
ただ、アプリの人気はCMの人気に乗っかってるところが多分に(てかほとんど)あり、広告収入を得るのはフェアではないと思い断ってました。

雑誌やムック本への掲載

当時アプリをまとめた書籍やムック本は数多く発売されていました。
多くの媒体は事前に連絡をくれるのですが、いくつかは特に連絡もなく、本屋で立ち読みしたら「あっ載ってる」というのも結構多かったです。
中でも嬉しかったのはアンドロイダー(※2017年6月30日で終了)が出版していた、Androidアプリ大辞典(2012年)に掲載されたことです。
この書籍は自分で買って今でも持っています。
他にはドコモショップがおすすめするアプリのカタログにも掲載頂きました。
ちなみに、このあたりの書籍や雑誌に取り上げられても収入は一切ありません。

ブームに一区切り

その後、伸びは緩やかになり約1年後に60万ダウンロードまで達したところで横ばいになりました。
インストールユーザーベースではここから下降トレンドになりました。
このあたりで機能追加は打ち止めにして、別のアプリの開発に着手しました。

その後は?

いくつかAndroidアプリをリリースしました。

  • 消臭プラグアプリ(既に削除)
    • 消臭力アプリの姉妹アプリ
  • バルスアプリ
    • 某アニメーション映画のパロディ。音声認識を使って世界を崩壊させるネタアプリ
  • 相談電話
    • 匿名・無料で知らない人に電話で相談できるアプリ
    • サーバ費用を賄うため広告を導入
    • こちらに関連エントリを書いています
  • ももクロ電話(既に削除)
    • 相談電話のももクロ特化版
  • オタク電話(既に削除)
    • 相談電話のオタク(アニメ、声優、AKB、ビジュアル系など)特化版
    • キャッシュカード・ATMの種類と曜日・時間の組み合わせで引き出し/預け入れ手数料を表示するアプリ
    • これはiOS版も作ったのだが、Appleの審査が下りずリリース断念

ネタアプリだけでなくそこそこ実用的なアプリも作りました。
消臭力アプリのような大ヒットはしませんでしたが、それでも技術的により難しいことにチャレンジしたり、ユーザーが利便性を感じて利用してくれたりするのは開発者として違う喜びがありました。

ちなみに本業では相変わらず基盤エンジニアを続けており、コーディングをするような機会にはなかなか恵まれません。
ただ、苦手な領域で実績を作ったことで自信がついたことは確かです。

さいごに

つらつらと書いてきましたが、個人でアプリを作っている方に向けてアプリ開発で実感したポイントを書いておきたいと思います。

  • 熱意があればスキルは二の次!
    • 実装したい機能があればコードはなんとか書く気になる
  • ユーザーからの反響は大きなモチベーション
  • アプリが旬のうちにどんどんアップデートして改善を

私の場合、収益化はそれほど重要ではなかったのでこのあたりのノウハウは語れません。
ということで自己満ポエム失礼しました!