Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

iOSエンジニア志望の2ヶ月間のインターンレポート

はじめまして!
ヤプリのiOSチームでインターンに参加させていただきました、三ツ井と申します。

本選考の一環としての参加ではありましたが、技術的にもカルチャー的にも沢山の学びがあったので、振り返りとしてまとめたいと思います。

インターンに参加したきっかけ

ヤプリを知った最初のきっかけは、大学の先輩が以前インターンに参加しており、その時の話を聞いていたことでした。
その後、昨年のDroidKaigiの学生支援イベントでヤプリのオフィスを見学させていただく機会があり、そこで企業としての魅力やプロダクトの強さに興味を持ちました。

「この会社で実際の開発に触れてみたい」と思い27卒の本選考に応募し、選考プロセスの一環として今回のインターンに参加することになりました。

やったこと

インターン期間中は、主に以下の流れで業務に取り組みました。

  1. アプリ研修
  2. チケット対応(UI改善・不具合修正などのタスク)

最初に、課題として「Flutter製の社内アプリのネイティブ化」を行うか、「Yappli本体のチケット対応(実タスク)」を行うかという選択肢をいただきました。
ものすごく迷いましたが、せっかくなら実際のプロダクトに触れたいと思い、チケット対応を選択しました。

具体的に取り組んだタスク

このインターンでは主にUI周りの修正や改善をさせていただきました!

1. フォーム機能のUI不具合修正

【発生していた問題】
フォーム機能において、iOS 26かつaccessoryView を持つステップを経由すると「次へ」「戻る」ボタンの表示位置がズレてしまうという不具合が発生していました。

【解決策】
調査の結果、iOS 26の日本語キーボード特有の不具合だと分かりました。 そこで、accessoryView を持つステップへ移動する際に、一度明示的にキーボードを閉じてから再度開くことでキーボードの高さを正確に再計算させる処理を追加したことで解決しました。

修正前と修正後

2. ポイントカード機能のデザイン調整

【発生していた問題】
ポイントカード機能のインジケーターの表示がAndroid版と比較してデザインに差異があることが課題でした。

  • iOS版:インジケーターと数値が親ブロックからはみ出して表示
  • Android版:インジケーターと数値が親ブロックからはみ出さず表示

【解決策】
インジケーターのViewに対して、親コンポーネントで指定されているブロックの角丸の値を使ってマスク処理を適用しました。
これにより、インジケーターと数値が親ブロックの形状に合わせて切り取られAndroid版と同じ見た目に統一できました。

数値とインジケーターが裏のブロックからはみ出している数値とインジケーターが裏のブロック内に収まっている
修正前と修正後

3. スクロールメニュー内のログイン画面表示の仕様変更

【変更概要】
ポイントカードのログイン画面はこれまで画面全体に表示されていましたが、修正後の画像のように、スクロールメニュー機能ではスクロールメニュー内に表示させる仕様に変更しました。

【解決策】
他の機能に影響が出ないよう、全画面表示のロジック自体は変更せず、スクロールメニュー内でのみオーバーレイ表示に切り替えるアプローチで実装を進めました。
実装の結果、スクロールメニュー内にログイン画面を表示させるところまではできました!

このチケットは今回対応したチケットの中では最も難易度が高く、残念ながらインターン期間内での完全な実装には至りませんでした......。
しかし、「既存の全画面表示の仕組みを活かしつつ、特定条件でのみ表示を変える」という要件に対し、どうすれば全体の整合性を保てるかというアプローチを自分で考え、既存コードを読み解きながら実装するという実務ならではの経験ができたので、今回このチケットに挑戦できて良かったです🙌

ログイン画面が全画面表示になっているログイン画面がスクロールメニュー内に収まっている
修正前と修正後

これらのタスクを通して、コードを書いて終わりではなく、PRを作成し、レビューを受け、QAチケットを発行するという実務の一連の流れを経験することができました!

参加してみての感想

1. 「自分のコードがプロダクトになる」という緊張感

実際にチケット対応を進める中で、「自分の書いたコードが、多くのユーザーに使われるプロダクトの一部になるかもしれない」という、良い意味での緊張感と責任感を感じました。

2. ドキュメント文化の凄さ

ヤプリに参加して驚いたのは、ドキュメントが驚くほど整備されていることです。
とにかく読みやすく、情報が整理されているため、開発環境のセットアップや仕様の把握などキャッチアップにかかるコストが非常に低く感じました!
これから入る人にとって優しい環境だと思います。

3. 常に成長する文化

ヤプリにはエンジニア同士が知見を共有し合い、高め合う文化が根付いています。
特に印象的だったのが以下のイベントです。

  • WinSession
    • 開発統括本部で月2回実施されているイベントです。各プロジェクトや個人の動きを共有し、横のつながりを強化することが目的のMTGです。
    • 特徴的なのは、「Winしたこと(良かったこと)」を共有する場で、ネガティブな要素は一切なしという点です。私はiOSチームへのジョインでしたが、この場では他の部署の話も聞けてとても興味深かったです。
  • Yappdate Day
    • 通常業務ではなかなか手が付けにくい改善タスクなどをコツコツやる日です。
    • 最後に成果発表を行うのですが、そこかしこにプロダクトの品質向上への意識の高さを感じました。
    • (私のインターンの成果発表もこの場でさせていただきました☺️)

4. 人の良さ+プロダクト愛

インターン期間中、バトンランチという制度を通じてエンジニア・非エンジニア問わず幅広い職種の方とお話しする機会をいただきました!
そこで感じたのは、皆さん本当に人が良く、そして「Yappli」というプロダクト愛を持っているということです。
「B2B2C」というビジネスモデルの中で、クライアントだけでなくエンドユーザーの体験まで真剣に考えており、この「プロダクト愛」があるからこそ、サービスの価値が最大化されているのだなと実感しました。

最後に

大学の授業もあり、1日の稼働時間は短めでしたが、柔軟に対応していただいてとてもありがたかったです。

メンターを担当してくださった西村さんをはじめ、iOSチームの皆さんには技術的なアドバイスだけでなく、働き方やキャリアについても多くのことを教えていただきました!

地方在住で大学の授業もあったため仕方ないのですが、本音を言うともっと出社したかったです🥲
バトンランチなどで関わってくださった皆さんが本当に素敵な方ばかりだったので、実際にオフィスでお会いできなかったのが悔やまれます……!
会えなかったことが心残りに感じるくらい本当に良い人ばかりでした!

選考の一環としての参加でしたが、技術力向上はもちろん、組織としての在り方やプロダクト開発への向き合い方など、本当に多くのことを学べた2ヶ月間でした。

もし、ヤプリやプラットフォーム開発に興味がある方は是非エントリーしてみてください!

open.talentio.com