CA tech dojo に参加して視野が100倍広がった話
はじめに
この記事は、株式会社サイバーエージェントの育成型インターンシップ「CA Tech Dojo - 1week Android向け育成型インターンシップ」への参加レポートです。
今後CA Tech Dojoをはじめ、インターンへの挑戦を考えている学生の方々にとって、少しでも役立つ情報になれば幸いです!
CA Tech Dojo って何?
「CA Tech Dojo」は、サイバーエージェントが開催する育成型インターンシップです。
今回の「Android編」は、プログラミング経験のある学生を対象に、約1週間でAndroidアプリ開発の基礎スキルを身につける内容でした。
このインターンシップ全体のゴールは 「1人でアプリを開発し、リリースできるようになること」 に設定されていました。
このインターンでの自身の目標
私は今回の参加にあたり、以下の2つを目標に掲げました。
- iOS開発と比較しながら、Android開発のベストプラクティスを理解する
- 周りを巻き込んだインターンシップにして、情報交換をたくさんする
参加前の現状
これまでの開発経験は個人開発が中心で、「作りたいものに合わせてその都度知識を集めて開発する」というスタイルがほとんどでした。
また、メインで開発していたのはiOSのネイティブアプリです。以前、以下のイベントに参加した経験があり、ネイティブ開発自体の基礎知識はある程度持っている状態での参加でした。
今回のインターンシップでの課題
実践的なスキルを身につけるため、本インターンでは以下の要件が設定されていました。これらは単なる機能要件ではなく、現在のAndroid開発におけるモダンなアプローチを学ぶためのものです。
1. 開発環境・技術スタック
- 環境: 安定版 Android Studio を使用(目的があれば Preview 版も可)。
- 言語/UI: Kotlin 必須(Compose Multiplatform 可)。Primary/Surface 色などを意識した Theme 適用が必須。
2. 必須機能(オフラインファースト設計)
- API 連携: 外部 Web API からコンテンツ一覧を取得。
-
UI 実装:
LazyColumn等でリスト表示。 - ローカル保存 (Room): 取得データを保存し、通信量削減と表示速度向上のため、再起動時も即座に表示。
- オフライン対応: オフライン時はキャッシュを表示し、UI 上(Snackbar 等)で状態を明示。オンライン復帰時に再同期。
3. 任意要件(チャレンジング機能)
- Paging3、検索、フィルタ、ソート機能。
- Rate limit やエラーコード(401/403等)のハンドリング。
- Markdown 表示、共有機能、WorkManager でのバックグラウンド更新。
- UseCase / Repository 等のテストコード実装。
1週間の振り返り!!
1日目:月曜日(3月2日)
〜ワクワクの初日と開発スタート!〜
初日、アベマタワーに入ろうとしたときに声をかけた子とたまたま同じチームになり、そこから1週間一緒に開発を行いました!(ちなみにその子は最優秀賞を取っていました!すごすぎます!)
初日はチーム内で様々な情報交換を行いました。自分にとっては、他の大学の学生と情報交換すること自体が初めての経験だったので、とても新鮮で楽しくて、つい話しすぎちゃったかなと思います。4人のチームでしたが、みんなそれぞれ違うバックグラウンドを持っていてすごくワクワクしました!
お題が発表され、いよいよ開発がスタート。初日の開発では以下のことを進めました。
- 2月にあった事前キャッチアップで掲げた目標の具体化
- Roomを使用したデータベース設計
- アプリの要件定義と、機能要件をどう満たすかのAIを使った壁打ちですり合わせ
2日目:火曜日(3月3日)
2日目ということもあり、だいぶチームの人たちとも馴染んできました。この日からランチをチーム外の方たちやメンターさんと一緒に食べる機会をいただき、実際に働いている社員さんとも情報交換ができました!具体的にどんな福利厚生を使っているのかや、Dojo生OBとしての当時の雰囲気など、面白い話をたくさん聞かせてもらいました。
開発に関して、この日は以下の実装を進めました。
- 使用するライブラリの環境構築
- TMDBのAPI呼び出しと、データ取得の実装
- Hiltの導入と実際の実装
特にライブラリの環境構築に関しては、最初AIを使用せずに自力で進めた結果、バージョンが競合してしまい大きなタイムロスに……。最終的にメンターさんに手伝っていただき、なんとか完了させることができました。本当に感謝しかないです!
3日目:水曜日(3月4日)
3日目、自分の進捗が他のチームメンバーと全然違うことに気付き、強い焦りを感じていました。
ちょうどこの日は人事の方との面談があり、自分が焦っていることを正直に打ち明けました。
その際、「実は周りのみんなも、他の人のスピードを見て焦っているんだよ。だから焦る必要はないよ」と温かい言葉をかけていただき、ふっと冷静になることができました。この一言のおかげで、「焦るのではなく、開発スタイルを変えて周りからどんどん吸収しよう!」と前向きに気持ちを切り替えることができました。本当に感謝しかありません!
また、メンターさんに進捗について相談したところ、「もう少しAIを上手く使うといいよ」というアドバイスをいただきました。実はこの日まで、Geminiと壁打ちしながら極力自力で実装を進めていたのですが、AI IDEを取り入れることをお勧めしてもらい、遅れながらではありますが、「antigravity(アンチグラビティ)」に初めて触れてみることに。これが本当にすごくて、感動しました!これを機に、他のチームメンバーに使い方を簡単に聞き、真似をしながら開発を進めるスタイルへと大きく変更しました。
さらにこの日はUI作成にも着手しました。他のDojo生がおすすめしていた「Stich」というツールでデザインの壁打ちを行いながらUIを作成し、Figmaにエクスポート。それをantigravityで読み込んでUIを構築しました。StichからFigmaへエクスポートできる機能がすごく便利だと実感しました!
お昼にはオムライスをいただきつつ、メンターさんや他のDojo生と「インターンシップでのAIの使い方」について情報交換ができ、技術的にも精神的にもとても刺激になる1日でした。
下の画像はお昼に食べたオムライスです!めっちゃ美味しかったです!

