学生時代に作ったもの
2022-12-21
はじめに
GMO ペパボ EC Advent Calendar 2022の 18 日目です。出遅れました。前回は、しおりんによる、新卒 3 年目となった 2022 年を振り返るでした。オフライン LT をしたりアウトプット力がすごいなと思いました。自分も負けないように頑張るぞ!
今回は学生時代に作ったものについて紹介できたらなと思います。
学部生
研究室でとある部活の iOS アプリを開発していました。自分はその iOS アプリのバックエンドと言えるかどうかも怪しいものを作りました。具体的には、部活の Twitter アカウントの投稿を cron で定期的に取得して、前回取得時の投稿と差分がある場合に新着ツイートがありますよ、とプッシュ通知を送るものです。
当時は Twitter のデベロッパー登録が緩かったので色々なことができました。この開発を通して、Web API とはなにかを学べてよかったです。言語としては Ruby、プッシュ通知は mBaaS であるmobile backendを使っていました。mobile backend は、ドキュメントも日本語でプログラミング初心者の自分にはかなりわかりやすかったです。
iOS アプリしかなかったのですが、ついでに Android アプリも作っちゃえ!ということで作ったのですが、卒論が終わった後に作ったので時間が足りなく、リリースできずに卒業しました。一応後輩に託したのですが、リリースされた気配はありません。
Twitter の API を触った経験を生かして、Facebook の API でも同じようなことをしました。Facebook の API には GraphQL もありましたが、自分には難しすぎたので REST API を使って開発をしました。
研究室の友達がサッカーチームのコーチをやっており、その繋がりでサッカーチームの動画を共有する Android・iOS アプリを研究室のみんなで開発しました。自分はバックエンドの開発をメインで担当していました。フレームワークなどは使わず素の PHP で書いていました。Kotlin が Android 公式言語として採用されたばかりだったのですがフル Kotlin で書いたり、Fuelを使って開発をしていました。この開発を通して、みんなでわいわい開発する楽しさを実感しました。
修士
大学 院は別の学校に通うようになってそこでは、ET ロボコンに参加しました。二回参加してどちらも全国大会に行けたのは良かったです。
ET ロボコンでは組込みの難しさを骨の髄まで感じました。一回目は C++を、二回目は C++と Python を使いました。テストを書くことの大切さや、Circle CI や Travis CI、GitHub Actions を使った CI/CD を学べたのはかなり大きかったです。
ET ロボコンではレース結果だけではなく、事前に提出するモデルも点数(100%のうちの 50%)に関わってきます。モデル作成は UML の知識も必要でとても勉強になりました。他にもアジャイル開発をしていたので、週イチでみんなで研究室に集まってプランニングポーカーをしたり ZenHub で工数管理をしつつ、バーンダウンチャートを眺めたりしていました。ただし、開発終盤になってくるとプロジェクトが大炎上して、研究室に泊まり込みで開発をしていました。当時はきつかったけど今振り返るととても楽しかったです。
開発したコードは GitHub 上に公開しているのでリンクを張ります。
ADVISという iPad で動作する Arduino シミュレータの開発を引き継いだりもしました。Swift2 で書かれたものを Swift4 にフルスクラ ッチで書き直していて、起動時のアニメーションやパーツを配置するための導線など UI には結構こだわりました。他にもテストを追加したり、Travis CI を使ったり、jazzy でドキュメントを生成し GitHub Pages に CD したり、SwiftLint を入れたり色々やっていました。ALPSという Arduino 言語を解析した結果を Json 形式で返す Web API も作成しました。ALPS は Kotlin を使って、バックエンドのフレームワークとしてSpring boot、言語解析としてANTLRを使いました。国際学会で発表したり、ジャーナルに通ったのは良い経験でした。
最後に
学生時代に作ったものを振り返ってみました。書いていると懐かしい気持ちになりました。最近は勉強のために開発はしても、課題解決のための開発はできていないのでやっていかなければ…という気持ちになりました。