はじめに
完全に日記です。
特に技術的に解説してみようと思っていなく、実装の感想などを主に書いています。 簡単なモバイルアプリを作りましたが、アニメーションを除けば基本的な機能は実装してます。
動機
研究室ではスーパコンピューターを使ってのシミュレーションがメインなので、世の中のお金を生むような、いわゆる「サービス」から離れてしまいました。
今も論文のアブストラクトを執筆・教授に添削してもらっている途中です......
感覚を麻痺させないためにも、1日程度まるっと時間を作って単純なサービスを開発してみたという記事です。
インフラ構成
CIはBitriseを使っていますが省略してます。他の本質でないところも省略してます。
コメント
言語をRust, Lisp, Rubyを使った理由
- Rust: ゲームプラットフォームと名前が一緒だったから。
- Lisp: パッケージ管理ライブラリがRoswellという名前で、自分が小学生のときにニューメキシコ州に住んでいてロズウェルによく遊びに行っていたから。
- Ruby: Slackへの通知は単純だし面白みもないので秒速終えたかったから。
総括すると適当です。
インフラに対して
- GKEを用いた理由は簡単な戦略的なデプロイが可能であり、チームで運用しやすいから。スケール性も考慮。
- ロギングとしてfluntdを採用した。機械学習のオンライン学習に用いることができるから。自分がオンライン学習用の環境が欲しかったから。
- MySQLは永続性と使いやすさを考慮して導入。
- モバイルデータベースrealmはただ使いたかったから。ユーザーの情報を格納。
作成したアプリ
アプリの名前は「Gino」です。 ログインするとGithubリポジトリを検索することができるだけのアプリケーションです。 お気に入りすると検索結果を保存しておくことができます。
一部のUIを載せます。
ただそれだけです。特に目的もないです。
ライブラリの導入を検討しているときに役に経ちました。
最後の画面は特にすることがなく、空白にしてます。 あとウォークスルー型のチュートリアルを作りましたがコンテンツ不足のためデザインが酷くなり載せません。
Firebaseは無料枠が使い切っていたので使いませんでした。
最後に
タイトルではガチってやってみると書きましたが、まだまだやりたいことがたくさんあり、達成度は60%くらいです。 また、デザインや良いUX体験の提供など細かな点は捨ててますが簡単なインフラ・サーバー構築ならば数日あれば、iOSクライアント開発がなければ1日もあれば十分構築できます。
グロースの方がプロダクトローンチよりも難しい一方で、ローンチ時の仕様・技術選定が何よりグロースを握っていると思います。
そのため経験豊富なインフラエンジニアが必要かと言われればそうは思いません。 宣言的継続的デリバリーを採用すれば、チームメンバー全員がインフラエンジニアになれチームの開発速度は爆上がりでしょう。
「ソフトの価値をユーザーに継続的に届ける」ことが継続的デリバリーの真価であり、ビジネス面にも有用であることは間違いありません。
宣言的継続的デリバリーについては以下の記事をご覧ください。