4日目:木曜日(3月5日)
4日目は、iOS開発でもやったことがなかった「通知機能(WorkManagerを使用)」の実装と、他アプリへの遷移に挑戦しました。
通知機能については、Geminiを使って「APIで取得した映画をつい見たくなるような通知文」を作成してもらい、午前8時と18時に通知が飛ぶように実装しました。最初はアプリ起動時に通知アラームを設定する実装にしていましたが、メンターさんと相談し、「バックグラウンドでランダムに一瞬アプリを動かしてアラームを設定する」実装へと変更しました。これにより、その日にアプリを開かなくても通知が来るようになります。また、個人的に「映画のレコメンドを通知で送り、そこからその映画の詳細画面に直接遷移させる」部分の実装が少し難しかったです。
また、この日は5日間を通して一番チームのみんなと深く会話ができた日でもありました。これまでどんなことをしてきたのか、そして「このインターンシップ後にどんなことをしていきたいか」を解像度高く共有することができ、開発に対するモチベーションが爆発しました!!
5日目:金曜日(3月6日)
最終日は成果発表の日!基本的にもうコードの変更は行わず、お弁当を食べながら資料作成と実装内容の理解に注力しました。
自分の発表順は5番目。なんと、以前参加したiOSブートキャンプでお世話になったメンターさんが見に来てくれて、本当に嬉しかったです!
講評でもメンターさんに実装面を褒めていただき、テンションが上がりました。
インターンシップ終了後には、チームのメンターさんと10分ほどの1on1面談がありました。そこで「周りからしっかり吸収し、自分のものにしようとしていた気合」を褒めていただきました。自分自身、周りと比較して技術力やAIの使い方が劣っていると感じており、だからこそ「本気で周りから吸収しよう」と必死に食らいついていたので、その姿勢をしっかり見ていてくれたことが本当に嬉しくて、少し泣きそうになりました(笑)。
その後の懇親会では、インターン期間中にはあまり話せなかった方たちとも交流でき、最後まで刺激をもらえました。懇親会終了後は、一部のDojo生とカラオケへ!最後の打ち上げとして、本当に最高に楽しい時間を過ごせました!
1週間の振り返り:得られた成果と次なる課題
今回の5日間のインターンを通して、技術面でもマインド面でも多くの気づきがありました。良かった点と、今後さらに改善していきたい点をまとめます。
良かったこと(成果と成長)
-
周囲を巻き込んだ開発ができた
自分一人で抱え込まず、常に周りと情報交換を行いながら、チーム全体を巻き込んで開発を進められたのは大きな自信になりました。 -
Androidの基本習得と、未経験機能への挑戦
Androidアプリの基本的な開発手法を学べただけでなく、これまでのiOS開発でも実装したことがなかった「通知機能」や「他アプリへの遷移」といった少しハードルが高い実装までやり切ることができました。 -
iOS開発の経験との比較・体系化
ただ新しいことを学ぶだけでなく、「iOSの時はこうだったな」と比較しながら実装を進められたことで、より深く構造を理解することができました。
改善するべきだと感じたこと(Next Action)
1. 質問の質と「結論ベース」のコミュニケーション
前回の「iOSブートキャンプ」参加時から課題としていた質問の仕方についてです。前回よりも自発的に質問に行けるようになった点は自分でも成長を感じていますが、質に関してはまだまだ改善の余地があると感じました。現場のエンジニアとのコミュニケーションでは、より「簡潔な結論ベース」で質問を構成すべきだったと反省しています。
2. モダンな開発フローへのキャッチアップ
今回、AI駆動開発やSDD(※)といった、今まで聞いたこともなかった開発フローを目の当たりにしました。これに関しては完全に自分の勉強不足だったと痛感しています。
しかし、今の段階で自分の開発フローを根本から見直す最高の機会を得られたのは本当にラッキーでした!これらをどう自分の開発に落とし込んでいくかについては、これから試行錯誤を重ねて、また別の記事でしっかりとアウトプットしたいと思います。
3. Git / GitHubを用いたチーム開発プラクティスの習得
今回のインターンでは、GitおよびGitHubでの実務的な操作に慣れておらず、開発スピードを落としてしまう場面が多々ありました。
今後はGitHubを単なる「コードの保存庫」として扱うのではなく、モダンなチーム開発のベストプラクティスとして、以下のフローを個人開発にも導入していく予定です。
- GitHub Issuesでのタスク管理: 開発の要件と実装のプルリクエストを紐付け、「なぜこの変更が必要だったか」というコンテキストを未来の自分やチームメンバーに明示的に残すため。
- GitHub Actionsを用いたCI/CD(自動化): 静的解析(Lint)や自動テストをプッシュのたびに実行し、バグの早期発見とコード品質の均一化を自動的に担保するため。
- AIを活用したPR(プルリクエスト)運用: GitHub Copilotなどを用いてコードレビューを効率化し、「タイポや基本文法のミス」ではなく「アーキテクチャの妥当性」といったより高度な議論に集中できる環境を作るため。
こうした実践的なGitHub活用フローについても、自分の手で試行錯誤したプロセスを別の記事でアウトプットしようと思います!
最後に:Android開発の枠を超えた、かけがえのない財産(総括・感想)
インターンシップを通して得られた「3つの大きな収穫」
今回のインターンシップに参加して得られたのは、単なるAndroidの基本的な開発スキルよりも、はるかに濃くて熱いものでした。具体的には以下の3点です。
-
切磋琢磨できるモバイルエンジニアの仲間たち
一部のDojo生とは「try! Swift」でまた会う約束をしましたし、他のDojo生たちとも今後の別のインターンシップや「DroidKaigi」などで再会できるのが今から本当に楽しみです! -
AI活用の圧倒的な視野の広がり
周りのみんなが「どんな風にAIを工夫して使っているのか」を現場で目の当たりにでき、自分自身がこれからどうAIを駆使して開発を進めていくべきか、視野が大きく広がりました。 -
サイバーエージェントで働くリアルな解像度の向上
普段の学生生活では関わることのできないサイバーエージェントの社員さんやメンターさんたちとの交流を通して、Android開発の本当の面白さを知り、社員さんたちの熱量や雰囲気に対する解像度がグッと上がりました!
感想:視野が「100倍」広がった最高の環境
総括でも書いた通り、今回のインターンシップは単なるAndroid開発の学習にとどまらない、本当に貴重な経験の連続でした。ここまで素晴らしい体験ができたのは、全力でサポート・運営してくださった人事の方々、メンターさん、社員の皆さん、そして何も知らない自分に色々なことを教えてくれたDojo生のみなさんのおかげです。本当に感謝しかありません。
自分自身は普段iOS開発をメインにしていますが、周りのDojo生にはFlutterやWebはもちろん、AWSやラズパイ(Raspberry Pi)をメインで触っている方など、モバイル開発以外の領域でも凄腕の人がたくさんいました。盛るのではなく、マジで視野が100倍広がったと感じています!
だからこそ、今後モバイル開発に少しでも興味がある方や、「初めてインターンシップに参加してみようかな」と迷っている方には、このインターンシップへの参加を強くおすすめします!
最後になりますが、共に切磋琢磨したDojo生の皆さん、そして手厚くサポートしてくださったメンターや人事の皆様。とても濃密な5日間を、本当にありがとうございました!皆様のおかげで、最高に学びの多いインターンシップとなりました。
ここで得た経験への感謝を胸に、今後はさらに積極的にアウトプットを重ね、さらなる成長を目指して邁進していきます!
