Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

iOSDC Japan 2023に参加しました


こんにちは、クライアントグループの樋口です。

8/31~9/2に開催されたiOSDC Japan 2023へ参加した件をブログにします。

iosdc.jp

はじめに

弊社スタディプラス株式会社はシルバースポンサーとして、ノベルティボックスにスタディプラス付箋セットを提供させていただきました。もし、機会がありましたら活用してもらえればと思います。(切実)

tech.studyplus.co.jp

感想

今回は弊社クライアントグループのエンジニアが勉強会・カンファレンス参加補助で業務参加しました。 クライアントグループではiOSとAndroidのお互いの開発をできるようにするという取り組んでおり、Androidエンジニアでも興味があればiOSDC Japanへ自由に参加しています。

現在はFlutterを使った新機能の開発を行なっております。全エンジニアがFlutterの開発も行えるような体制を目指して、各自の新しい開発スキルの習得、組織としては将来的にはエンジニアリソースの効率化に取り組んでいます。 私たちのグループに興味がありましたら以下をお読みいただければ幸いです。

それでは各メンバーの感想です。

樋口

自分は、初めて技術カンファレンスに参加いたしました!day0はオンラインで参加し、day1とday2は現地にてオフライン参加いたしました!初めての参加ということもあり、緊張もしていましたが、とても楽しめました!

技術系のセッションについては、難しめの技術でもスピーカーの方々がわかりやすく説明してくれたため、置いてけぼりになることもほぼなく、楽しみながら聴くことができました。オフライン参加の場合は、現地での盛り上がりもあったりなどであっという楽しく間に終わってしまったなという感想です。

懇親会もまだ働いてない方や、大手で勤務されている方、Flutterを触っている方などいろんな方とお話しする機会がありました。技術系のお話やシンプルな雑談などで交友関係も広げることができてとても楽しかったです。

以下は特に印象に残ったセッションです。

iOSは自動作曲の夢を見るか?~オンデバイス音楽生成の可能性

fortee.jp

こちらは、iOSで深層学習を用いて音楽の自動生成を試みるというものです。結論としては、クラシックなどの音楽は人間の手直しがあればある程度形にはなるが、J-POPのようは大衆に受けるような音楽の生成は難しいというものでした。

スピーカーさんが音楽理論やAIの様な専門的な話をわかりやすく説明してくれたため、事前知識があまりない状態でも楽しんでセッションを聞くことができました!

スタートアップ企業のフェーズ転換期を乗り越えるためのリアーキテクト戦略 -個からチームへ- by horitamon

fortee.jp

こちらは、Voicyさんのセッションでスタートアップ企業が事業成長のフェーズ変化で直面する課題と、それ乗り越えるための戦略をお話ししてくださいました。 機能開発をしながら、小さな不具合やコードの品質を担保することは難しいみたいでした。 そこで品質向上改善チームという専門のチームを立ち上げたというのが特に印象に残りました! 会社の規模を拡大していく上でぶつかる壁のような話は自分が経験したことないため、とても興味深く印象に残ったセッションでした!

後藤

今回初めてday0 ~ day2までオフラインで参加してみましたが、とても楽しく勉強になった3日間でした! オフライン参加はセッションだけではなく各スポンサー企業のブースを回って取り組みを聞いたり、企画に参加するのがお祭りみたいで、そこが個人的に楽しかったです。

また、自身は入社してFlutterを触り始めてからiOS開発に触れることがめっきり減ってしまっていたのでフレームワークの進化に対する驚きや発見がたくさんあったこともよかったです。

最終日の懇親会では、個人開発でリリースしているアプリを見せてもらってそれについて話したり、会社でどういった働き方をしているかなども話せてとてもいい刺激になりました。

以下特に印象に残ったセッションです。

SwiftUIの進化についていくためにやったこと

fortee.jp

SwiftUIが登場してから早い段階で開発に取り入れており、フレームワークの変化にどのように追従していくのかなどが語られていました。 現在弊社でも、まだそんなに歴史の古くないFlutterを採用しているということもあり、割と似たような境遇になるのかなと思いながら聞いていました。 バージョンアップ周りはissueを立てて対応したり、品質改善のための時間をメインタスクとは別で管理するといった取り組みが勉強になりました。

