entry-header-eye-catch.html
entry-title-container.html

entry-header-author-info.html
Article by

ピクシブで1からiOSアプリ開発を学んだ学生がサービス開発に挑戦!

現在ピクシブではエンジニアの育成に注力しており、先日ブログでもモバイルアプリエンジニアの育成プロジェクトについてご紹介させていただきました。

そしてこの度、育成プロジェクトに参加し技術を身につけた学生が、遂にピクシブのアルバイトとしてサービス開発に参加する運びとなりました。

本日は育成プロジェクトを主導したメンター2名から、プロジェクトに参加したメンティ2名へのインタビュー形式で、1からサービス開発が出来るようになるまで、どのように技術を獲得していったか、その学習プロセスについて伺いたいと思います。

自己紹介

ああうえ:2017年ピクシブに新卒入社してから、Android、 iOS アプリの開発に携わる。2020年頃からアプリエンジニア育成プロジェクトを計画し、メンターも担当。

makun: 2018 年ピクシブに新卒入社してから、 Android アプリ開発に携わる。開発業務以外にエンジニア新卒採用にも入社時から現在まで携わっている。ああうえに誘われてアプリエンジニア育成プロジェクトに参加し、一緒に内容の検討を行った。

kamecha:ピクシブでアルバイトをしている大学4年生。趣味でVimを触っていたりお絵描きをするのが好き。

Ras:ピクシブでアルバイトをしている大学4年生。趣味でGoのバックエンド開発をしているが、iOS開発にも興味がありプロジェクトに参加することにした。

育成プロジェクトを開始しようと思ったきっかけ

ああうえ:iOSアプリエンジニアの人口が減ることを、数年前から危惧していました。弊社はWebに強いイメージはあるものの、モバイルアプリ開発に関しては常に人数が少なく、社外へのアピールも弱い状態でした。各サービスに数人しか所属しておらず、ほぼ個人開発に近いこともありました。Webの新機能やサービスが増えていく一方で、モバイルアプリは追随できていないというような状況が多くありました。

モバイルアプリエンジニアが増えないなら、自分で増やすしかないと思い、社内Wikiのesaに10行程度のポエムを書きました。そうしたところ、社内メンバーからリアクションをもらったり、他社の育成事例や、Appleが公式で出しているチュートリアルがあることをコメントで教えてもらいました。その時に当時の人事にも「やりましょう!」とコメントをもらったことでプロジェクトがスタートしました。

まずは小規模なプロジェクトメンバーを集めて、構想を固めてチュートリアルの動画や教材を検討しつつ、並行して学生を受け入れながら、内容も詰めていくパワープレイでプロジェクトが進行していきました。

育成プロジェクトに参加しようと思ったきっかけ

kamecha:元々東工大創作サークルtraPに所属しており、ある日ハッカソンに参加したところ、たまたま主催がピクシブでした。ハッカソンの中でアルバイトの案内があり申し込んだところ、選考の途中でアプリエンジニア育成プロジェクトを勧められました。

そもそもエンジニアとしてアルバイトするのが初めてだったこともあり、チャレンジしてみたくなり応募することにしました。

Ras:ピクシブの学生アルバイト募集のエントリー時に、どんな開発に携わりたいかいくつか希望を出させていただいたのですが、そのうちの1つであるiOSアプリ開発の一環として、育成プロジェクトに誘っていただきました。

もともとMacを持っていなかったのですが、会社から貸していただけるという話があり、参加へのハードルが下がったため育成プロジェクトに参加することにしました。

どんな風にカリキュラムを進めましたか?

ああうえ:メンティのお二人には、まずAppleのチュートリアルをやって貰いましたが、どうでしたか?

kamecha :Swiftに慣れるのが大変だったため、色々質問させて貰いながら進めました。

makun:今まで触っていた言語とは違った?

kamecha : かなり独特だと感じました。特定の得意な技術を作るより、広く浅く触るタイプだったため、非同期処理も触ったことがなく、概念を知って驚きました。

Ras :機能が充実していると感じました。普段メインで書いているGoは比較的シンプルな言語なので複雑な処理を書くと冗長になりがちなのですが、Swiftだとエレガントに書けることが多かったです。

kamecha :チュートリアルがSwiftの文法を知っている前提だったので、まだ学んでいないことをやるのは、結構大変でした。

ああうえ:質問も文法のところが多かった気がします。Swiftの色々な記法に混乱していたので、1つ1つ疑問を解消していきました。

※育成プロジェクトの記事でも「学生がハマったポイント」について紹介しているので、参考にしてください inside.pixiv.blog

makun :メンターはメンティから質問されることを想定して、どんな工夫をしましたか?

ああうえ:メンティ側がどこでハマったか分からないので、学習ログを作ってもらい、ハマった部分の詳細文脈を書いてくれたら非同期でコメントを返す形にしていました。

