Retty新卒エンジニアの入社半年間の振り返り〜Part.1〜

はじめまして。2018年度の新卒でエンジニアとして入社しました山田翔哉です。 4月の入社から半年という節目を迎えるに当たり、これまでRettyでチャレンジしてきたことについてまとめていきたいと思います。

自己紹介

高専出身です。 在学中は電子制御工学科に属しており、ロボットを作るための様々な技術(機械工学、プログラミング、電気工学etc…)を包括的に学んでいました。 ロボコンに出場して、地区大会で優勝したこともありました!

その傍ら、プログラミングを通した物作りにハマり、個人でAndroidアプリを作って販売してみたり、ベンチャー企業ウェブアプリケーション開発に参加したりとソフトウェア開発に携わってきました。

そのような経験を積む中で、自分が興味関心を持っていること(プログラミング以外に食べることも好きです!)を仕事にしたいと考え、卒業後、Rettyへジョインしました。

主な業務について

4月下旬からアプリチームに参加し、APIサーバー開発からiOS/Androidアプリ開発までを手がけています。 Rettyのアプリチームでは、フロントエンドであるiOS/Androidアプリの開発は勿論、それらがバックエンドで使用しているAPIサーバーの開発も担っています。

スクラム開発を導入しており、今までチームでの開発経験に乏しい僕にとっては、とても良い刺激になりました! 特に、タスクにポイントをつけておくことで、チームとしてどのくらいのタスクをこなすことができるのか数値化し、今後の改善に活かしていくやり方はとても合理的だなと感じました。 参加してすぐの時は見積もりの勘所がわからず、大変だったな〜という思い出があります。
広範な技術を扱うチームなので、とてもたくさんのことにチャレンジしています!

f:id:rettydev:20181025111648p:plain
Rettyアプリチームのメンバー(手前右が山田)

APIサーバー開発

アプリチームにジョインして最初に担当したタスクがAPIの機能追加でした。 Rettyで使用しているAPIサーバーはKotlinで開発されています。
Kotlinは個人的なAndroidアプリ開発では触っていたのですが、Android以外でKotlinを使用することがなかったため、とても新鮮でした!
また、今までSQLにそこまで多く触れたことが無く、SQLを活用してDBからデータを取得してくるということに対してとても不便そうなイメージを持っていました。しかし、そういった部分にも挑戦することができ、例えばViewのような、自らの知らなかったより便利な機能を知ることができ、そんなイメージを払拭することができたなど、多くの学びを得ることができました。

iOSアプリ開発

次にiOSアプリの開発にも参加しました。 Rettyに入社するまでiOSアプリ開発の経験は一切なく、Objective-Cは勿論Swiftも、iOS固有の知識も何も知らない状態だったので、思い通りにUIを作ることがなかなかできず、最初はとても苦労しました。
しかし、アプリチームの先輩エンジニアから手取り足取り教えていただき、参加してから一ヶ月が経過した時にはきちんと開発に参加できるようになりました。 実際に、開発に関わったものとしては、非ログイン機能や新しい投稿画面の実装、各種不具合修正などを行いました。

Androidアプリ開発

7月ごろからAndroidアプリのリニューアルに向けた開発も行なっており、現在はこの業務がメインです。

僕が開発に参加するまでのAndroidアプリは、Activity内にUI周りの処理やUIと関係ないデータの処理などが入り混じっている、いわゆる「FatActivity」な設計となっていました。これによってコードの見通しがとても悪く、リファクタリングも簡単に行えないような状態でした。
これをなんとかしたいと思い、リニューアルをするという良いタイミングだったので、「今後のためにもMVPアーキテクチャを適用し、テストの導入を進めていきたい」とチームに提案したところ、快く受け入れてもらえ、設計の改善も自ら主導することになりました。

最近では、投稿ユーザーさんのプロフィール詳細画面のリニューアルを行いました。以前よりもサクサク動くようになり、メンバーからも「使いやすくなった」というフィードバックをもらえました!

f:id:rettydev:20181015142121p:plain
Android版Rettyアプリのユーザー詳細画面

おわりに

Rettyにジョインしてからおよそ半年、サーバーサイドからAndroid/iOSアプリのフロントエンドまで、知っていたことも全く知らなかったことも、区別なく様々なことに挑戦してきました。これにより、領域を気にせず、知らないことにも臆さず、やりたいと思ったことにどんどん突っ込んでいける力が身についたと感じます。

今後も、この自由に挑戦できる環境を活かして、ゆくゆくはプロダクト開発を担えるフルスタックエンジニアになることを目指して、技術の区別なくどんどん知識を吸収し経験を積んでいきたいと思います!