複雑さに立ち向かうためのコードリーディング入門

fortee.jp

今年から社会人になり、そこそこ規模の大きいアプリ開発に関わるようになって半年が経ちました。ちょうどコードリーディングの難しさに悩まされていたので、なぜ複雑に感じるのかを認知プロセスの観点から解明していくのはとても新鮮で勉強になりました。 とくにワーキングメモリに関しては、振り返ると結構余計な認知負荷がかかっていたなと思い、これから意識して対策していきたいところです。

大石

オフラインで1日目と3日目のみ参加しました。いくつかセッションにも参加したのですが、今回はスポンサーブースを回ったりブースや懇親会で他の参加者と話したりすることが多かったです。 スポンサーブースでは各社、様々な催し物を用意されており楽しむことができ、スポンサーの各社の準備がとてもすごいと思いました。 また、ブースにいるエンジニアの方と使用している技術や現在の開発組織の体制や課題など深いお話ができたので、とても有意義な時間でした。 懇親会でもこれまで話したことがなかった方ともモバイルアプリの話題で楽しい会話ができました。お会いできた方々には感謝いたします。 久しぶりにオフラインのイベントに参加しましたが、数年振りに会った人とも多く話せましたし、新しい出会いもありました。とても楽しいイベントでしたので、次回も参加したいと思います。

今回、オフラインで参加して印象に残ったことを紹介します。

ネームプレート

直前でチケットを購入したため、ネームプレートの台紙にマジックで名前などを書く必要がありました。一定期間に購入するとSNSのアイコンや名前が事前に印刷されたものを受け取ることができます。参加者同士のコミュニケーションで名前は知らないけどアイコンは知っているという光景を眺めながら、自分も印刷されていたほうが良かったなと思いました。直前の購入だと写真のようになりますので、オフラインで参加するなら早めにチケットを購入することをお勧めします。

印象に残った神ノベルティ

pixiv(ピクシブ)さんのブースでもらった首からかけるドリンクホルダーが会場でとても役に立つノベルティで良かったです。どのようなものかは写真をご覧の通りなのですが、懇親会で食べ物を取る際や、食べる際など両手を使う場面で持っていたドリンクを入れることができました。会場でもらってそのまま役に立つまさに神ノベルティだと思いました。pixivさんありがとうございます🙏

ネームプレートとドリンクホルダーの写真

明渡

オンラインで、2年ぶりに参加させていただきました。 昨年は出産予定間近だった都合で、スケジュールが8月から9月へ変更になった辺りでやむなく参加を諦めました。

今年もオフラインでの参加は厳しかったので、オフライン会場にも力を入れつつオンライン参加という手段を残していただけたことに感謝しかありません!

最近メインの業務でFlutterを書いていることが多く、ネイティブのiOSについて追いきれていない実感があり、この機会を存分に活用させていただきました。

貴重な時間を割いて準備をしてくださった運営や発表者の皆様、本当にありがとうございました!

以降、自分の印象に残ったセッションについて記載します。

StoreKit2を使った課金システムのフルリニューアル

fortee.jp

弊社では移行予定が今のところ未定で、気になっていたものの追いきれていなかったStoreKit2の知見がギュッと詰まったありがたいセッションでした。

移行する際にはこちらのセッションで話された内容をもとに、サーバー間との連携周りも含めて発生しうるトラブルへうまく対処しつつ進められたらいいなと思いました。

特に、Firebase RemoteConfigによる制御でStoreKit1とStoreKit2の切り替えができるようにしておいたという話はとても参考になりました。

弊社でもRemoteConfigは利用しているものの、実装を丸ごと切り替えるのには利用したことがなかったので、今後リスクのある実装に取りうる手段として頭に入れておきます。

CoreHaptics入門

fortee.jp

「端末をアプリ側で振動させよう!」と思い至ったことがなかったので、とても新鮮な内容でした。

