Slide 1

Slide 1 text

iOS未経験エンジニアがSwift Concurrencyの検証を行い、 サービスリリースまで行った話 『ホットペッパービューティー』の事例 #iOS開発 #未経験 #SwiftConcurrency プロダクトディベロップメント室 販促領域エンジニアリン グ2ユニット(飲食・ビューティー) ビューティー領域エ ンジニアリング部 ビューティープロダクト開発2グループ 関田 陸 RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night-

Slide 2

Slide 2 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- #iOS開発、#未経験、#SwiftConcurrency iOS未経験エンジニアが Swift Concurrencyの検証を行い、 サービスリリースまで行った話 『ホットペッパービューティー』の事例

Slide 3

Slide 3 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- 関田 陸 ゴルフ⛳・MLB観戦⚾・旅行✈ 経歴 / Career 2023年4月に新卒として入社し、3ヶ月 間の研修を経てホットペッパービュー ティーのiOSチームに配属 趣味 / Hobbies プロダクトディベロップメント室 販促領域エンジ ニアリング2ユニット(飲食・ビューティー) ビューティー領域エンジニアリング部 ビュー ティープロダクト開発2グループ

Slide 4

Slide 4 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- Agenda 1. プロダクトついて 2. Swift Concurrency導入の背景 3. Swift Concurrency導入検証と振り返り 4. まとめ

Slide 5

Slide 5 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- Agenda 1. プロダクトついて 2. Swift Concurrency導入の背景 3. Swift Concurrency導入検証と振り返り 4. まとめ

Slide 6

Slide 6 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- - 国内最大級のヘアサロン・リラク&ビューティーサロンの検索・予約サイト  ホットペッパービューティー

Slide 7

Slide 7 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- iOSプロダクトの規模感 画面数 API数 コード行数 循環複雑度 認知複雑度 150本以上 20万行以上 高い(1.9万以上) 高い(1.1万以上) ※複雑度は静的分析コード解析ツールにてプロダクト全体の値を参照 100画面以上 - 規模が大きく、複雑度が高い → 「コーディングコスト」「コード認知コスト」が高い🔥

Slide 8

Slide 8 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- Agenda 1. プロダクトついて 2. Swift Concurrency導入の背景 3. Swift Concurrency導入検証と振り返り 4. まとめ

Slide 9

Slide 9 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- プロダクトの課題解決に貢献できていなかった・・・ - 未経験だったので、とにかく目の前の案件をこなすことで必死だったが、  中長期改善プロジェクトに携わることでプロダクトの課題を知った - とりあえず、小さい分野でいいのでチームで自分が一番詳しいと言える分野を  作り、プロダクト課題への解像度を上げようと思った → まずは、Swift言語の最新機能をキャッチアップしていくことに!

Slide 10

Slide 10 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- やったこと - Swift5.5〜5.9までの機能を洗い出して、  プロダクトに活かせるものはないか検討する - その中で、プロダクトの課題を解決できるものを採用する - コーディングコストの削減 - コード可読性の向上

Slide 11

Slide 11 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- 目的に照らし合わせながら取捨選択 コーディングコスト コード認知コスト メンテナンス性 コード減少量 Swift Concurrency 🔥

Slide 12

Slide 12 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- Swift Concurrencyとは? - Swift5.5から導入された新しい並行処理モデル - より安全で簡単な非同期処理のコードを書くことができる - async / await / actor など

Slide 13

Slide 13 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- なぜSwift Concurrencyが良いのか クロージャを用いた非同期処理 - クロージャを使用した非同期処理により、  コールバック地獄になりやすい - ネストが深く、可読性が低い - クロージャを呼び忘れても、コンパイルが  通ってしまう

Slide 14

Slide 14 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- なぜSwift Concurrencyが良いのか Swift Concurrencyを用いた非同期処理 - クロージャを使わないのでネストが減り、  可読性が高い - Actorを使うことでデータ競合を防ぐこと  ができる

Slide 15

Slide 15 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- Agenda 1. プロダクトついて 2. Swift Concurrency導入の背景 3. Swift Concurrency導入検証と振り返り 4. まとめ

Slide 16

Slide 16 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- やることの整理 - 2画面で検証する - どの画面で検証するかを検討する - 実装・リリースする - 目的が達成できているかを確認する

Slide 17

Slide 17 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- 画面選定 - (MUST)検証フェーズなので - ①大きな障害が起こることを避けたい - ②他の案件への影響を避けたい - ③修正の変更範囲を小さくしたい - (WANT)改修頻度が高い

Slide 18

Slide 18 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- 実装 Before After ネストが減り、 直感的にコードが 読みやすくなった

Slide 19

Slide 19 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- 評価 ※検証した画面の1ファイルあたりの比較 循環複雑度 50%Down↓ 認知複雑度 75%Down↓ プロダクト課題に貢献できた

Slide 20

Slide 20 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- Agenda 1. プロダクトついて 2. Swift Concurrency導入の背景 3. Swift Concurrency導入検証と振り返り 4. まとめ

Slide 21

Slide 21 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- まとめ - Swift Concurrencyを導入することで複雑度を下げることができた - また、個人としても小さい分野でもチームで1番詳しい領域を作ることで、  プロダクトへの貢献もできるし、自信にも繋がった - 今後は他画面にも順次展開していきたい

Slide 22

Slide 22 text

RECRUIT TECH CONFERENCE 2025 プレイベント -LT Night- メッセージ 未経験エンジニアは小さい分野でもいいので、 自分が1番詳しいと言えるような専門知識を身につけよう!