MENU

WHAT IS FUSIC DOING?Fusicってなんしようと?

OJTレポート「Fulag(スマートフォンアプリ関連)のご紹介」#石橋・坂井・夛田レポ

2020.10.02

OJTレポート

2020年度新卒入社の技術開発本部の石橋 龍坂井 佑理夛田 武広

当社のOJTで作成した社内システムをご紹介します。


※Fusicでは、エンジニアの新入社員に対し、約半年間の教育制度を導入しています。

その期間のうち数ヶ月間は、エンジニアとしての技術力向上や、

一人でクライアントとやり取りができるようになることを目的とし、

OJTを実施しています。

==============================


【システム名】

Fulag(スマートフォンアプリ関連) ヨミ:フューラグ




【システム種別】

スマートフォンアプリ関連



【セールスポイント】

社内メンバー間で飲食店のレビューや共有ができるアプリケーションです。

FulagはFusic + Flagという名のもと、アプリ内のマップに、訪れた飲食店の旗を立てることで、社内メンバーがこれまで訪れた飲食店のレビューを投稿したりおすすめのメニューを共有したりすることができます。

Fulagで飲食店情報を蓄積していくことで、情報共有を手軽に行い、有益な情報交換を行えることを期待しています。

また将来的な機能として、社内メンバーがよく訪れる飲食店のランキングやヒートマップの作成を検討しています。



【開発期間】

2020年8月1日(土)~ 現在も開発中



【技術】

クライアントサイド:React Native、Expo、TypeScript

サーバーサイド:Laravel、JWT-Auth、PostgreSQL、Docker



石橋の感想

【難しかったこと】

初めてのReact Native + TypeScriptで前半はかなり苦戦をしました。しかし、後半は慣れてきて開発スピードも上がり、どんどん作る楽しみを感じることができました。後半で修正をする時も、TypeScriptの型があることに助けられたので、TypeScriptがなぜ人気なのかを感じることもできました。


【頑張ったこと】

チーム内で頻繁にコミュニケーションをとるようにしたことです。Slackの通知で誰が何をしたのかはある程度把握することができますが、新機能についてはスクリーンショットとコメント付きで説明することで、チーム内で褒め合うことに繋がり、コミュニケーションが活発になったと思います。


【OJTを通して学んだこと】

当初余裕を持ってスケジュールを組んだつもりが、実際に進めていくと時間がかつかつになってしまいました。想定以上に実装に時間がかかることもあったため、1日あたりに進められる量を正確に見積もることの重要さを学びました。



坂井の感想

【難しかったこと】

すでにサービスが動いている既存サーバーへのデプロイが大変でした。専用かつ未稼働のサーバーであれば、たとえ止めてしまったとしても、最初から作り直すことは可能ですが、それができず苦労しました。またインフラの知識がまだ不足しているため、他の人が書いたインフラの設定を読み解くことがとても難しいと感じました。


【頑張ったこと】

PHP は未経験で入社したため、Laravel を用いてここまで実装ができたということは自信に繋がりました。API の実装だったため、アーキテクチャ部分に手を入れる機会もあり、とても勉強になりました。


【OJTを通して学んだこと】

チーム開発の楽しさと難しさを両方実感しました。3人でチームを組むと、1ヶ月でここまで実装できるというスピード感と、プロジェクト全体像の把握がしづらかったことが特に印象に残っています。前者に関しては、個人開発では難しいような大きなモノが組み上がっていくという感覚がとにかく強かったです。クライアントサイドとサーバーサイドを完全に分離していたということもあると思います。後者に関して、私は主にサーバーサイドを書いていたので、クライアントサイドがどうなっているのかということはチームメンバーに任せていました。把握しづらいがゆえに、あらかじめ API 仕様を決めておいたことはコミュニケーションの大きな助けになったと感じています。



夛田の感想

【難しかったこと】

クライアントサイドでは、社内でも知見の浅いReact Nativeでネイティブアプリの開発にチャレンジしたため、全体的に手探り状態でした。また、Figmaを用いて作成したデザイン通りにコーディングするのがWebのように上手くいかず苦戦しました。サーバーサイドでは、LaravelをWeb APIとして開発を進めた経験がなかったため、とても苦戦しました。


【頑張ったこと】

全体を通して言えることですが、OJTチームで唯一クライアントサイドとサーバーサイドを切り分けて開発を行ったことは頑張ったことだと思います。


【OJTを通して学んだこと】

サービスをリリースする上で、企画・設計・見積という工程がどれほど大事なものかを感じとることができました。また、開発フェーズでは開発を素直に楽しむことができ、新しい技術にチャレンジすることがどれほど難しいことだったのかを学ぶことができました。