SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Container View Controllerを
正しく使おう
potatotips (iOS/Android開発Tips共有会) 第14回
2015/2/18
@asakahara
自己紹介
id:sakahara
Twitter: @asakahara
・http://sakahara.hatenablog.jp/
・はてなのアプリケーションエンジニア
・はてなブックマークチームに所属
・iOS/Androidを主に担当
Container View Controllerのメリット
1. UINavigationController、UITabBarControllerのように独自の
transitionを組み込んでView Controllerを管理する仕組みを実装で
きる
Container View Controllerの初期化時に各View Controllerへ依存性の
注入を行えるメリットも
2. View Controllerから別のView Controllerを表示することが簡単に
実現できる
3. ログイン状態を確認してログイン画面を出すかその他の画面を出
すの切り替えが容易にできる
かつてViewDidAppear:などでログインしてなかったらログイン画面の
モーダルを出してたようなコードとおさらばできる
今更ではありますが
Container View Controller
を正しく使えているでしょうか?
実装が間違っていてもちゃんと動くケースが
多いので意外に気づいてない方がいるかも
まずは基本からおさらい
コンテナへView Controllerを追加
1. addChildViewController:を呼び出す
そのタイミングで自動的に追加した子の
willMoveToParentViewController:が呼び出される
2. 子のビューを自身のビュー階層に追加する
3. 子のdidMoveToParentViewController:を明示的に呼び出して、処理
が終了した旨のシグナルを送信する(transitionが無い場合、すぐに
呼び出す)
addChildViewController(contentViewController)
view.addSubview(contentViewController.view)
contentViewController.didMoveToParentViewController(self)
コンテナからView Controllerを削除
1. 子のwillMoveToParentViewController:を引数にnilを渡して
呼び出し、削除されることを通知する
2. 子のビューをビュー階層から削除する
3. 子のremoveFromParentViewControllerを呼び出して、コン
テナから削除する
そのタイミングで子のdidMoveToParentViewController:が
自動的に呼び出される
contentViewController.willMoveToParentViewController(nil)
contentViewController.view.removeFromSuperview()
contentViewController.removeFromParentViewController()
func transitionFromViewController(fromViewController: UIViewController,
toViewController: UIViewController) {
!
fromViewController.willMoveToParentViewController(nil)
addChildViewController(toViewController)
!
let width = view.bounds.size.width
let height = view.bounds.size.height
let startFrame = CGRectMake(0, height, width, height)
!
toViewController.view.frame = startFrame
let endFrame = CGRectMake(0, 100, width, height)
!
transitionFromViewController(fromViewController,
toViewController: toViewController,
duration: 0.25,
options: .TransitionNone,
animations: {
toViewController.view.frame = fromViewController.view.frame
fromViewController.view.frame = endFrame
}) { _ in
fromViewController.removeFromParentViewController()
toViewController.didMoveToParentViewController(self)
}
}
Transitionについて
transitionFromViewController:
transitionFromViewController:toViewController:duration:
options:animations:completion:
!
このメソッドは自動的に新しいビューを追加し、アニメーショ
ン表示を行ってから古いビューを削除する。
そのためaddSubview:、removeFromSuperviewは不要
!
isMovingFromParentViewController
親から削除中かどうかを判定をする
viewWillDisappear:、もしはviewDidDisappear: から呼ばれた場合の
みYESを返す
!
isMovingToParentViewController
親に追加中かどうかを判定をする
viewWillAppear:、もしはviewDidAppear: から呼ばれた場合のみYES
を返す
!
shouldAutomaticallyForwardAppearanceMethods
ドキュメントを見ると「このメソッドをオーバーライドして
NOを返すことで外観に関するコールバックの制御権を取得
できる」とか書いてある・・・
分かりにくい
更にこんな機能もあります
簡単に言い直すと
shouldAutomaticallyForwardAppearanceMethodsをオーバーライ
ドしてNOを返すことでトランジションが発生した際の通知を子に自
動的に送らないようして、手動で行うようにする(デフォルトはYES)
!
子の下記メソッドを呼ぶタイミングを手動で調整できる
• viewWillAppear/ViewDidAppear:animated
• viewWillDisappear/ViewDidDisappear:animated
• willRotateToInterfaceOrientation:duration:
• willAnimateRotationToInterfaceOrientation:duration:
• didRotateFromInterfaceOrientation:
しかし・・・
•viewWillAppear:/DidAppear:
•viewWillAppear/DidDisappear:
!
を直接呼ぶのはNG
!
その代わりに子の
!
•beginAppearanceTransition:animated:
•endAppearanceTransition
!
メソッドを呼び出すようにする
override func shouldAutomaticallyForwardAppearanceMethods() -> Bool {
return false
}
!
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
contentViewController?.beginAppearanceTransition(true, animated: animated)
}
!
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
contentViewController?.endAppearanceTransition()
}
!
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
contentViewController?.beginAppearanceTransition(false, animated: animated)
}
!
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
contentViewController?.endAppearanceTransition()
}
例えばこんな感じで
private func transition(from: UIViewController, to: UIViewController) {
if from == to { return }
!
from.beginAppearanceTransition(false, animated: false)
to.beginAppearanceTransition(true, animated: false)
!
from.view.removeFromSuperview()
to.view.frame = view.bounds
view.addSubview(to.view)
!
from.endAppearanceTransition()
to.endAppearanceTransition()
}
var selectedIndex: Int = 0 {
didSet {
transition(childViewControllers[oldValue] as UIViewController,
to: childViewControllers[selectedIndex] as UIViewController)
}
}
Viewの切り替えを行う例
まとめ
• Container View Controllerへの追加や削除をする
際にいくつかの手続きがあることを知っておく
• これらのルールを守っておけば基本的に問題ない
• shouldAutomaticallyForwardAppearanceMetho
dsでNOを返すことで、コールバックの制御を自
分でコントロールできることも知っておくとよい
もっと詳しく知りたい方は
• iOS View Controllerプログラミングガイド
• UIViewController Class Reference
!
これらを読んでより理解を深めましょう
ご清聴ありがとうございました

