Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOSアプリ開発研修【ミクシィ22新卒技術研修】

 iOSアプリ開発研修【ミクシィ22新卒技術研修】

22新卒技術研修で実施したiOSアプリ開発研修の講義資料です。
動画も後日公開予定です。

ハンズオン用リポジトリ
https://github.com/mixigroup/ios-swiftui-training

B16717ef4b7aab0b253d933c3934f280?s=128

mixi_engineers
PRO

April 27, 2022
Tweet

More Decks by mixi_engineers

Other Decks in Programming

Transcript

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

  2. 講師紹介 • 飯塚拓也 • 2019年新卒 みてね事業部所属 • iOS メインに Android,

    Rails も • 遊戯王が好き(デュエリスト) 2
  3. お品書き(この後 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 終了
  4. チューター紹介 4 • 松平礼史 • 2020年新卒 minimo事業部所属 • iOS •

    戦闘系ゲームが好き
  5. 研修のゴール iOSアプリ開発に携わる方 → SwiftUI による開発のメリットを理解し、配属部署への導入を検討 できる視点を持てるようにする iOS以外のクライアント開発に関わる方 → iOSの提供するフレームワークやアプリの設計を理解し、自分の担 当するプラットフォームの開発に還元できる知識を獲得する

    クライアントに提供するAPIを開発する方 → iOS アプリのAPI通信や状態管理について理解し、クライアントに とって扱いやすいAPIについて考えられる知識を獲得する 5
  6. iOSアプリ開発の歴史

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

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

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

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

    で表 示が可能
  12. iOS SwiftUI Training https://github.com/mixigroup/ios-swiftui-training

  13. 進め方 各セッションごとに講義 → ハンズオンという流 れで進めます • 講義パート • 自分が画面共有しながら説明していきます •

    それを聞きながらみなさんも一緒に手を動かして いただきます • ハンズオンパート • 各セッションにチャレンジ項目を用意しているの で、こちらはみなさんに考えていただきます • 2チームに分かれて、相談などもしつつ進めてい きます 13
  14. 進め方 全体 Meet/Slackチャンネルに加えて、各チームの Meet/Slackチャンネ ルを用意します • 全体 Meet • 講義パートで何か質問などがあれば遠慮なく発言してください(チャットでもOK)

    • ハンズオンパートではミュートでお願いします • 各チームの Meet • 講義パートではミュートでお願いします • ハンズオンパートではミュートを解除して自由に相談しながら(誰かが画面共有して モブプロっぽくやってもOK) 14