HIGに記載されているHapticsの基礎や具体的なカスタマイズの方法、社内でデザイナーさんに検討してもらうために専用のアプリを配信した話などが印象に残っています。 実践に即した内容で取り入れた際のイメージが沸く素晴らしいセッションでした。

弊社のサービスでも取り入れるとユーザー体験の向上が見込めるかもしれない要素に心当たりが浮かんで、さっそく社内の企画担当に相談しておきました。 せっかくなので実際に取り入れることになれば嬉しいなと考えています。

隅山

day0とday1をオンライン参加しました。day2は私用のため不参加。 今年はオフライン開催に力を入れている感じがあったのでオフライン参加しようかギリギリまで悩みましたが、day2が参加できないためオンライン参加にしました。

元々AndroidエンジニアでiOSのことはそこまで勉強してこなかったのですが、最近はFlutter開発をやっておりiOSの知識も必要となってきたので、例年以上に情報のキャッチアップに力を入れました。 iOSのモーダルの話やプライバシーの話などiOS特有の情報が非常に詳しく説明されていて非常に勉強になりました。

Android兼Flutterエンジニアの身としてはiOS特有というよりアプリ開発全般の話の方が印象に残ったので、下記に自分が印象に残ったセッションを記載します。

6年間運用したiOSアプリのリアーキテクトについて具体的に解説

fortee.jp

日々の開発でコードの複雑性が増した際、どのようにリアーキテクトを行ったかという内容でした。

会社のアプリだと複数人の開発者がいて、更に開発者も交代したりなど、開発を進めるうちにコードが複雑になることは多々あるので定期的にリアーキテクトが必要となります。 しかし、現実的には新機能開発もしなければいけないので、他の会社ではリアーキテクトをどのように行っているか気になっていました。

このセッションでは分割リアーキテクトといってモジュール分割し、モジュール単位での改善で作業スコープを小さくしていました。 大きな構成のリアーキテクトは時間がかかるが、小さな構成のリアーキテクトで時間をあまりかけず新機能開発の間に作業できるような工夫が説明されていました。 弊社でもモジュール分割しており他の作業とのコンフリクトが起きにくいなどメリットを多く感じられているので確かに大事と再確認できました。

なぜ、弊社はFlutterを捨ててネイティブ化(Swift / Kotlin)にコミットしたのか

fortee.jp

最初はFlutterを採用していたが後にFlutterからネイティブに切り替えた理由についてなので非常に興味深い内容でした。

弊社ではFlutter開発が進んでおりメリットを大きく感じることができているが、Flutter開発のデメリットについては考えたことがないためこのセッションを聴講しました。 セッションの始めの方はFlutterのメリットも説明されていて、否定的な内容ではないのでとりあえず安心したのを覚えています。

このセッションで説明されていたFlutter開発のデメリットとして1年前当時はFlutterエンジニアが全然いなかったこと、Bluetoothを利用した開発はネイティブ実装が必要なことが発表されていました。 確かに弊社でも今現在Flutterエンジニアが不足しているので、1年前は採用が非常に大変だったんだろうなと思いました。 Bluetoothなどネイティブ実装が必須な機能の実装経験はなかったのでつまづかなかったのですが、アプリの種類によってはFlutterではなくネイティブ開発にした方がよさそうでした。

iOSDCチャレンジについて

今年のiOSDCチャレンジは、チャレンジトークンを入力するとポイントを獲得できます。その獲得したポイントの総額に応じて景品をかけた抽選ができるというものでした。

弊社もシルバースポンサーとして、トークンを2つ出させていただきました!

  • #学ぶ喜びを全てのひとへ(パンフレットに記載)
  • #口コミで累計800万人ユーザー(tech-blogに記載)

ご入力いただいた方々ありがとうございます!

個人的にも参加したのですが、Tシャツとお菓子をもらいました!体感的に当たりの出る確率も高く、セッションの合間で楽しみながら参加できるイベントでした!とても楽しませてもらいました!

いかがでしたか?

iOSDC Japan 2023の感想のまとめでした。 運営の皆さん、登壇された皆さん、参加された皆さん、お疲れ様でした!