DMM.comの、一番深くておもしろいトコロ。

ユーザー数60万人を突破した献立アプリ「MENUS」のAndroidアプリ開発インターン

ユーザー数60万人を突破した献立アプリ「MENUS」のAndroidアプリ開発インターン

合同会社DMM.com のインターンシップに参加してきました!

f:id:dmmlabotech:20181129144903j:plain

こんにちは、はじめまして。沖縄工業高等専門学校4年メディア情報工学科のmitoです。  

パソコン甲子園モバイル部門というAndroidアプリ開発縛りの大会にて、2016年と2017年に2年連続ベストデザイン賞をいただきました。  

この大会の影響もあって、普段からKotlinでAndroidアプリ開発を行なっています。  

Kotlin、好きです。

日程

2018/9/10~2018/9/21(9日間)

配属部署

テクノロジー本部 CTO室(メンター出向先のMENUSのAndroidアプリ開発に携わる)

参加した目的

  • Androidアプリ開発を行っている企業のインターンシップで実際の業務に参加して、個人で開発している時では得られないような経験や知見を得たい

  • 以前から時々お世話になっているDMMでインターンシップをしたい

  • 1on1でAndroidに関する知識を教えてもらえるチャンスだと感じた

 

インターンシップの内容

DMMさんからリリースされている「MENUS」という献立提案アプリのAndroidアプリ開発チームに参加させていただきました。

■MENUS by DMM.com menus-recipe.com

そこで自分は以下の内容を担当させていただきました。

  • 新規画面作成(1~7日目)

  • 疎通確認(7~9日目)

  • 成果発表(8日目)

 

自分がRxやDIに関する知識がほとんどなかったため、プロジェクトに参加してすぐコードを書く前に、メンターさんに基本的なことを理解できるまで教えていただきました。  

コードを書いている途中にもわからないことがあると質問して、メンターさんに教えてもらいながら進めることができました。  

毎日、テレビ会議を繋いでその日の進捗やつまづいている点を共有し、分からないことがあればそこで質問するという形でチームの人達にパッと聞けるのが良いなと思いました。  

 

タイムスケジュール

10:00 出社

12:30~13:30 昼休憩

17:00~ 進捗と問題点共有

19:00 退社

※その他の時間はコーディング

 

だいたいこんな感じでした。10時出社で気持ち的にも余裕があったのと、昼休憩の時間が特に決まっておらず好きなタイミングで取れるのも良かったです。  

 

新規画面作成(1~7日目)

インターンシップの課題として用意された「嫌いな調味料選択画面」の作成を行いました。  

コードを書く前にクラス図を書いてから実装に入りました。クラス図を書いたのはこれがほぼ初めてでしたが、他の画面のクラス図を見ながら書き終えることができて、チームの人に確認してもらいながら指摘された点を修正していきました。  

最初にクラス図を書いたことで、実際にコードを書く際の実装忘れがなくなりました。  

GitHub運用の仕方も自分にとっては初めてのやり方だったので、とても新鮮でした。  

また、複数モジュールに分けて開発を行う手法もやったことがなかったので、自分が実装するものはどこのモジュールのどの階層に作るべきなのかなども他のコードを参考にしながら書いていきました。  

自分が実装していて一番つまづいていた部分はDI周りで、うまくinjectされず画面が表示できないという状態が続いていました。原因がわからず質問をすると、injectさせるために必要なコードが1行足りないということですぐに解決できました。  

インターンシップ7日目頃には作成し終わり、動作確認もできたので作業分をマージしていただけました。  

 

疎通確認(7~9日目)

これは自分が作成した画面ではないのですが、アレルギー食材選択画面のAPI疎通がうまくできるか、APIにアクセスするメソッドの実装を行いました。  

この実装を行う際に初めて知った、webAPIへのアクセスをGUIで行うPOSTMANというアプリケーションを使って、どこにどんな値を持ってアクセスすれば良いか試しました。  

この課題に取り掛かったのがインターンシップ期間残り2日くらいだったこともあって、ほとんど何もすることできずに終わってしまいました。  

 

成果発表(8日目)

インターンシップ最終日の前日に成果発表会が行われました。  

自分がお世話になった部署以外にも複数の部署にインターンシップ生がいて、この成果発表会では自分を含め合計5人くらい発表しました。  

成果発表前に何度も練習し、発表時間に合うように資料の添削を何度も行えて良かったです。  

発表に対する参加者からの質問はSlackの専用チャンネルに書き込まれ、発表終了後に回答するという体験したことのない形式でした。(※1)Twitterのタグみたいに発表へのリアクションがリアルタイムで更新される様子を見ることができて楽しかったです。  

(※1) f:id:dmmlabotech:20181203153500p:plain

 

インターンシップに参加して

大変だったこと

今回参加させてもらったプロジェクトで多く使われていたDIやRxに関する知識が参加前までほとんどなかったため、期間中は「コードを見て・調べて・聞いての繰り返しでなんとか」という感じでした。それでも見落としたり誤解していたりで、うまく動作してくれないこともありました。

また、複数のモジュールに分けて開発をしたことがなくて慣れていなかったのもあり、ファイルを探している時にも新しく作る時にも「どこだ…」という感じになっていました。(メンターの方にいろいろと教わりながら、インターンシップ終了間際には慣れていくことができました) 

DMMへの印象

以前に企業訪問をさせてもらったり、説明会に参加させてもらったりした時に会社のことや業務内容など聞いていて、また先輩の話からも、多くの事業をやっていて面白そうな企業という印象を持っていました。  

インターンシップに参加してみて、やっぱり多くの事業をやっている会社で、自分が関わっていないものについては相変わらず謎なままでした。でも面白そうという印象は変わらず、インターンシップでも作業しやすいし、チームのメンバーなど他の人にも話しかけやすい環境でとても良いなと感じました。  

選考が開始されたら、ぜひ応募したいです!

感想

インターンシップを通して本当に多くのことを学ぶことができました。  

  • DIやRxなど、やってみたいとは思っていたものの何もわからず手をつけることすらできていなかった技術に関して1対1で教えてもらうことができて、疑問点なども質問できて良かったです。  

  • このインターンシップに参加する前には読んでも全く意味のわからなかったであろうコードについても、途中からやりたいことや流れを理解できるようになりました。参加する前に目標にしていた、多くの知識を吸収して帰るということは十分達成できました。    

  • インターンシップが始まってすぐの頃はなかなか質問することができなかったのですが、メンターさんが「どんどん質問して良いよ!」って言ってくださったので、途中からは考えてもすぐにはわからなそうなことをしっかり質問することができました。  

  • オフィスの椅子やMBPなど作業環境もとても良くて、チームの方にキーボードまで貸していただいて本当に作業しやすかったです。  

  • いろいろなご飯の美味しいお店に連れていっていただけました。特に初日の肉が美味しかったです。

インターンシップを通して将来どういう企業や業界に行きたいかなどを具体的にイメージすることができるようになりました。 お世話になった多くの方々、どうもありがとうございました。  

このインターンシップで吸収した知識や気づいた点をこれからの学生生活や就職でも活かしていきたいです。  

 

recruit.dmm-corp.com