Slide 1

Slide 1 text

2022年度 ミクシィ新卒研修 - iOSアプリ開発 - 株式会社ミクシィ みてね事業部 飯塚拓也

Slide 2

Slide 2 text

講師紹介 • 飯塚拓也 • 2019年新卒 みてね事業部所属 • iOS メインに Android, Rails も • 遊戯王が好き(デュエリスト) 2

Slide 3

Slide 3 text

お品書き(この後 slack に貼ります) ● 10:30〜 iOSアプリ開発の歴史 ● 10:50〜 Swift言語の基本 ● 11:30〜 休憩 ● 11:40〜 SwiftUIの基本① ○ 簡単なレイアウトを組む ○ 画像を表示 ○ リスト表示 ● 13:00〜 ランチ休憩 ● 14:00〜 SwiftUI の基本② ○ ナビゲーション ○ ライフサイクルと状態管理 3 ● 15:20〜 休憩 ● 15:30〜 WebAPIとの通信 ○ Swift Concurrency による非同期処理 ○ URLSession による通信 ○ エラーハンドリング ● 16:50〜 休憩 ● 17:00〜 設計とテスト ○ MVVMアーキテクチャ ○ XCTest ○ Xcode Previews の再活用 ● 18:20 終了

Slide 4

Slide 4 text

チューター紹介 4 • 松平礼史 • 2020年新卒 minimo事業部所属 • iOS • 戦闘系ゲームが好き

Slide 5

Slide 5 text

研修のゴール iOSアプリ開発に携わる方 → SwiftUI による開発のメリットを理解し、配属部署への導入を検討 できる視点を持てるようにする iOS以外のクライアント開発に関わる方 → iOSの提供するフレームワークやアプリの設計を理解し、自分の担 当するプラットフォームの開発に還元できる知識を獲得する クライアントに提供するAPIを開発する方 → iOS アプリのAPI通信や状態管理について理解し、クライアントに とって扱いやすいAPIについて考えられる知識を獲得する 5

Slide 6

Slide 6 text

iOSアプリ開発の歴史

Slide 7

Slide 7 text

iOSアプリ開発の歴史 • 1983年 Objective-C 言語が誕生 • 1985年 スティーブ・ジョブズがApple社から解雇され、同年にNeXT社を設立 • NeXTSTEPと呼ばれる Objective-C を基盤としたオペレーティングシステムを開発 • 1996年 Apple社がNeXTを買収 • 2002年 NeXTSTEPをベースとしてMac OS Xを公開 • 2008年 iPhoneを発表 iOSアプリ開発の言語に Objective-C が採用される • UIフレームワークとして UIKit が提供される • 2014年 Swift 言語を発表 • 2019年 新UIフレームワーク SwiftUI を発表 7

Slide 8

Slide 8 text

Objective-C • ヘッダーファイルと実装ファイルに 分かれている • 近年のモダンな言語と比べると厳し 部分が多々ある 8

Slide 9

Slide 9 text

Swift 9 • 先と同じコードを Swiftで書くとこ う • OSSとして今も活発に開発が進めら れている • https://github.com/apple/swift

Slide 10

Slide 10 text

UIKit 10 • 手続的なUIフレームワーク • GUIでレイアウトが可能な Storyboard(Xib) と併用(使わ ないことも可能)

Slide 11

Slide 11 text

SwiftUI 11 • 宣言的なUIフレームワーク • Xcode Previews というホット リロード可能な Preview で表 示が可能

Slide 12

Slide 12 text

iOS SwiftUI Training https://github.com/mixigroup/ios-swiftui-training

Slide 13

Slide 13 text

進め方 各セッションごとに講義 → ハンズオンという流 れで進めます • 講義パート • 自分が画面共有しながら説明していきます • それを聞きながらみなさんも一緒に手を動かして いただきます • ハンズオンパート • 各セッションにチャレンジ項目を用意しているの で、こちらはみなさんに考えていただきます • 2チームに分かれて、相談などもしつつ進めてい きます 13

Slide 14

Slide 14 text

進め方 全体 Meet/Slackチャンネルに加えて、各チームの Meet/Slackチャンネ ルを用意します • 全体 Meet • 講義パートで何か質問などがあれば遠慮なく発言してください(チャットでもOK) • ハンズオンパートではミュートでお願いします • 各チームの Meet • 講義パートではミュートでお願いします • ハンズオンパートではミュートを解除して自由に相談しながら(誰かが画面共有して モブプロっぽくやってもOK) 14