Contenu connexe

Tendances

DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveTokoroten Nakayama
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】増田 亨
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説するTaishiYamada1
 
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことかYoshiki Hayama
 
Assembly Definition あれやこれ
Assembly Definition あれやこれAssembly Definition あれやこれ
Assembly Definition あれやこれNakanoYosuke1
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021Unity Technologies Japan K.K.
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 TipsTakaaki Suzuki
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたYoshitaka Kawashima
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方Eisuke Sugitani
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話terurou
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説Fumiya Sakai
 
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現Unity Technologies Japan K.K.
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 

Tendances (20)

DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する
 
「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか「顧客の声を聞かない」とはどういうことか
「顧客の声を聞かない」とはどういうことか
 
5分でわかる Sensor SDK
5分でわかる Sensor SDK5分でわかる Sensor SDK
5分でわかる Sensor SDK
 
Assembly Definition あれやこれ
Assembly Definition あれやこれAssembly Definition あれやこれ
Assembly Definition あれやこれ
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
UIElements+UI BuilderでEditor拡張を作ろう
UIElements+UI BuilderでEditor拡張を作ろうUIElements+UI BuilderでEditor拡張を作ろう
UIElements+UI BuilderでEditor拡張を作ろう
 
インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021
 
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
 
ふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかたふつうの受託開発チームのつくりかた
ふつうの受託開発チームのつくりかた
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話Webブラウザ上で動作する帳票エンジンを作る話
Webブラウザ上で動作する帳票エンジンを作る話
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
 
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 

Similaire à Container View Controllerを正しく使おう

Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Jaeeun Lee
 
UIViewController のコンテナ機能
UIViewController のコンテナ機能UIViewController のコンテナ機能
UIViewController のコンテナ機能Yuichi Fujishige
 
BaseViewControllerは作りたくない
BaseViewControllerは作りたくないBaseViewControllerは作りたくない
BaseViewControllerは作りたくない今城 善矩
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介Fumiya Sakai
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するtoyship
 
UIImagePickerController よもやま話
UIImagePickerController よもやま話UIImagePickerController よもやま話
UIImagePickerController よもやま話Kei Kusakari
 
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発Kenta Ohsugi
 
Cocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイCocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイMasayuki Nii
 
Whats new in_a360-19-20_jp
Whats new in_a360-19-20_jpWhats new in_a360-19-20_jp
Whats new in_a360-19-20_jpssuser033561
 
もう怖くないモバイルアプリ開発!
もう怖くないモバイルアプリ開発!もう怖くないモバイルアプリ開発!
もう怖くないモバイルアプリ開発!Toshiki Iga
 
Application Insight Introduction
Application Insight IntroductionApplication Insight Introduction
Application Insight IntroductionKazushi Kamegawa
 
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲するHiroyuki Kusu
 
121117 metro styleapp_templateapp
121117 metro styleapp_templateapp121117 metro styleapp_templateapp
121117 metro styleapp_templateappTakayoshi Tanaka
 

Similaire à Container View Controllerを正しく使おう (13)

Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)
 
UIViewController のコンテナ機能
UIViewController のコンテナ機能UIViewController のコンテナ機能
UIViewController のコンテナ機能
 
BaseViewControllerは作りたくない
BaseViewControllerは作りたくないBaseViewControllerは作りたくない
BaseViewControllerは作りたくない
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
 
サーバーからiOSアプリを変更する
サーバーからiOSアプリを変更するサーバーからiOSアプリを変更する
サーバーからiOSアプリを変更する
 
UIImagePickerController よもやま話
UIImagePickerController よもやま話UIImagePickerController よもやま話
UIImagePickerController よもやま話
 
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
 
Cocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイCocoa勉強会#50-ストーリーボードとセグウェイ
Cocoa勉強会#50-ストーリーボードとセグウェイ
 
Whats new in_a360-19-20_jp
Whats new in_a360-19-20_jpWhats new in_a360-19-20_jp
Whats new in_a360-19-20_jp
 
もう怖くないモバイルアプリ開発!
もう怖くないモバイルアプリ開発!もう怖くないモバイルアプリ開発!
もう怖くないモバイルアプリ開発!
 
Application Insight Introduction
Application Insight IntroductionApplication Insight Introduction
Application Insight Introduction
 
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
 
121117 metro styleapp_templateapp
121117 metro styleapp_templateapp121117 metro styleapp_templateapp
121117 metro styleapp_templateapp
 

Dernier

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Dernier (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Container View Controllerを正しく使おう