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
On-Demand Resourcesを意識した コンテンツ制作ワークフロー
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Noritaka Kamiya
December 16, 2015
Programming
2.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
On-Demand Resourcesを意識した コンテンツ制作ワークフロー
Noritaka Kamiya
December 16, 2015
More Decks by Noritaka Kamiya
See All by Noritaka Kamiya
キラリと光るテクニック、アプリをデモするときの心構え/iOSDC Japan 2018
nolili
4
3.6k
WWDC Pre meeting
nolili
1
3.5k
FastLane with Swift
nolili
0
190
App Transport Securityとローカルネットワーキング/iOSDC Japan 2017
nolili
1
1.7k
iOS Test Night #4
nolili
0
4.1k
SwiftFriendlyObjective-C/try! Swift Tokyo 2017 RejectCon
nolili
1
1.1k
iOSアプリ開発のCI/CD環境とユビレジでのtry / CI CDNight
nolili
1
1.8k
ユビレジiOSアプリ開発のCI/CD環境 / iOS Test Night #1
nolili
5
2.5k
Modern Core Data(iOS 10)
nolili
0
1.4k
Other Decks in Programming
See All in Programming
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
150
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
460
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
4
1.4k
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.9k
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
330
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
AIエージェントの隔離技術の徹底比較
kawayu
0
470
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
3.9k
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.6k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
150
AIとRubyの静的型付け
ukin0k0
0
560
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Raft: Consensus for Rubyists
vanstee
141
7.5k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
30 Presentation Tips
portentint
PRO
1
320
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
The SEO identity crisis: Don't let AI make you average
varn
0
480
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
On-Demand ResourcesΛҙࣝͨ͠ ίϯςϯπ੍࡞ϫʔΫϑϩʔ @nolili Noritaka Kamiya
None
None
None
UW04ʹΞϓϦΛҠ২͢Δͧʂ w J04Y࣌ʹ࡞ͬͨͷ w 6*,JU "VEJP2VFVF4FSWJDFT w 4UPSZCPBSEΈͳ͓ͨ͠Β΄ͱΜͲಈ͍ͨ
ϑΝΠϧαΠζ͕େ͖͗͢Δʂ w UW04ͷΞϓϦɿόϯυϧαΠζʹ.#ͷ੍ݶ w 4BOECPYͷσʔλอଘෆՄ w Γ0O%FNBOE3FTPVSDFTͰ
0O%FNBOE3FTPVSDFT w ΞϓϦຊମͱผͰඞཁͳσʔλ͕ൃੜͨ࣌͠Ͱ αʔό͔ΒඞཁͳσʔλΛऔಘ͢Δ w ॳճμϯϩʔυ࣌ͷ௨৴ΛݮΒͤΔ
Ϣʔεέʔε w ϓϨΠ͞ΕΔ͔Θ͔Βͳ͍ޙͷεςʔδͷσʔλ w ՝ۚͨ͠Ϣʔβ͔͠Θͳ͍σʔλ w ετϨʔδ༰ྔ͕(#ͷσόΠεʹ༏͍͠ w UW04Ҏ֎Ͱ͑Δ
try!
5BHΛ͚ͭΔ w 9DPEFͰϦιʔεʹUBHΛ͚ͭΔ
ϦιʔεʹΞΫηε͢Δ let request = NSBundleResourceRequest(tags: Set(["town"]))
ϦιʔεʹΞΫηε͢Δ request1.beginAccessingResourcesWithCompletionHandler { error in guard error == nil else
{ return } guard let image = UIImage(named: "myImage") else { fatalError("image not found") } print(image) }
3FMFBTF request.endAccessingResources()
ʊਓਓਓਓਓਓਓਓʊ ʼɹࢀরΧϯλɹʻ ʉ:?:?:?:?:?:?:ʉ
None
མͱ݀͠ w "QQ4UPSFͰ͢Δ߹"QQMFͷαʔόͰϗ εςΟϯά͢Δඞཁ͕͋Δ w ։ൃதಠࣗͷαʔό͕͑Δ w &OUFSQSJTF༻ΞϓϦϓϩμΫγϣϯͰಠࣗαʔ ό͕͑Δ
ςετ࣌ʹಠࣗαʔόʹΞηοτΛஔ͘ w CVJMEσΟϨΫτϦͷσʔλΛอଘ͢Δ w 0SHBOJ[FS͔ΒσʔλΛॻ͖ग़͢ w "44&5@1"$,@."/*'&45@63-@13&'*9Λઃఆ
4FSWFS ODR 2015-12-05 16-31-40 python -m SimpleHTTPServer Serving HTTP on
0.0.0.0 port 8000 ... 127.0.0.1 - - [05/Dec/2015 16:35:40] "HEAD /OnDemandResources/li.noli.ODR.2nd.assetpack HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 16:35:40] "GET /OnDemandResources/li.noli.ODR.2nd.assetpack HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 16:35:44] "HEAD /OnDemandResources/li.noli.ODR.1st.assetpack HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 16:35:44] "GET /OnDemandResources/li.noli.ODR.1st.assetpack HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 17:07:03] "GET /OnDemandResources/AssetPackManifest.plist HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 17:51:08] "HEAD /OnDemandResources/li.noli.ODR.2nd.assetpack HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 17:51:13] "GET /OnDemandResources/li.noli.ODR.2nd.assetpack HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 17:51:14] "HEAD /OnDemandResources/li.noli.ODR.1st.assetpack HTTP/1.1" 200 - 127.0.0.1 - - [05/Dec/2015 17:51:14] "GET /OnDemandResources/li.noli.ODR.1st.assetpack HTTP/1.1" 200 -
མͱ݀͠ɹͦͷ w LJMM͞Εͨ͋ͱ͍ͭσʔλ͕ফ͑Δ͔Θ͔Βͳ͍ w ΞϓϦ͋ͨΓ࠷େ(#ͷϦιʔεΛѻ͑Δ w ಉ࣌ʹ CFHJO"DDFTTJOH3FTPVSDFT8JUI$PNQMFUJPO)BO EMFSͰ͖Δͷ(#·Ͱ w
͍Βͳ͘ͳͬͨΒFOE"DDFTTJOH3FTPVSDFTΛ ͬͯΞΫηεΛࢭΊΔ
*OJUJBM*OTUBMM5BH w "QQ4UPSFͰΞϓϦΠϯετʔϧ࣌ʹಉ࣌ʹΠϯε τʔϧ͞ΕΔ w ͳ͔ͥ"QQ*%ͱ1SPWJTJPOJOH1SPpMFͰ1VTI /PUJpDBUJPOΛ༗ޮʹ͓͔ͯ͠ͳ͍ͱ͍͚ͳ͔ͬ ͨɻʢ9DPEFͰαϒϛοτ࣌ʹΤϥʔʣ
"QQ4UPSF.#ͷน w .#ͷ੍ݶʹؚ·ΕΔͷ w "QQMJDBUJPO#VOEMF ΞϓϦຊମ w *OJUJBM*OTUBMM
0O%FNBOE3FTPVSDFTΛҙࣝͨ͠ ίϯςϯπ੍࡞ w ͋Δ͋Δ w Τϯδϯ͚ͩ࡞ͬͯɺͱΓ͋͑ͣ৹ࠪ௨ͯ͠ɺ͋ͱ ͔ΒαʔόͷϦιʔεೖΕସ͑Α͏ʂ
0O%FNBOE3FTPVSDFTΛҙࣝͨ͠ ίϯςϯπ੍࡞ w ͋Δ͋Δ w Τϯδϯ͚ͩ࡞ͬͯɺͱΓ͋͑ͣ৹ࠪ௨ͯ͠ɺ͋ͱ ͔ΒαʔόͷϦιʔεೖΕସ͑Α͏ʂ X
0O%FNBOE3FTPVSDFTΛҙࣝͨ͠ ίϯςϯπ੍࡞ 㾎શͯͷΞηοτ͕ἧ͍ͬͯΔ͜ͱ 㾎దͳUBH͕ৼΒΕ͍ͯΔ͜ͱ 㾎ڊେͳσʔλͷ༗ແ
0O%FNBOE3FTPVSDFTΛҙࣝͨ͠ ίϯςϯπ੍࡞ 㾎Ͳ͜ͰϢʔβΛ͍͍ͨͤͯͷ͔ʁ 㾎ॳճىಈ࣌ʹΦϑϥΠϯͷϢʔβ͕Ͳͷ֊·Ͱί ϯςϯπʹΞΫηε͢Δͷ͔ʁ 㾎4VCNJU࣌ʹτϥϒϧൃ֮ͭΒ͍ 㾎5FTUqJHIUͰςετ͢Δ
3FGFSFODFT 0O%FNBOE3FTPVSDFT(VJEF IUUQTEFWFMPQFSBQQMFDPNKQEPDVNFOUBUJPO'JMF.BOBHFNFOU$PODFQUVBM 0O@%FNBOE@3FTPVSDFT@(VJEF "QQ5IJOOJOH IUUQTEFWFMPQFSBQQMFDPNMJCSBSZUWPTEPDVNFOUBUJPO*%&T$PODFQUVBM "QQ%JTUSJCVUJPO(VJEF"QQ5IJOOJOH"QQ5IJOOJOHIUNM &YBNQMF$PEF0%34UVEZ IUUQTHJUIVCDPNOPMJMJ0%34UVEZ
On-Demand ResourcesΛҙࣝͨ͠ ίϯςϯπ੍࡞ϫʔΫϑϩʔ @nolili Noritaka Kamiya