10期ブログリレー3回目の記事です。#Notionのある生活でした。チーム所属のTatsumi0000です!普段の業務ではiOSアプリの開発をしています。この記事では、フルリモートで入社した新卒エンジニアが配属後から現在に至るまでどのような業務を行ってきたか紹介したいと思います。最後にはじめに事業領域拡大チームでは、iOS・Androidのモバイルアプリの開発をメインに行なっています。Managerの開発に携わっています。Goopeとは、専門知識がない初心者の方でも、ホームページの作成・運用をかんたんにできるサービスで、様々な機能を提供しています。Managerでは、Web版の機能のうちアクセス解析機能お知らせ機能お問い合わせ機能の閲覧や編集機能を提供しています。基本的な開発の流れは、毎週月曜日にディレクターさんとその週にやるタスクを一緒に決めて、そのタスクをやっています。タスクを決める時は、ユーザ目線を忘れずにしており、「iOS13で新機能が出たので、XXのYYに使うとユーザがより便利にアプリを使えそうです。」と言ったエンジニアからの意見も取り込んでくださいます。Projectsで管理しています。requests(PR)をレビューしたり、他のチームで困っていて自分が手伝えそうならお手伝いをしたり、EC事業部でやっているチャプター、定例ミーティングに参加したりもしています。EC事業部のチャプターは、1〜2週間に一度、興味のある専門領域にチーム内外問わず参加し情報を共有する会です。Learningがあります。MobileとSecurityチャプターに参加しています。Meetで毎日やっていて、進捗確認や困っていること、雑談などをしたりもしています。毎日のECモバイル昼会以外でも、SlackやGHES上のissueやPRを使って気軽に質問しています。質問して得た回答や、業務を進める上で学んだ知識は、社内の個人Notionにまとめています。以下のような形でNotionにまとめており、社内のメンバーなら誰でも見れるようになっています。事業領域拡大チームは、私を含めて全員でエンジニア二人のチームです。Managerのコードの実装は基本的に私一人で行っていて、機能面のPRを出す時に事業領域拡大チームの別のエンジニアさんに、デザイン面のPRに関しては、EC事業部のデザイナーさんにレビューをお願いしています。デザインに関しては、デザイナーさんがFigma上に作成してくださったデザインをもとにXcode上で実装をしています。配属ペパボの新卒エンジニア研修では、研修中に各事業部やチームのエンジニアがどのような技術・開発体制なのか説明会を順番にしてくださいました。Managerは担当者がいなくてバリュー出し放題だよ。」という話を聞きました。私自身が学生時代に趣味でAndroid・iOS開発をしており、モバイル開発がとても楽しかったので、「モバイル開発ができてバリュー出し放題はとてもいいな。Managerが触れる部署に行きたいです。」と書いたところ配属されました。最新のXcodeでビルドして出てきたエラーを潰していくことから始め、ビルドできるようになったら、Swift4からSwift5への対応や、使用しているライブラリのアップデートをしました。Swift5のアップデートをする時に、テストコードを追加しながら、アプリの全体像をなんとなくですが把握していきました。Managerで使っている技術や、配属後やってきたことの一部を示します。Managerでは、ReactorKitを採用しています。ReactorKitとは、単一方向のSwiftアプリケーションをつくるためのフレームワークで、Fluxとリアクティブプログラミングを組み合わせて作られています。Reactorkit/Reactorkitリアクティブプログラミングの部分にRxSwiftが使われています。私はRxSwift(リアクティブプログラミング)が全く初めての体験だったので概念を勉強しつつ、実際に手を動かす方をメインで、勉強しました。既存のコードに、debugオペレーターを挟みながらデータの流れをコンソール上に表示しつつ理解しました。disposeBag)以下のようにコンソール上で表示します。(一部画面を塗りつぶしています)既存のコードを読む上で、何をやっているか理解が難しい箇所もありました。引っかかったのは、クロージャの省略系でした。そのような時は、理解が出来なかったクロージャを省略せずに書いて、自分の理解があっているか確認しながらコードを読み進めました。RxSwiftでは様々なオペレーターがあり、最初のうちはどれが何をするのか全く分かりませんでした。何度もコードを読んでいくうちに出てくるオペレータの種類は決まっていることに気づき、時間の経過とともに分かるようになってきました。ManagerではバックエンドのAPIと通信をしてデータのやり取りをします。このAPIの仕様が載っているAPIドキュメントの確認手順が少し複雑でした。Editor上にコピペして確認という流れでした。このような確認方法だと最新のコードをpullせずにAPIドキュメントを生成し、古いAPIドキュメントを見て、間違った実装をする可能性があります。Pages上にCDするようにしました。このようにすることで、社内のメンバーなら誰でも常に最新のAPIドキュメントを見ることができ、人手によるミスを減らすことができます。Managerでは、iOSのサポートバージョンを13以上にしているので、SwiftUI対応をやっています。Architecture(TCA)の移行もしています。TCAでは、Combineを使っており、既存のRxSwiftを使ったAPIとの通信部分をオーバーロードする形で移行しています。ManagerのCI/CD環境をBitriseで作成ペパボモバイルテックカンファレンスでは、配属後3ヶ月間でやってきたことと題して発表などなど、色々な経験をさせてもらいました。配属直後は目の前のタスクに精一杯で、色々な変更点が混ざった巨大なPRを投げたり、UIの変更に対してどこがどのように変わったのか文字を書くだけで、スクショを載せていなかったりしました。現在では、機能ごとにまとまりのある単位でPRを作成したり、UI変更のPRをお願いする時は変更前と変更後のスクショをテーブルで見やすくしてレビューに出すようにしています。最後に私が配属されてからやってきたことについて紹介しました。4月からは後輩も入ってきて、先輩になりました。