坂道駆動開発のご紹介 -ITを通じて乃木坂46を応援する-

この記事は[「個人開発Advent Calendar 2018」](https://qiita.com/advent-calendar/2018/private-development)の15日目の記事です。

**最新の技術や様々なWebサービスの勉強を兼ねて個人開発をしたい！**

と思ったものの

**テーマがない、モチベーションが続かない、といった理由で諦めてしまった経験はありませんか？**

かくいう私もその1人だったのですが、自分の趣味を軸にして個人開発をするようになってから、だいぶ変わりました。

私は元々アイドルや女優さんが大好きで、そのトップとして長らく[堀北真希さんのファン](http://kikutaro777.hatenablog.com/archive/category/%E5%A0%80%E5%8C%97%E7%9C%9F%E5%B8%8C)でした。**ファンクラブの会員番号は11番**です。しかし、[突然の結婚](http://kikutaro777.hatenablog.com/entry/2015/08/22/215442)で引退[^1]……マキマキを失い途方に暮れる私を救ってくれたのが[乃木坂46](http://www.nogizaka46.com/)でした。

[^1]: 私も山本耕史さん同様に新幹線に乗ってアタックしていれば…と未だに夢をみます

ということで、本日の個人開発アドベントカレンダーでは、乃木坂46を主軸とした**坂道駆動開発**についてご紹介したいと思います。

# 坂道駆動開発とは？

[乃木坂46](http://www.nogizaka46.com/)について、メンバーの名前は知らなくてもグループ名は聞いたことあるよ、という方は多いのではないでしょうか。誰もが知っているAKB48のライバルグループとして結成された乃木坂46の[「46」はAKBの48人より少ない人数でもAKBに勝つ、という意気込みがこもった数字](https://ja.wikipedia.org/wiki/%E4%B9%83%E6%9C%A8%E5%9D%8246)となっています。

そんな乃木坂46に続いて[欅坂46・けやき坂46(ひらがなけやき)](http://www.keyakizaka46.com/)という妹グループが生まれ、通称**「坂道グループ」**と呼ばれています。今年は**[坂道合同オーディション](http://www.nogizaka46.com/audition2018/)**が開催されたり、**[坂道合同プロジェクトで舞台「ザンビ」](http://zambi-stage.com/)**が行われたりと、グループ内の交差も徐々に始まり、様々な相乗効果が生まれています。

前置きが長くなりましたが、**坂道駆動開発とは、坂道グループを応援する気持ちをベースに、彼女たちの良さをITを通じて世に広めるべく、坂道グループをテーマとしたサービスやアプリを開発する手法**をさします。

ということで、私が坂道駆動開発を実践して作ってきたアプリを紹介したいと思います。

# 開発アプリの紹介

## [坂道RPGパーティジェネレータ](https://rpgparty.sakamichi46.com)
名前を入力すると坂道グループとの冒険メンバーを決めてくれる。ただそれだけのサービスです。

<a href="https://rpgparty.sakamichi46.com"><img src="https://qiita-image-store.s3.amazonaws.com/0/47737/c73b693c-e0ae-1330-20d4-39251277c697.gif" width="70%"/></a>

**自分の推しメンが出て欲しいというワクワク感**と**推しメンじゃないメンバーが出ても新たに興味を持つ機会を作り出す**ために作りました。というと聞こえがいいですが、実際は**[脳内メーカー](http://maker.usoko.net/nounai/)ってどういう仕組みなんだろう？**って自分なりに考えて作ってみただけですｗ

このサービス、静的ページは[Netlify](https://www.netlify.com/)でホスティングして、ロジック部分は[Spring Boot](http://spring.io/projects/spring-boot)を[Heroku](https://www.heroku.com/)上で動かしています。[Peing 質問箱](https://peing.net/ja/)みたいに画像ツイートで生成されたグループをシェアできるようにしたく、[Cloudinary](https://cloudinary.com/)という画像サービスを使いました。個人的には色々と勉強になったサービスです。

詳しい内容は以前にQiitaの記事で書いています。

[乃木坂46のメンバーからドラクエ風のパーティを作るWebサービスを作ってみた](https://qiita.com/kikutaro/items/5f4d89b6defac34be052)

この記事のおかげで[Qiitaの乃木坂タグ](https://qiita.com/tags/%E4%B9%83%E6%9C%A8%E5%9D%8246)トータル期間で1位を取れたのが今年一番嬉しかったです。

![2018-12-14_01h09_14.png](https://qiita-image-store.s3.amazonaws.com/0/47737/ad5a0843-27cd-9276-9fab-decaa948107a.png)

## [坂道コレクション](https://play.google.com/store/apps/details?id=com.sakamichi46.Sakamichi46Mobile&hl=ja)

モバイルアプリの開発をやってみたくて[Xamarin](https://visualstudio.microsoft.com/ja/xamarin/)を使って開発した情報参照アプリです。ただし、開発当時にMacを持っていなくてAndroid版のみのリリースとなっています（涙）

<a href="https://play.google.com/store/apps/details?id=com.sakamichi46.Sakamichi46Mobile&hl=ja">![2018-12-14_20h16_23.png](https://qiita-image-store.s3.amazonaws.com/0/47737/e87c265c-b13e-f177-b884-432a3ae7b358.png)</a>

Google Play Storeへのアプリ登録などは良い経験になりました（なぜかリジェクトされたり…）。あと、アプリ以外にアイコンをデザインして作ったり、アプリの紹介文を書いたりと、スマホアプリのリリースはコードを書くだけではなく、色んな準備がいるのだなぁと学びました。

そして、Xamarinのコミュニティである[Japan Xamarin User Group (JXUG)さんのLT大会で発表](http://kikutaro777.hatenablog.com/entry/2016/10/15/213644)したのも良い経験でした。

<a href="https://speakerdeck.com/kikutaro/xamarin-meets-nai-mu-ban-46-and-ju-ban-46"><img src="https://speakerd.s3.amazonaws.com/presentations/a01cd3c5e1ce41c08a937326682cf164/slide_0.jpg?363412"><img></a>

LTのあと、[ちょまどさん](https://twitter.com/chomado)に「発表よかった～」と言ってもらえたのが嬉しかったのを今でも覚えています。

このアプリは広告なしで、**現在トータル29,306件**のダウンロードで、評価もそこそこいただいています。

![2018-12-14_23h18_45.png](https://qiita-image-store.s3.amazonaws.com/0/47737/4207f9f9-51bb-ff80-efca-8588486bdd66.png)

ただ、リリース直後は誰も使わないだろうとたかをくくってしまい、データ取得先のサーバサイド(Heroku)をFreeプランで使っていたため、定期的にSleepする状態となっていました。で、Sleep状態でアクセスされたときに、すぐに次のような評価が書かれてしまう…というのがあり、最終的にはHobbyプランにして現在は大赤字です。

![2018-12-14_20h18_05.png](https://qiita-image-store.s3.amazonaws.com/0/47737/1f5e7699-24a9-2986-6a55-0a1227250014.png)

## [坂道API](https://github.com/kikutaro/Sakamichi46Api)

さきほどのモバイルアプリを開発したい際、メンバーのプロフィールなどはWeb APIで取得できる仕組みにしました。そこで作ったのが坂道APIです。

![2018-12-14_23h24_14.png](https://qiita-image-store.s3.amazonaws.com/0/47737/b001eb7d-359e-106a-e4ab-aede8ecefe48.png)

このAPIはホスティングしていますが、認証なしのザルなので…お察しください。JWTなど入れたい…。

最近更新できていないのですが、リポジトリはここにあります。
https://github.com/kikutaro/Sakamichi46Api

卒業によるメンバーデータの削除が辛くて、卒業フラグ（論理フラグ的な）を採用しています。あと超手抜きでDBは使っておらず、JSONファイルがあるだけです。自分しか使わない前提で作れる気軽さも個人開発の良い所です。

## 卒業カウントダウンサイト

### [若月佑美さん](https://wakatsukiyumi.net/)

私の推しメン若月さんは2018年11月30日で乃木坂46を卒業してしまったのですが、彼女の卒業をカウントダウンするWebサイトを作りました。また、いずれ閉鎖されてしまうブログを手軽に読めるように一覧表示機能も付けました。

![2018-11-30_22h04_01.png](https://qiita-image-store.s3.amazonaws.com/0/47737/6a5e7d65-5193-3a6b-ac1b-9a44ff6c9559.png)

![2018-12-14_23h30_53.png](https://qiita-image-store.s3.amazonaws.com/0/47737/4f1de0a0-1a72-39f7-2b9d-941154480936.png)

ブログ一覧は[Rome](https://rometools.github.io/rome/)というRSSを取得するJavaライブラリを使ってぶっこ抜いてHTMLを作るコードを使って作っています。この辺も簡単といえば簡単ですが、どんなライブラリがあるのか、など意外と勉強になりました。

### [西野七瀬さん](https://nanasemaru.net/)

若月さんと全く同じノリで作っています。ちなみに、どうでもいいことですが、サイトのドメイン「nishinonanase.com」を取得しようとしたら既に乃木坂46LLCさんが取得されていました。取得日は卒業が決まる直前ぐらいだったので、卒業後も事務所は変わらずに活躍されるのかなーとか想像しております。

![2018-11-20_22h08_18.png](https://qiita-image-store.s3.amazonaws.com/0/47737/c7082ec5-777f-018c-a94d-c747d781d15b.png)

## エバスクアプリ!

推しメンの若月佑美さんが、あの日本マイクロソフトの有名エバンジェリスト西脇資哲さんと[「エバンジェリストスクール！」](https://www.tfm.co.jp/podcasts/eva/)というラジオをやっています。毎週ITのトレンドやプレゼンの話などが聴けるラジオなので、エンジニアの方におススメです！

[公式ツイートが毎週必ずリアルタイムにつぶやかれる（中身は確実に西脇さんかと…）](https://twitter.com/waki_evatfm)ので、普通のラジオよりインタラクションを感じることができて楽しいです。

![2cf01dd21558ce0900e67b28f70c80de_85.jpg](https://qiita-image-store.s3.amazonaws.com/0/47737/2230b41b-3b8b-2887-83fa-90502dfa3d6a.jpeg)

私は初回放送からのヘビーリスナーで、ある日、勢いでスマホアプリを作りました。これもXamarinで作って、Macを手にいれた後だったので頑張ってiPhone&Androidでリリースしました。

<img src="https://qiita-image-store.s3.amazonaws.com/0/47737/a98ae608-6434-551b-fde0-c33cb203ad40.png" width="300px" /><img src="https://qiita-image-store.s3.amazonaws.com/0/47737/69cc502b-7214-da6f-9c08-508aac782602.png" width="300px" />

## 若様bot(既に停止済）

前にLINE Bot Awardというボットのコンテストがあり、Bot開発やLINE Messaging APIの勉強を兼ねて作ったのが若様botでした。

雑談したり
<img width="300px" alt="若様talk" src="https://qiita-image-store.s3.amazonaws.com/0/47737/c6f1d440-35d6-9846-a0b1-2aff46da03d4.png">

「若様」と話しかけると若月さんに関する情報のリンクを返したり
<img width="300px" alt="若様info" src="https://qiita-image-store.s3.amazonaws.com/0/47737/8a4244b1-fa0a-59e3-63ad-0db606500b0d.png">

「ニュース」「news」と話しかけると最近のニュースを返したり
<img width="300px" alt="若様news" src="https://qiita-image-store.s3.amazonaws.com/0/47737/30cf52b5-7913-1010-23ca-c931ba364acf.png">

エバスクで名物コーナーとなってるIT用語の略語をQAしたり
<img width="300px" alt="若様news" src="https://qiita-image-store.s3.amazonaws.com/0/47737/b4528313-8c5d-fe21-2241-17bb68b9995e.png">

さらに「写真」「画像」「顔」などに反応して写真を送ってくれたりします。
<img width="300px" alt="若様news" src="https://qiita-image-store.s3.amazonaws.com/0/47737/c46a1895-c790-41d1-d01f-efaef5a609e9.png">

Microsoft Cognitive Servicesなど色々駆使して作りました。残念ながらLINE Bot Awardは落選でしたが、そういったコンテストに申し込んだりこと自体が良い思い出です。使ってる技術スタックなどは以下にまとめています。

[LINEで乃木坂46の若月さんと話せる「若様Bot」を開発してみた](https://qiita.com/kikutaro/items/525b54a6a466b5369f9e)

**なお、現在は閉鎖させてしまったので、動作しませんので、あしからず。**

# さいごに

こんな感じで、乃木坂46を中心に坂道グループを応援すべく趣味開発を行い、最新技術や興味のある技術を自由に使って日々勉強しています。楽しく学べるのが個人開発の良い所ですね。今後は本業である[SendGrid](https://sendgrid.kke.co.jp/)を使ってメールも積極的に絡めていきたいと思っています。

ただ、こうしたアイドルをテーマにすると難しいのが、肖像権や著作権です。最初のRPGのアプリはその辺を色々考えて、ドット絵を自分で作るという地味に大変な作業をしていました。こうしたところもしっかり意識してアプリを作っていきたいと思います。

いつの日か坂道グループのメンバーが自分のアプリを触ってくれる日がきたり、何か仕事で関わる機会がきたり…など夢みながら楽しく学んでいます。個人開発が中々続かない！という方は是非一度、ご自身の趣味を軸にネタを考えてみてください。