週一で振り返りの時間を取っていたものの、自分にも通常業務があるため、つきっきりで見ることは難しいです。そのため非同期でのコミュニケーションが中心になりました。なおかつ混乱させないように、少し調べてから正確な回答を目指していました。

makun :事前に質問内容をまとめて書いておくのは、メンティ側は難しくなかったですか?

kamecha:ああうえさんから、伝わりやすい質問の仕方を教えて貰いました。

ああうえ:質問の仕方を工夫するのも、うまく仕事を進める方法のひとつですし、自分の思考も整理できるので、とても良いですね。

Ras:学習ログのテンプレートを作成していただいたため、それほどログの書き方で詰まることはありませんでした。チュートリアルを進めていてハマった点を学習ログに残し、ああうえさんに質問するようにしていました。

kamecha :育成プロジェクトを卒業して、現在はpixivコミックチームに配属になりましたが、今でもやったことをログに残すようにしています。

頻繁にアルバイト勤務ができないので、次回のアルバイトで出勤した時に何をすれば良いかまとめておくと、便利だと気付きました。

苦労した点、楽しかった点について教えてください

kamecha:今までモバイルアプリ開発について、ぼんやりとした知識はあったものの、実際にどのような開発工程を踏むのか、コードを書くのかが分からない中で学ぶのは大変でした。その反面分かることが増えていくのは、楽しい点でもあります。

makun:カリキュラムに参加した結果、アプリ開発の全体的なイメージはつくようになりました?

kamecha:アーキテクチャに関する書籍(https://peaks.cc/books/iOS_architecture)や日々の質問、手を動かすことによって確実に知識がつき、イメージが沸くようになりました。

Ras:Swiftを書くのが初めてだったため、とにかく文法に苦労しました。育成プロジェクト期間は主に一人で学習を進めていてモチベーションを保つのが大変でしたが、アプリ開発に100%集中できたので理解がより早く進んで楽しかったです。

ああうえ:メンターから見ても、モチベーションを保つのはとても大変だったと思います。本当は早くOJTでチームに開発に参加してもらう方が良いと思うのですが、そのチームに余裕がないと難しいことがあります。

Ras :自分の場合はプロジェクト期間が約半年と長期だったので、その経験を踏まえて考えてみると、Appleのチュートリアルを終えてある程度iOSアプリ開発に慣れてきたタイミングで、チームの参加とプロジェクト課題を並行して進められると、うまくモチベーションを保てるのかな、と思いました。

元々iOSアプリ開発をやりたかったものの、一度諦めた過去があったため、プロジェクトを経て開発できるようになったことがとにかく嬉しかったです。アルバイトに参加してからは大規模なプロダクトをアーキテクチャやコードの側面からどう扱うか知れたのが良い経験でした。その後、自分で個人アプリを作るきっかけにもなりました。

ああうえ:今新規アプリを作るなら大部分はSwiftUIで書けるのですが、既存のアプリがある企業ではまだ大部分がUIKitが使われていると思いますし、レガシーな技術の知識がないといけない場合もあるので、移り変わる部分も含めて教材には入れるようにしました。

現在アルバイトではどんなことをしていますか

kamecha :現在pixivコミックチームでアルバイトをしていますが、まだ簡単なタスクを切り分けてもらい、それを担当している状態です。

Ras:pixivアプリチームでアルバイトをしています。新規開発よりも運用をメインに業務を行っています。直近では、ルーティング用のライブラリの移行を検討しましたが、なかなか需要を満たすものがなかったため自分で実装しました。

makun:アルバイトに配属されてから、育成カリキュラムとのギャップはありましたか?

kamecha:プロダクト開発に入るのが初めてで、今まで大きなコードを読んだことがなかったため結構大変でした。

Ras :育成プロジェクトに比べて規模が急に大きくなって、構造を把握するのも大変でした。1箇所直しただけだと動かないところもあり初めはなかなか苦戦しました。いくつかタスクを経験するうちに徐々に1つのタスクにかかる時間が短くなっていって、成長を感じることができて今はとても楽しいです。

ああうえ:これからチャレンジしてきたいことはありますか?

kamecha:より知識をつけて、難易度の高いタスクにチャレンジしてみたいです。

Ras:本音を言えば、新規開発をやりたいと思っています。最近のiOS16,17でも新しい機能が出てきているので、個人でも試しながら最新の情報についていきたいです。

ああうえ:実際にやってみることに勝るものはないと思います。二人とも自分から手をあげて、積極的にチャレンジしてみてください!

最後に

ピクシブは今後も、モバイルアプリエンジニアの育成に積極的に取り組んでいきます。

直近で育成プロジェクトに参加がきまった学生が2名いるため、現在は一時的に募集を締め切っていますが、今後改めてエントリーを開始予定ですので、少々お待ちください。

またエンジニアの育成プロジェクトについては、別の職種でも進行しているため、改めて記事を書きたいと思っています。お楽しみに。