こんにちは。2025年9月にCA Tech JOBに参加した、木更津工業高等専門学校4年の川崎 直紀です。
今回、タップルのAndroidアプリ開発に約1ヶ月間、携わらせていただきました。
本記事では、JOB中に達成したことや学んだことをまとめていきたいと思います。
Jetpack Compose移行
「おでかけ」機能の中から2つの画面をAndroid ViewからJetpack Compose移行に挑戦しました。
チュートリアル画面
「おでかけ」機能には、初回表示されるチュートリアル画面があり、その画面のJetpack Compose移行を行いました。
この画面ではGroupieというライブラリが使用されていました。そこで、まずはGroupie内の各要素をJetpack Composeに置き換え、その後画面全体をJetpack Composeに置き換えるという流れで進めました。
コメント編集画面
おでかけの募集にはコメントをつけることができ、その編集画面のJetpack Compose化を担当しました。
文字数の制限や、文字がオーバーしている箇所のハイライトに対応する必要があり、先ほどのチュートリアル画面よりも難易度が高いと感じました。
特に絵文字に対応するのが大変でした。⛰️や🧑🧑🧒のような絵文字は複数の文字から構成されているため、そのまま .length で文字数をカウントすると仕様とのずれが生じてしまいます。
そこで BreakIteratorを用いて文字数をカウントしました。BreakIteratorは1文字の境界を検知することができます。
結果として、文字数カウンターと赤い文字ハイライトの両方とも絵文字に対応して文字数をカウントを実現できました。
Firebase Remote Configの活用
タップルではFirebaseのCrashlyticsとRemote Configが活用されており、クラッシュ等の重大な不具合が発生した場合に、すぐに変更を切り戻せる様になっていました。
今回担当させていただいたJetpack Compose移行タスクにおいてもRemote Configを活用し、不具合発生時には遠隔で移行前の画面へ切り戻せるように実装しました。
施策について
参加させていただいた施策は、ユーザーがよりわかりやすいように画像や文言の変更を行うというものでした。
施策のキックオフミーティングにも参加させていただき、私に加えてPMやデザイナー、バックエンド、iOSのエンジニアの方が参加しており、変更内容の確認や、リリースまでのスケジュール確認をしました。
変更対象コードの依存関係やテスト範囲を整理し、画面ごとに必要な修正点を洗い出すことで、実際に必要な工数を定量的に伝えることができました。
技術以外で学んだこと
タップルやCyberAgentのカルチャー
トレーナーの方には、様々な職種の方々とのランチを設定していただきました。ビジネス職の方と話すことでプロダクトやチームへの理解を深め、エンジニアの方と技術について語り合うことで知識を得るなど、非常に有意義な時間でした。
また、大規模なプロダクトにおいて、どのような役割の人が関わっているのかを知ることができたのは、大きな収穫でした。
さらに、タップル以外にもCyberAgentグループの方とのランチや1対1で話せる機会を何度か頂き、今後のキャリアの参考になりました。
最後に
今回のCA Tech JOBでは、Jetpack Compose移行などのタスクを通じて、アニメーションや絵文字の処理、アプリ自体の設計といった技術的な側面で多くの学びがありました。例えば、Remote Configを用いた実装など、私個人の開発では経験がなかった、ユーザーへの影響を最小限に抑える仕組みを学ぶことができました。
また、施策への参加を通して、様々な職種が普段から連携して業務を進めていることを知るとともに、コミュニケーションの重要性を改めて認識しました。
JOB期間中のランチでは、アプリ開発にはどのような役割の人が関わり、どのようなことを考えているのかといったビジネスサイドの視点も養うことができました。
トレーナー、メンター、ランチに一緒に行ってくださった方々、タップルの社員の皆様、人事の方々、本当にありがとうございました。