Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
多次元宇宙と画面遷移
Search
haranicle
September 16, 2017
Technology
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
多次元宇宙と画面遷移
https://iosdc.jp/2017/
haranicle
September 16, 2017
More Decks by haranicle
See All by haranicle
戦略的手抜きをするためのデザインシステム運用
haranicle
1
3.7k
bitFlyer ウォレット リニューアルの裏側
haranicle
0
190
ハッピーな開発チームを築くために iOSエンジニアがしたこと
haranicle
5
15k
Playground芸
haranicle
6
2k
I💖Xcode Plugins
haranicle
0
170
Apple WatchのGlanceについて
haranicle
3
2.7k
Xcode6のFramework Templateについて
haranicle
2
2.7k
iOS8の Custom Keyboard について
haranicle
2
1.4k
Other Decks in Technology
See All in Technology
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
210
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2k
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
240
cccccc
moznion
0
1.6k
そのタスクオンスケですか?
poropinai1966
0
120
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
460
4人目のSREはAgent
tanimuyk
0
370
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
180
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
230
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
260
作る力から、見極める力へ — AI時代に広がるエンジニアの価値と役割
rince
0
410
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
350
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
630
Designing for Timeless Needs
cassininazir
1
270
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Abbi's Birthday
coloredviolet
3
8.4k
New Earth Scene 8
popppiees
3
2.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Odyssey Design
rkendrick25
PRO
2
720
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Transcript
ଟ࣍ݩӉͱը໘ભҠ !IBSBOJDMF
ӉͬͯԿ
զʑ͕͍Δੈք
ະͩݟ͍͍ͩͤͯͳ͍ ͋ΔཧʹΑͬͯ ͯ͢ܭࢉͰ͖Δ
࣍ݩͬͯԿ
ࣗ༝
Y
Y Z
Y Z [
Y
None
Y [
ਓ͕ؒ؍ଌͰ͖Δͷ ࣍ݩ
খ͍࣭͞ͷࢹʹͳΔͱ ߴ͍࣍ݩΛѲͰ͖Δ
࣭ͷ࠷খ୯ҐͰ͋Δૉཻࢠʹ ͍ͭͯܭࢉ͢Δͱʜ
ӉͬͯԿ࣍ݩ
͕͑ग़͍ͯͳ͍ ࣍ݩ͔͠Εͳ͍
J04ΞϓϦԿ࣍ݩ
Ӊͱಉ༷ J04ΞϓϦʹ࣍ݩ͕͋Δ
ίʔυϨϕϧͷ࣍ݩ J04ΞϓϦԿ࣍ݩ
ཧ্ ίʔυϕʔεͷதͷมͷݸ ࣍ݩ͕ଘࡏ͢ΔՄೳੑ͕͋Δ
มʹੜଘظ͕ؒ͋Δ J04ΞϓϦͱಉ͡ ੜଘظؒͷͷ͚ͩߟ͑Δ
w"QQ%FMFHBUFͷม w3PPU7JFX$POUSPMMFSͷม wγϯάϧτϯ͕͍࣋ͬͯΔม ͜ΕΒͷݸΞϓϦͷ࣍ݩ
ը໘ભҠͷ࣍ݩ J04ΞϓϦԿ࣍ݩ
ը໘ભҠͷछྨ
Ϟʔμϧ
υϦϧμϯ
εΠον
ϞʔμϧυϦϧμϯεΠον ͲΕભҠࣗମ࣍ݩ͚ͩͲ
෭࡞༻Λߟྀ͢Δͱ ը໘ભҠͷ࣍ݩ ϞʔμϧυϦϧμϯεΠον
J04ΞϓϦଟ͘ͷ࣍ݩΛ࣋ͭͷͰ 3PPU7JFX$POUSPMMFSεΠον ͡Όͳ͍ͱදݱ͖͠Εͳ͍
3PPU7JFX$POUSPMMFSৗʹ $POUBJOFS7JFX$POUSPMMFS
3PPU7JFX$POUSPMMFS ͷ࣮
class RootViewController: UIViewController { enum State { case splash case
home } private var currentViewController: UIViewController? func switchState(to state: State) { if let vc = currentViewController { vc.willMove(toParentViewController: nil) vc.view.removeFromSuperview() vc.removeFromParentViewController() } switch state { case .splash: currentViewController = SplashViewController() case .home: currentViewController = homeNavigationViewController } addChildViewController(currentViewController!) view.addSubview(currentViewController!.view) currentViewController!.didMove(toParentViewController: self) } let homeNavigationViewController = UINavigationController(rootViewController: HomeViewController() } TUBUFʹԠͯ͡ DIJME7JFX$POUSPMMFSΛ εΠον͢Δ
class RootViewController: UIViewController { enum State { case splash case
home } private var currentViewController: UIViewController? func switchState(to state: State) { if let cvc = currentViewController { cvc.willMove(toParentViewController: nil) cvc.view.removeFromSuperview() cvc.removeFromParentViewController() } switch state { case .splash: currentViewController = SplashViewController() case .home: currentViewController = homeNavigationViewController } addChildViewController(currentViewController!) view.addSubview(currentViewController!.view) currentViewController!.didMove(toParentViewController: self) } let homeNavigationViewController = UINavigationController(rootViewController: HomeViewController()) } υϦϧμϯͷ֊Λҡ͍࣋ͨ͠ 7JFX$POUSPMMFS εΠονͰഁغ͞Εͳ͍Α͏ʹ͢Δ
class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? let rootViewController
= RootViewController() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { window = UIWindow() window?.rootViewController = rootViewController window?.makeKeyAndVisible() return true } func somethingHappens() { rootViewController.switchState(to: .home) } } 3PPU7JFX$POUSPMMFSΛ͓࣋ͬͯ͘ దͳλΠϛϯάͰTUBUFΛΓସ͑Δ
ΞϓϦͷ࣍ݩͷ੍ޚͱ 3PPU7JFX$POUSPMMFSͷ੍ޚʹ ࣏҆Λ
࣍ݩΛ͑ͨը໘ભҠ
ྫ 63-εΩʔϜύλʔϯ
͍·ίί
͍·ίί NZBQQEPTPNFUIJOH
͍·ίί ίί·Ͱ ભҠ͍ͤͨ͞ ͬͨΒ ࠓ·Ͱͳ͔ͬͨը໘
མͪண͍ͯ 3PPU7JFX$POUSPMMFSͷεΠον ͱ υϦϧμϯͷߏங
rootViewController.switchState(to: .home) let vcList = [ FirstViewController(), SecondViewController() ] rootViewController.homeNavigationViewController.setViewControllers(
vcList, animated: false) 3PPU7JFX$POUSPMMFSͷεΠον υϦϧμϯͷߏங υϦϧμϯͷ֊ҡ࣋ͨ͠7JFX$POUSPMMFS
ྫ εʔύʔΔύλʔϯ
͍·ίί
͍·ίί ίί·ͰΓ͍ͨ
6OXJOE4FHVFΛ͏
Γઌͷ7JFX$POUSPMMFSʹ 6OXJOE4FHVFͷϝιουΛ ࣮͢Δ͚ͩ J04͕ը໘ભҠͷ֊Λۦ্͚͕ͬͯ ۙͷΓઌΛݟ͚ͭͯ ભҠͯ͘͠ΕΔ
࣍ݩͱྑ͘ͳͬͯ ࠷ߴͷը໘ભҠϥΠϑΛ ָ͠͏
None