2018/12/14
この記事は「個人開発Advent Calendar 2018」の15日目の記事です。
最新の技術や様々なWebサービスの勉強を兼ねて個人開発をしたい!
と思ったものの
テーマがない、モチベーションが続かない、といった理由で諦めてしまった経験はありませんか?
かくいう私もその1人だったのですが、自分の趣味を軸にして個人開発をするようになってから、だいぶ変わりました。
私は元々アイドルや女優さんが大好きで、そのトップとして長らく堀北真希さんのファンでした。ファンクラブの会員番号は11番です。しかし、突然の結婚で引退1……マキマキを失い途方に暮れる私を救ってくれたのが乃木坂46でした。
ということで、本日の個人開発アドベントカレンダーでは、乃木坂46を主軸とした坂道駆動開発についてご紹介したいと思います。
乃木坂46について、メンバーの名前は知らなくてもグループ名は聞いたことあるよ、という方は多いのではないでしょうか。誰もが知っているAKB48のライバルグループとして結成された乃木坂46の「46」はAKBの48人より少ない人数でもAKBに勝つ、という意気込みがこもった数字となっています。
そんな乃木坂46に続いて欅坂46・けやき坂46(ひらがなけやき)という妹グループが生まれ、通称「坂道グループ」と呼ばれています。今年は坂道合同オーディションが開催されたり、坂道合同プロジェクトで舞台「ザンビ」が行われたりと、グループ内の交差も徐々に始まり、様々な相乗効果が生まれています。
前置きが長くなりましたが、坂道駆動開発とは、坂道グループを応援する気持ちをベースに、彼女たちの良さをITを通じて世に広めるべく、坂道グループをテーマとしたサービスやアプリを開発する手法をさします。
ということで、私が坂道駆動開発を実践して作ってきたアプリを紹介したいと思います。
名前を入力すると坂道グループとの冒険メンバーを決めてくれる。ただそれだけのサービスです。
自分の推しメンが出て欲しいというワクワク感と推しメンじゃないメンバーが出ても新たに興味を持つ機会を作り出すために作りました。というと聞こえがいいですが、実際は脳内メーカーってどういう仕組みなんだろう?って自分なりに考えて作ってみただけですw
このサービス、静的ページはNetlifyでホスティングして、ロジック部分はSpring BootをHeroku上で動かしています。Peing 質問箱みたいに画像ツイートで生成されたグループをシェアできるようにしたく、Cloudinaryという画像サービスを使いました。個人的には色々と勉強になったサービスです。
詳しい内容は以前にQiitaの記事で書いています。
乃木坂46のメンバーからドラクエ風のパーティを作るWebサービスを作ってみた
この記事のおかげでQiitaの乃木坂タグトータル期間で1位を取れたのが今年一番嬉しかったです。
モバイルアプリの開発をやってみたくてXamarinを使って開発した情報参照アプリです。ただし、開発当時にMacを持っていなくてAndroid版のみのリリースとなっています(涙)
Google Play Storeへのアプリ登録などは良い経験になりました(なぜかリジェクトされたり…)。あと、アプリ以外にアイコンをデザインして作ったり、アプリの紹介文を書いたりと、スマホアプリのリリースはコードを書くだけではなく、色んな準備がいるのだなぁと学びました。
そして、XamarinのコミュニティであるJapan Xamarin User Group (JXUG)さんのLT大会で発表したのも良い経験でした。
LTのあと、ちょまどさんに「発表よかった~」と言ってもらえたのが嬉しかったのを今でも覚えています。
このアプリは広告なしで、現在トータル29,306件のダウンロードで、評価もそこそこいただいています。
ただ、リリース直後は誰も使わないだろうとたかをくくってしまい、データ取得先のサーバサイド(Heroku)をFreeプランで使っていたため、定期的にSleepする状態となっていました。で、Sleep状態でアクセスされたときに、すぐに次のような評価が書かれてしまう…というのがあり、最終的にはHobbyプランにして現在は大赤字です。
さきほどのモバイルアプリを開発したい際、メンバーのプロフィールなどはWeb APIで取得できる仕組みにしました。そこで作ったのが坂道APIです。
このAPIはホスティングしていますが、認証なしのザルなので…お察しください。JWTなど入れたい…。
最近更新できていないのですが、リポジトリはここにあります。
https://github.com/kikutaro/Sakamichi46Api
卒業によるメンバーデータの削除が辛くて、卒業フラグ(論理フラグ的な)を採用しています。あと超手抜きでDBは使っておらず、JSONファイルがあるだけです。自分しか使わない前提で作れる気軽さも個人開発の良い所です。
私の推しメン若月さんは2018年11月30日で乃木坂46を卒業してしまったのですが、彼女の卒業をカウントダウンするWebサイトを作りました。また、いずれ閉鎖されてしまうブログを手軽に読めるように一覧表示機能も付けました。
ブログ一覧はRomeというRSSを取得するJavaライブラリを使ってぶっこ抜いてHTMLを作るコードを使って作っています。この辺も簡単といえば簡単ですが、どんなライブラリがあるのか、など意外と勉強になりました。
若月さんと全く同じノリで作っています。ちなみに、どうでもいいことですが、サイトのドメイン「nishinonanase.com」を取得しようとしたら既に乃木坂46LLCさんが取得されていました。取得日は卒業が決まる直前ぐらいだったので、卒業後も事務所は変わらずに活躍されるのかなーとか想像しております。
推しメンの若月佑美さんが、あの日本マイクロソフトの有名エバンジェリスト西脇資哲さんと「エバンジェリストスクール!」というラジオをやっています。毎週ITのトレンドやプレゼンの話などが聴けるラジオなので、エンジニアの方におススメです!
公式ツイートが毎週必ずリアルタイムにつぶやかれる(中身は確実に西脇さんかと…)ので、普通のラジオよりインタラクションを感じることができて楽しいです。
私は初回放送からのヘビーリスナーで、ある日、勢いでスマホアプリを作りました。これもXamarinで作って、Macを手にいれた後だったので頑張ってiPhone&Androidでリリースしました。
前にLINE Bot Awardというボットのコンテストがあり、Bot開発やLINE Messaging APIの勉強を兼ねて作ったのが若様botでした。
雑談したりMicrosoft Cognitive Servicesなど色々駆使して作りました。残念ながらLINE Bot Awardは落選でしたが、そういったコンテストに申し込んだりこと自体が良い思い出です。使ってる技術スタックなどは以下にまとめています。
LINEで乃木坂46の若月さんと話せる「若様Bot」を開発してみた
なお、現在は閉鎖させてしまったので、動作しませんので、あしからず。
こんな感じで、乃木坂46を中心に坂道グループを応援すべく趣味開発を行い、最新技術や興味のある技術を自由に使って日々勉強しています。楽しく学べるのが個人開発の良い所ですね。今後は本業であるSendGridを使ってメールも積極的に絡めていきたいと思っています。
ただ、こうしたアイドルをテーマにすると難しいのが、肖像権や著作権です。最初のRPGのアプリはその辺を色々考えて、ドット絵を自分で作るという地味に大変な作業をしていました。こうしたところもしっかり意識してアプリを作っていきたいと思います。
いつの日か坂道グループのメンバーが自分のアプリを触ってくれる日がきたり、何か仕事で関わる機会がきたり…など夢みながら楽しく学んでいます。個人開発が中々続かない!という方は是非一度、ご自身の趣味を軸にネタを考えてみてください。
私も山本耕史さん同様に新幹線に乗ってアタックしていれば…と未だに夢をみます ↩