Retty新卒アプリエンジニアの入社半年間の振り返り

この記事は20新卒エンジニアの振り返り記事の二つ目になります。一つ目の記事はこちら

2020年に新卒としてアプリチームのエンジニアとして入社した松田です。入社してから半年という月日があっという間に過ぎました。この記事ではこれまでにRettyで行ったことについてまとめていきます。

自己紹介

学生時代は個人でアプリケーションを開発していました。
まだ世に無いものを作る楽しさと収益という部分でアプリ開発をしていましたが、だんだん技術面を磨いていきたいという思いが強まってきました。やはり、個人開発では技術の向上に限界を感じた為、様々な企業でインターンをするようになりました。
Rettyへ入社した理由は、毎日行う食事という事が好きな事と入社前のインターン時に意思決定の迅速さを感じたからです。

Rettyへ入社して

コミュニケーション

3月頃からリモート勤務推奨となったので、これを書き始めた時点で4月の入社以降、一回もオフィスに出社していません。と言っても、1年以上前(2019年の春頃)からインターンとして参加していたのでコミュニケーション面で特に困ったこともありませんでした。現在は週2出社推奨となっています。
チームでのコミュニケーション方法としては、朝会はGoogle Meetで行い、miroのカンバンで進捗を共有し、SlackやDiscordで疑問点を相談したりしています。他にも、週に一回雑談時間が一時間設けられ、新しいガジェットの話や、最新技術で盛り上がっています。

開発環境

入社時に好きなスペックでPCを申請して貸与されますが、ほとんどの人がMacを選択されるので、開発全体としてMacが使用されています。
しかし自分は主にWindowsを使用していますが、iOSアプリ開発ではMacが必須のため、Mac Book Proを申請しました。自前のPCも申請すれば使用できるのと、業務が行えればOSは問われないのでiOSアプリ開発以外は自前のWindows PCで行うつもりでした。
しかし、入った当初はWindowsでも行えるはずのAndroid開発がMacでしかできないという状態であったので、ビルドスクリプトの修正やドキュメントの整備を行い、Windowsでも開発が行えるようになりました。

業務フロー

プランナーさんに実現したい内容の聞き取りを行い、それを実装してく形になります。それ以外にはアプリ側でクラッシュが多いものや、レスポンスが遅いAPIが無いかチェックして修正していく事もあります。自分から手直ししたい機能やUIがあれば自分から提案を行うこともあります。
自分が主に行っている業務はAndroidアプリ開発が中心となっています。

開発業務

Androidアプリ開発

Rettyではタイや香港でもサービスが展開され、日本も含め一つの同じアプリとして提供されています。そのため多言語への対応や考慮が必要な部分があり、そこが苦労した部分になります。そしてある時、タイや香港の場合の考慮が漏れ、特定条件で必ずクラッシュする不具合を埋め込んでしまい、運悪く動作チェックでも不具合が通り抜けてしまった事がありました。その時はテスト項目の見直や、関係部署への連携、説明を行い、段階的リリースの導入を行いました。
このクラッシュが起きてからはクラッシュログを常に気にするようになり、テストを記述するようにしたり、テストを行いやすくする等の活動を行いました。

見た目でわかりやすい成果を書くとすると、以下のマップ画面の改善を自分から提案を行いました。ナビゲーションバーを透明にして、表示できる情報量を増やしました。
それから、Go To Eatのキャンペーン中ボタンも作成しました。

f:id:rettydev:20201020172218p:plain:w300 f:id:rettydev:20201020172235p:plain:w300

iOSアプリ開発

入社するまではiOSアプリ開発は一切行ったことがありませんでした。
最初はiOSアプリで使用されるAPIサーバーの情報から通信用のSwiftのSDKを生成するコードのメンテナンスを行い、Swiftの書き方を習得しました。
最近ではUI周りの開発にも携わるようになりました。

APIサーバー

アプリチームの全員が全ての技術に精通しているわけではないので、お互い得意不得意がありながら補っています。その中でAPIサーバーをフレームワークレベルで把握しているメンバーはチーム内に少なかった為、技術のキャッチアップを行い、ドキュメントの作成を行いました。更に通常の開発だけでなく、問題が起きた時にも対応できるようになったと思っています。RettyのアプリのAPIサーバーはKotlinを使用していてAndroidを主にしている自分にとって、とっつきやすかったです。

実際に開発した機能としては、利用シーンの追加があります。
Rettyでは外出自粛に伴い、「朝食・昼食・夕食」の利用シーンに加え、テイクアウトのシーンにおける投稿が行えるよう改善を行いました。
f:id:rettydev:20201023153617p:plain:w300

利用シーンという投稿に紐付くものなので、多くのAPIレスポンスにこの情報が含まれています。しかし、RettyのAndroidでは未知の値を受け取るとクラッシュするようになっていました。そこでフレームワークの知識を活かし、古いAPIのレスポンスを一括して「その他」に差し替えるという事を行いました。これにより、コードの複雑さを抑えながらテイクアウトシーンの投稿に対応させる事ができました。

おわりに

行った事が無かったiOS開発にチャレンジしたり、サービスの改善の提案などが気軽に行え、取り入れられるので、自主性を持って開発が行えています。更にアプリの設計について議論したりすることも多々あるので、それらの部分を楽しく感じながら働いています。
インターン期間も合わせるとジョインして一年以上になり、アプリチームの開発にもだいぶ慣れました。今後はあまり触ってこなかったiOSアプリ開発や、APIサーバーは開発がしにくいと思っている部分があるので、開発のしやすさの向上を目指していきたいと思っています。

アプリはこちらからダウンロードできますので、ぜひ使ってみてください。
Get it on Google Play App Store