ピクシブのスプリングインターンでつよつよになれました

こんにちはチキングです。
この春休み中にピクシブのスプリングインターンに参加させていただきました。

www.pixiv.co.jp

インターンの概要

www.pixiv.co.jp

インターンでは、大きく分けて3つのコース(全15コース)を用意し、本番環境のAPIを叩き、レビューをうけながら、実際に普段から社員が行っている業務にチャレンジすることができます。 技術の習得やチーム開発を通じて「圧倒的猛者になる」ことは勿論ですが、ピクシブの開発環境や社風を知ることも出来るインターンシップです。

という感じで自分はpixiv Sketch(iOS)にお世話になりました。
インターンの時期は2/15~2/25に調整してもらいました。
また、ご時世的にフルリモートのインターンとなりました。(会社行ってみたかった…)

やったこと

既存のコンポーネントをSwiftUIに置き換え

ブラシ選択画面のコンポーネント作成

f:id:tiking76:20210329033845p:plain
こちらのタスクはおそらくインターンの面接の時に得意なことはUIを構築することって答えたことでアサインしてもらったタスクです。
SwiftUIに慣れてなかったので、結構時間がかかってしまい、また一から自分でUIを構築することとは違う難しさを感じることができました。
また、UIを作ることを一つとっても実務と個人開発のギャップを感じることができました。
個人的に一番良かったと思ったのは、UIKitからSwiftUIに書き換えをする際に社員さんの書いたコードを読みながら進められ、疑問点があればすぐに質問ができたところです。
このタスクは実力的にまだコンフォートゾーンに収まっておりとても楽しかったです!

新しいアーキテクチャ(TCA)の導入の触り

ブラシ選択画面に適用

インターンの方では上記にも書いたとおり主に、SwiftUIとTCA(The Composable Architecture)を触っていました。
TCAについては後日イベントにてLTした資料があるのでこちらで確認ください。 speakerdeck.com こちらのタスクは最後まで仕上げることはできなかったので、自分の中でも悔しいです。
なぜReactorKitから移行したのかは、
ReactorKitとTCAどちらもFlux指向なアーキテクチャでState管理に優れていたのですが、
TCAの方はSwiftUIにも対応可能だったで導入しました。
また、TCAはViewごとのStoreを構築できる点も導入した理由の一つです。
アーキテクチャ自体が推奨している。
このタスクは実力的にコンフォートゾーンから外れたところにあると思っていて自分の感覚的に崖を登っている感覚に近かったです!(崖登ったことないんですけどね笑笑)

感じたこと

社員さんの仲がめっちゃくちゃいい!ことや、 みんなpixivが好きなことが伝わってきました! つまり、めっちゃくちゃ働きやすそうな所やんってことです。

感想

8日間の間にキャッチアップと実装をしていたので、終始「つらい…」と「最高!!楽しい!!」を往復していました笑笑。 特に、TCAの理解にはすごく苦しみました。
Fluxとかの考えとか知識とか知らないと難しいことに加えて
それまで、自分は「アーキテクチャ、それイイネ👍」っていうぐらいの理解だったので大変でした笑笑
そんな自分をめちゃくちゃサポートしてもらったkwzrさんには感謝してもしきれないです。
ありがとうございました!!🙏
その中で、たびたび聞くことは恥ではないと言ってもらったことも折れずに続けれた要因の一つでした。
また、質問する際も「やりたいこと・現在の状態・自分のアプローチ」の三点を整理してからしようねとアドバイスをもらい、
当たり前のことを当たり前にできることの大切さを学べました。
終業後に社員さんに誘ってもらいAmong Usを社員さん達とやったりして業務外のことに関してもとても楽しかったです。

で、結局つよつよにはなれたの??

「うーーーん微妙w」って感じです笑笑
つよつよかどうかは正直わからないですけど、確実に成長はできたかなって思える8日間だったと思います。 それは、技術面に関してはもちろんなんですけど、タスクの進め方だったりや考え方などを吸収でき成長できました!
また、社会人として、エンジニアとして働くことの楽しさだったり、辛みだったりを感じることができました。
とても濃い8日間を過ごせて成長できるインターンでした。 ありがとうございました🙏🙏