yamakenの呟き

サイボウズのサマーインターンに行ってきた話

f:id:yamakentoc:20180815115854j:plain

はい。ということで夏のインターン1つ目である、サイボウズサマーインターンシップ2018に参加してきました!!!webやモバイル、デザイナーなどの5つのコースを選べるのですが、今回僕はモバイルコースとして参加してきました。期間は1週間だったのですが、たくさんのものを吸収できたんじゃないかなと思います。

 

インターン初日のこと

インターン初日に少しの緊張と共に出社してみたら...

 あれ?来る場所間違えたかなーっと思ったら人事の方に声をかけてもらい、どうやらここがサイボウズのオフィスであってたそうです...w

 写真は取れなかったのですがこのスペース自体とても広く、イベントも頻繁にやっており、カフェのようなスペースもあり、めちゃくちゃ雰囲気よかった!

 

インターンで担当したサービスのこと

f:id:yamakentoc:20180815122115p:plain

 

今回、kintoneという業務改善プラットフォームのモバイルアプリの開発に携わりました。僕もあまりkintoneがどういうサービスなのかわかりませんでしたが、実際にインターン中に使ってみると、Webアプリやコミュニケーションツールを簡単に作成することができてめちゃ便利だな〜という感じでした。

で、そのkintoneの新規モバイルアプリを開発している最中ということで、今回そのモバイルアプリの機能追加を行いました。

 

インターン1日目

 1日目はオリエンテーションをやった後に環境構築をし、早速メンターさん方と今後やっていくことを話し合いました。この開発ではスクラム開発を行なっているようなので、スプリントプランニングとリファインメントを行い、どのくらい工数がかかるか、どのようなことをしなければならないのかをチームで考えました。そしてタスク的に5日間で終わらんなぁ...というお気持ちにもなりました。。。

僕が所属している大学のPBLでもスクラム開発を用いていますが、「なんちゃってスクラム」ですし、個人的には他の会社よりも、文章として伝えきれてないですけどサイボウズスクラム開発はしっかりしている印象が残りました。

 

インターン2日目

昨日決めたことを早速実装していきました。最初のタスクとしては、web版のkintoneでは投稿者の名前の横にアイコンが表示されていないので、それを表示するというものでした。画像の取得は他のインターン生の方がやり、僕はその画像と名前を表示するCustomCellとそのClassを新たに作成しました。このアプリではCleanArchitectureとMVVMの両方の概念を元に設計しているので少し複雑でしたが、あまり難なくできました!

この5日間のタスクでは、大まかに分けると3つあるのですが、1人が1つのタスクを全てやるというのではなく、そのタスクを更に小さく分けてやりたいタスクをやっていくという感じだったので、手が空いた人から順にタスクを消化していき、2日目が終わった時点で、実は3分の2が終わっていました(皆優秀すぎ...)

 

インターン3日間

3日目でようやくRxSwiftを使う時がきました!このタスクでは、アプリのお気に入り機能の実装を行いました。まずはローカルの値を取得する実装。

ModelにBehaviorSubjectとして存在するBool値をM→VM→VCという流れで取得し、それに合わせてお気に入りボタンをタップした時にその値に合わせてボタンの画像を変えるようにできました!

後、モブプロをしてお気に入りの状態を取得するAPIClientを作成しました。初めてモブプロってのやったんですけど、複数人でコードを考えて書くって面白いですねwそしてめっちゃ捗ります!

qiita.com

モブプロで作ったAPIClientを使って実際のお気に入りの状態を取得することができました!

 

で、ちょっと余談なんですけど、お気に入りのボタンの実装するとき、R.swiftすげぇというお気持ちになったので共有。

(R.swiftってググれば出てきますけどなんとなく自分で復習がてら少し書こうかと..)

R.swiftとは

R.swiftっていうのは、画像やstoryboardの名前をプロパティとして取得できるライブラリのこと。

例えば画像を取得する場合...

storyboardを取得する場合...

補完してくれるしタイポなくなるしめっちゃ便利...!ワードウルフにも導入した!

yamakentoc.hatenablog.com

 

アクセシビリティ勉強会

夜にアクセシビリティ勉強会という勉強会をやっていたので参加。障害を持つユーザーに対応する設計じゃなく、全てのユーザーが使えるように設計しようという勉強会で、なるほどなぁという感じでした。実際そういうことを今まで考えてアプリを作ったことがなかったのでいい機会になりました!

f:id:yamakentoc:20180816152128j:plain

 

インターン4日目

 午前中に他のインターン生の方と一緒に、お気に入りボタンをタップした時に新しいお気に入り状態を保存する処理とエラー時の処理を書きました。そしてプルリクを出したら午後にはたくさんのコードレビューが!Rxの書き方を中心に色々と書かれていたのでめちゃくちゃ勉強になりました!コードの修正と他のインターン生のタスクを一緒にやってこの日は終了。

 

インターン5日目

なんだかんだで最終日。1日目には絶対終わらんとか思ってたのに全部終わりました!最終日は各コースのインターン生がやったことを発表!

(インフラコースの話が難しすぎてわからなかった...)

 

その後は懇親会〜!

↓360度カメラ

f:id:yamakentoc:20180816152818j:plain

 

 

そしてインターン終了の記念撮影

f:id:yamakentoc:20180816154935j:plain

 

最後に

1週間のインターンですが、色々と勉強になりました!特にRxSwiftの面では本当に勉強になりました。独学でRxを勉強しようとすると概念を最初に勉強して、そのあとに色々とサンプルとか見て写経してみて...って感じで勉強してって感じなのですが、中々いいサンプルとかないんですよね。で、今回実際のアプリを触りつつコードをみつつ実際にコードを書いてみて、ってやってたらめっちゃくちゃ理解できました!やっぱ実際のプロダクトのコードを見る方が理解しやすいなと感じました。

あと、色んな社員さんの話を聞いて、サイボウズの社員さんの働き方が本当に自由で充実しているなぁと思いました。(台風の前日に社員さん全然いない感じが自由すぎる...)

 

また、いつかサイボウズにお邪魔できればと思います!サイボウズの皆さん、メンターの皆さん、同じインターン生の皆さんありがとうございました!!!