Slide 1

Slide 1 text

©MIXI ©MIXI 24新卒技術研修 iOS 2024/04/23 Vantageスタジオ みてねプロダクト開発部 阿部 未樹也 / 飯塚 拓也

Slide 2

Slide 2 text

2 ©MIXI 講師紹介 ● みてねプロダクト開発部 > プロダクト開発Mグループ ● 2023年6⽉⼊社 ● 業務: Ruby on Rails, iOS, Android など ● 初めて触ったPCは花柄のiMac (Early 2001) 阿部 未樹也(アベ ミキヤ) @struuuuggle 飯塚 拓也(イイツカ タクヤ) @jssez28 ● みてねプロダクト開発部 > プロダクト開発Dグループ ● 2019年新卒⼊社 ● 業務: iOS, Android など ● 最近ゴルフ始めました

Slide 3

Slide 3 text

3 ©MIXI この研修のゴール iOS以外のクライアント開発に関わる⽅ → iOSの提供するフレームワークやアプリの設計を理解し、⾃分の担当するプラットフォームの開発に還元で きる知識を獲得する クライアントに提供するAPIを開発する⽅ → iOSアプリのAPI通信や状態管理について理解し、より良いクライアントとの連携について考えられる知識を 獲得する ※iOSアプリ開発を今後すぐに専⾨とする予定がない⽅でも、この講義を通じて基本的な知識を得ることができます

Slide 4

Slide 4 text

4 ©MIXI コンテンツ Swiftの基本 SwiftUIの基本 WebAPIとの通信 設計とテスト

Slide 5

Slide 5 text

5 ©MIXI コンテンツ Swiftの基本 SwiftUIの基本 WebAPIとの通信 設計とテスト Swiftの基本的な⽂法をおさらいします キーワード: 変数と定数、Optional、関数クロー ジャ、enum、⽂と式、構造体とクラ ス、ARC、Protocols、Generics

Slide 6

Slide 6 text

6 ©MIXI コンテンツ Swiftの基本 SwiftUIの基本 WebAPIとの通信 設計とテスト SwiftUIのプロジェクトを作成し、基本 的なレイアウト実装とそれに必要なコ ンポーネントを学びます。 キーワード: HStack, VStack, Image, Text, View Modifiers, List, NavigationStack, NavigationLink, @State, onAppear(perform:), Preview

Slide 7

Slide 7 text

7 ©MIXI コンテンツ Swiftの基本 SwiftUIの基本 WebAPIとの通信 設計とテスト Concurrencyという、⾔語レベルで提 供されている⾮同期処理や並⾏処理を ⾏う機能を⽤いて通信処理を実装しま す。 キーワード: async/await, Task, task(priority:_:), @Observable, URLSession, Decodable, JSONDecoder, 状態管理, エラーハンドリング

Slide 8

Slide 8 text

8 ©MIXI コンテンツ Swiftの基本 SwiftUIの基本 WebAPIとの通信 設計とテスト 肥⼤化したViewの処理を責務毎に分割 していき、テストを書いていきます。 キーワード: Single Source of Truth, XCTest, XCTAssertEqual, Preview(再), Dependency Injection,

Slide 9

Slide 9 text

9 ©MIXI 研修の進め⽅ / リポジトリ $ git clone https://github.com/mixigroup/ios-swiftui-training mixigroup/ios-swiftui-training を使ったハンズオン形式

Slide 10

Slide 10 text

10 ©MIXI 研修の進め⽅ / 資料 セッション毎に⽤意されているブランチにある READMEを順に読み進めていきます。 1. session-0 2. session-1.0 3. session-1.1 4. session-1.2 5. session-1.3 6. ... 辞書順に 進める

Slide 11

Slide 11 text

11 ©MIXI 研修の進め⽅ / 各セッションの構成 講義パート: 講師が各セッションブランチのREADMEに沿って説明を⾏います。 必要に応じてお⼿元でもコードを実⾏しながら聞いていただいて構いません。 チャレンジパート: 各セッションの後半に⽤意されています。※ 詰まったときは気兼ねなく隣の⼈や講師に相談してみてください。 1グループに1⼈講師がつきます。 ※session-0, session-1.0, session-1.4にはチャレンジがありません

Slide 12

Slide 12 text

12 ©MIXI スケジュール 10:30~ 全体説明 10:45~ 0. Swiftの基本 11:25~ 休憩(10min) 11:35~ 1. SwiftUIの基本 1.0. 前準備 1.1. 簡単なレイアウトを組む 1.2. 画像を表⽰ 1.3. リスト表⽰ 12:50~ ランチ休憩(1h) 13:50~ 1.4. ナビゲーション 1.5. ライフサイクルと状態管理 15:05~ 休憩(10min) 15:15~ 2. WebAPIとの通信 2.1. Swift Concurrencyによる⾮同期処理 2.2. URLSessionによる通信 2.3. エラーハンドリング 16:55~ 休憩(10min) 17:05~ 3. 設計とテスト 3.1. Single Source of Truth 3.2. XCTest 3.3. Xcode Previewsの再活⽤ 18:30~ 終了

Slide 13

Slide 13 text

13 ©MIXI 補⾜事項 モニターについて: 研修中、Xcodeと資料(各ブランチのREADME)を頻繁に⾏き来することになるでしょう。 モニターを⼀⼈⼀台⽤意していますので、ぜひご活⽤ください。 ⽔分/糖分補給はご⾃由に: ランチ休憩の予定時刻が12:50と遅めなので、 適宜エネルギー補給していただいて⼤丈夫です。 ただし、講義パートは撮影中であることをご理解ください。

Slide 14

Slide 14 text

©MIXI