はじめに
10月14日〜11月12日の約1ヶ月、株式会社ゆめみのiOSエンジニアインターンに参加してきました!
その期間のうち、なぜか2週間くらいは九州〜関東をヒッチハイクしながら移動していて、今回はその記録も一緒に残しておこうと思います。
インターンは、本当は「iOSの実務に触れてみたいな」と思って申し込んだんですが、ちょうど会社がアクセンチュアに移行する時期かつ、インターン生が触れる案件がないということで、実務には入れませんでした。
基本的に、課題を進めるだけでしたが、「え、これで1日1.5万円もらえるの?」という気持ちでした。
ただ、毎日のコードレビューや、実務のコードを覗いたりしているだけでも、学びは多くて、技術的にも精神的にも「自分まだまだだな」といい意味で刺激を受けました。
ゆめみのiOSエンジニアインターンに参加した理由
私自身、普段からiOSアプリを作っていて、「実務ではどんなアーキテクチャが使われているんだろう?」「プロのSwiftの書き方ってどんな感じなんだろう?」とずっと気になっていました。
そんなときに、大学の先輩が「ゆめみのインターン申し込んだよ」と話していて、実は前からゆめみのことが気になっていたので、そのまま私も応募しました。ゆめみは技術ブログも多いし、“技術力高い会社” という印象を持っていたのも理由のひとつです。
面接とコーディングテスト
ゆめみのインターンは、カジュアル面談と本面談、コーディングテストがありました。
本面談では、
「どんなAI使ってるの?」とか
「Swiftのどこが好き?」とか
「普段どんなアプリ作ってるの?」みたいな話をゆるくできて、普通に楽しかったです。
コーディングテストでは、GitHubのIssue形式の課題が出されて、自分のリポジトリでブランチ切って実装して、PR出して、マージするという流れでした。
テストコードを書いたことがなかったので、テストコードを書く課題だけ避けて、他の課題を提出しました。
後日、メールで合否とともにコードレビューも返ってきました。その時点で、ゆめみのレビュー文化が垣間見えました。
ゆめみインターンで学んだこと
ここでは、インターン期間中に「これ勉強になったな」と感じたことを、ざっと並べていきます。
-
Xcode の “Document Items”
MARK/TODO 以外にもいろいろあるのを初めて知った。 -
モディファイアは簡潔に書く
不要なのを書きがちだったので、推敲するようになった。 -
レビューでよく出る “[nits]” の意味
「細かい指摘ね」っていうやつ。 -
Swift Asset Symbol Extensions を有効化
Image(.dummy)みたいに書けて便利。 -
「Preserve Vector Data」はちゃんとチェック入れる
PDF/SVGが勝手にPNG化されてボケるのを防ぐ。 -
iOS17から GeometryReader なしでも
.containerRelativeFrameでいける
シンプルに書ける。 -
Observable マクロは便利
今後これが標準になりそう。 -
固定値でも画面情報として一元管理する
複数箇所に散らばらせない。 -
“コンパイル前エラーが出る設計” を大事にする
実行時エラーより全然マシ。 -
Error をラップする構造の作り方
エラー内容をまとめて扱える。 -
状態の二重管理は地獄
Single Source of Truth を守る。 -
責務分離は常に意識する
あとから効いてくる。 -
LocalizedError を使うと View 側が楽
.localizedDescriptionで済む。 -
初めてクリーンアーキテクチャをちゃんと使った
これは普通に勉強になった。 -
fullScreenCover の onDisappear は信用ならない
onDismissやtask(id:)の方が安定。 -
KVOを理解
昔の技術だけど、知っておく価値はある。 -
テストダブルには4種類ある
stub, mock, fake, spy。よく理解する必要あり。 -
sleepで待つテストはFlakyのもと
テストは安定性が命。 -
hangは“止まってるのにクラッシュしてない”状態
これ名前ついてたんだなーと思った。 -
@mockable のコメント形式(三本スラッシュ)に気をつける
地味にハマる。
全体的に、「AIに頼りきりはダメだな」と思い直しました。AIは便利なんですけど、最新のSwiftやAppleの設計方針はキャッチアップしきれていないことも多くて、結局、ドキュメントや原則をちゃんと理解してる人が強いなと感じました。
ゆめみで感じたこと
ゆめみのインターンを1ヶ月続けてみて、いろいろ感じたことがあります。
-
実務コードの構成が全然わからない
ファイル数も多いし、レイヤーも分かれていて、「ちゃんとアーキテクチャ勉強しないと無理だな」と思いました。UIKitも普通に使われていて、読めないコードもありました。 -
フルリモートは人と会えなくてけっこう寂しい
移動時間もなく、作業場所を選べるのは楽でしたが、雑談ゼロだと孤独感を感じました。就職して、一生これだったら病むかもしれません。 -
アクセンチュア移行で現場がバタバタしてた
これはタイミング的に仕方ないですが、みんな忙しそうでした。 -
福利厚生が想像以上によかった
インターン生なのにランチ会で5000円まで出て、ピザを頼んで食べることができました。そして、私の推しのやめ太郎さん@Yametaroとも話せてよかったです。もっと質問を用意しておけばよかったと後悔しています。
ゆめみは「技術力高い会社」というイメージ通りではあっったんですが、それ以上に “人が優しい会社” という印象が強かったです。
突然のヒッチハイクを決めた理由
前提として、私は大学の授業が木曜と金曜だけで、月・火・水はオンラインです。
ちょうどそのタイミングで、土日に福岡でハッカソンがありました。
「月火水は休み。で、木金を休めば…?あれ、これ 2 週間どこでも行けるじゃん。」
と気づいてしまい、そこから一気にスイッチが入りました。
最近いろいろ悩むことも多くて、自然に触れながらゆっくり考えたいなと思っていたので、移動はヒッチハイクでいくか、と軽い気持ちで決めました。
軽い気持ちから始めたわりに、めちゃくちゃ濃い旅になりました。
ヒッチハイクの流れ
ハッカソンが終わった日曜の夜、20時ごろに小倉駅からヒッチハイクをスタートしました。
最初は2時間くらい捕まらず、普通に無視され続けてメンタル削られましたが、なんとか5台の車に乗せてもらって、次の日の朝には京都に着きました。
インターンもあったので、京都では3日ほど滞在。そのあと、夜にふと「東京行くか」と思い立って移動を再開しました。
次の日の昼には東京に着いて、大学の課題やインターンもやりたかったので、そこで5日ほど滞在。
横浜で財布を落としたことに気づき、2日後に発見されましたが、現金だけ抜かれて戻ってきました。(22000円の損失😢)
旅の途中、「この素晴らしい世界に祝福を!」の作者さんに乗せてもらうという、人生で二度と起きなさそうなイベントも発生しました。詳しくは書けませんが、とにかくいろいろすごかったです。サインももらえました😆
全体的に、計画もなく動きながら、行きたいところにそのまま向かっていく感じの旅でした。
ヒッチハイク中に感じたこと
ヒッチハイクをやってみて思ったのは、想像していたよりずっと人の優しさに助けられて旅が進んでいくということでした。
最初の2時間は全然止まらなくて、声をかけても無視されるし、正直けっこうきつかったです。
でも最初に乗せてくれたのは、同い年で子どもがいる20歳の方で、めちゃくちゃ優しくて、それだけで旅のスタートが一気に明るくなりました。
そのあとも、外国人3人組の車に乗って、ビビってたけど、普通にめちゃ優しかったり、逆に200km超えのスピードで飛ばす人もいたりして、ヒッチハイクって、予測不能の連続だなと感じました。
不思議と孤独はあまり感じませんでした。むしろ、普段関わらないタイプの人たちと話すのが面白くて、「自分の世界って狭いな」と思わされることが多かったです。
あと、横浜で財布をなくした時は普通に終わったと思いました。
2日後に警察署で見つかったときには、現金が全部抜かれていて笑うしかなかったです。「なくさないように財布とスマホだけ持って歩く」という対策をしていたのに、その財布をなくすというオチまでつきました。
今回、スマホにはあまり触らないようにしてました。景色を見たかったし、ヒッチハイク中はボードを掲げてるからスマホに触れないし、そのおかげで時間が濃く感じました。
今回は本来の目的を忘れて、都会を回る旅になってしまったので、次はサバイバル寄りの旅もしてみたいです。
今回の旅は、結果として「視野を広げる」という意味が大きかった気がします。
この1ヶ月で思ったこと(まとめ)
ゆめみのインターンとヒッチハイク旅を合わせると、本当に濃い1ヶ月でした。
インターンでは、実務コードの構成の複雑さに圧倒されたり、
自分の書き方の癖を見直したり、AIだけでは拾いきれない本質的な理解の大事さに気付かされたりしました。「エンジニアとして、自分はまだまだだな」と素直に思いました。
一方で、ヒッチハイク旅では、予測不能な出来事がひたすら続きました。
スマホをほとんど触らないだけで、こんなに毎日が濃いんだな、という発見もありました。
技術的にも、人としても、視野がかなり広がった感覚があります。この1ヶ月を一言で言うなら、「再出発」でした。
またいつか、もっと何も決めずに旅に出たいし、エンジニアとしても、もっと上を目指したいと思います。
そして、激つよエンジニアとして帰ってきます!!!
