Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
UniFlow 完全に理解した / I can develop UniFlow a little.
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tetsuya Mori
PRO
September 02, 2019
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UniFlow 完全に理解した / I can develop UniFlow a little.
2019/09/02 (Mon) に実施された「KidsStar 開発合宿」で発表した UniFlow というライブラリの解説資料です。
Tetsuya Mori
PRO
September 02, 2019
More Decks by Tetsuya Mori
See All by Tetsuya Mori
ビルドシステムを C# 大統一したお話
monry
PRO
2
1.6k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
1.8k
はじめての C# 大統一理論
monry
PRO
0
870
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
330
Unity で ARゲームを作った話
monry
PRO
1
1.1k
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
3.2k
Democratized Unity Package Manager
monry
PRO
1
3.1k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
1.3k
ごっこランドをささえる技術 〜AssetBundle 編〜/AssetBundle Fully Understood
monry
PRO
3
7.5k
Other Decks in Programming
See All in Programming
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
200
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
350
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
570
カツオ、ご期待ください
suneo3476
0
160
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
Workers Cache を知る
syumai
0
350
dotNET_vulnclicker_intro.pdf
deka_morita
0
130
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
170
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
120
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
最近”作らせてる” ローカルAIアプリの話
akit37
0
390
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2k
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Being A Developer After 40
akosma
92
590k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
350
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
250
The untapped power of vector embeddings
frankvandijk
2
1.9k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Facilitating Awesome Meetings
lara
57
7.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Transcript
גࣜձࣾΩοζελʔ$50 ɹ࠸ 6OJ'MPX શʹཧղͨ͠ .PO ,JET4UBS։ൃ߹॓ *DBOEFWFMPQ6OJ'MPXBMJUUMF
͜Μʹͪʂ
w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ͍ํ w6OJ'MPXͷ֦ு ΞδΣϯμ ηογϣϯ֓ཁ
w$"'6ͬͯͯɺʮ1SFTFOUBUJPOʹԙ͚Δ ΠϕϯτͷऔΓճ͕͠໘ष͍ͳ͊ʯͬͯײͯ͡Δਓ wʮϘλϯͷ֦ॖΞχϝͪʯͱ͔ʮೋԡ͠ରࡦʯͱ͔ ຖճॻ͔ͳ͖Ό͍͚ͳ͍͚ͲநԽ͠ਏ͍ॲཧΛڞ௨Խ ͍ͨ͠ͱࢥ͍ͬͯΔਓ wνϡʔτϦΞϧͱ͔ͷʮͪΐͬͱϢʔβΠϯλϥΫγϣϯ ඞཁͳΜ͚ͩͲɺجຊࣗಈ࠶ੜʯΈ͍ͨͳॲཧΛ ίʔυॻ͔ͣʹ࣮ݱ͍ͨ͠ਓ w͍ͬͯ͏͔,JET4UBSؔऀͰ6OJUZ৮Δਓ
ࠓͷରऀ ηογϣϯ֓ཁ
w6OJ'MPXʹ͍ͭͯ ࠓ͢ίτ ηογϣϯ֓ཁ
w6*&MFNFOUTʹ͍ͭͯ w(SBQI7JFXʹ͍ͭͯ ࠓ͞ͳ͍ίτ ηογϣϯ֓ཁ
ηΫγϣϯλΠτϧ wࣄגࣜձࣾΩοζελʔ$50 wՈ࠺ɾ່ w6OJUZྺ w!NPOSZ wBLBΜΓ͌ઌੜ 7 ࣗݾհ ηογϣϯ֓ཁ
ࣗݾհ"XBSE ηογϣϯ֓ཁ w.JDSPTPGU.71 GPS%FWFMPQFS5FDIOPMPHJFT w6OJUZ"NCBTTBEPS
ࣗݾհ+PC ηογϣϯ֓ཁ ະबֶࣇʙখֶߍֶ͚ͷ ৬ۀମݧΞϓϦʮͬ͜͝ϥϯυʯΛ Ҏ্ʹΘͨΓ։ൃɾӡӦ
ηΫγϣϯλΠτϧ wΩοζελʔֶशா 1JYJW#005)ʹͯ ධൢചதʂ w"TTFU#VOEMF w։ൃൿ wւ֎ۈͷ͓͠ wษڧձ։࠵ w"OESPJEࣗಈςετ w7FDUPS(SBQIJDT
10 ࣗݾհ13 IUUQTLJETTUBSUCGCPPUIQN ηογϣϯ֓ཁ
ࣗݾհ13 ηογϣϯ֓ཁ #ͷϥδ ύʔιφϦςΟͬͯ·͢ʂ ήετืूதʂ
w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ͍ํ w6OJ'MPXͷ֦ு ΞδΣϯμ ΠϚίί
4VNNBSZPG6OJ'MPX
ίϯηϓτ 6OJ'MPXͷ֓ཁ %FWFMPQNFOU 1SFTFOUBUJPO-BZFST XJUIPVU$PEJOH
ίϯηϓτ 6OJ'MPXͷ֓ཁ wϧʔϧΛ౷Ұ w֤छΠϕϯτͷϝοηʔδϯά wॲཧͷݺͼग़͠ w֦ுੑߴ͘ wฤू͠қ͘
8IBUEPFT6OJ'MPXEP 6OJ'MPXͷ֓ཁ w6OJUZͷੈքͰൃੜ͢Δ֤छॲཧΛ ଓ͢ΔύΠϓϥΠϯͱͯ͠ػೳ wྲྀΕ͖ͯͨॲཧΛϝοηʔδͱͯ͠ ϏδωεϩδοΫʹड͚͢
ߏཁૉ 6OJ'MPXͷ֓ཁ w$POOFDUBCMF w$POOFDUPS w3FDFJWFS w&WFOU.FTTBHFT w6OJ'MPX(SBQI
ߏཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS
ߏཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS 6OJUZͷ֤छॲཧΛଓ
͕ࣗॲཧͷى ඌʹͳΓ͏Δ ConnectorBaseΛܧঝ
ߏཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ʮλοϓ࣌ʯʮԻऴྃ࣌ʯ
ʮ5JNFMJOFऴྃ࣌ʯ ͱ͔ͷΠϕϯτൃՐ࣌ʹ ޙଓͷ$POOFDUBCMF ʹଓ
ߏཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ʮԻ࠶ੜʯʮΞχϝ࠶ੜʯ
ʮ5JNFMJOFఀࢭʯ ͱ͍ͬͨॲཧΛݺͼग़ͯ͠ ޙଓͷ$POOFDUBCMF ʹଓ
ߏཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ʮ5JNFSʯʮ*OUFSWBMʯ
ʮ'JMUFS ະ࣮ ʯ ͳͲͷཧతͳॲཧΛ࣮ߦ͠ ޙଓͷ$POOFDUBCMF ʹଓ
ߏཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ྲྀΕ͖ͯͨϝοηʔδΛ
ड͚औͬͯʮԿ͔ʯ͢Δ ࠓͷॴҎԼ͕ར༻Մೳ wԿ͠ͳ͍ wϩάग़ྗ͢Δ wIObservable.OnNext()
ߏཁૉ&WFOU.FTTBHFT 6OJ'MPXͷ֓ཁ wܦ༝͖ͯͨ͠$POOFDUBCMFͷ ใ͕֨ೲ͞ΕΔ wIReceiver.OnReceive(EventMessages eventMessages) w·͊ɺ͏ίτগͳ͍ͱࢥ͏
ߏཁૉ6OJ'MPX(SBQI 6OJ'MPXͷ֓ཁ
ߏཁૉ6OJ'MPX(SBQI 6OJ'MPXͷ֓ཁ ͕Μͬͨ
ߏཁૉ6OJ'MPX(SBQI 6OJ'MPXͷ֓ཁ w4DFOF1SFGBCʹؚ·ΕΔ $POOFDUBCMFͷใΛҰཡ wͦͷͰ৽͍͠$POOFDUBCMFΛ Ճ͢ΔͳͲͷฤू࡞ۀ0, wৄ͘͠ޙड़
w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ͍ํ w6OJ'MPXͷ֦ு ΞδΣϯμ ΠϚίί
)PXUPVTF6OJ'MPX
%FNP 6OJ'MPXͷ͍ํ -JWF%FNP
w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ͍ํ w6OJ'MPXͷ֦ு ΞδΣϯμ ΠϚίί
&YUFOE6OJ'MPX
$POOFDUPSՃ 6OJ'MPXͷ֦ு wछผΛΘͣConnectorBaseΛܧঝ͠·͠ΐ͏ w[AddComponentMenu]ΛΕͣʹ w6OJ'MPX(SBQI͔Βࢀর͞Ε·͢ wϝχϡʔ໊"UniFlow/<Type>/<Name>"ͱ ͠·͠ΐ͏ wFH[AddComponentMenu("UniFlow/Event/FooBarEvent")]
3FDFJWFSՃ 6OJ'MPXͷ֦ு wReceiverBaseΛܧঝ͠·͠ΐ͏ w$"'6͔Β͏߹ ObservableReceiverBase͕ศར wpublic interface IFoo
: IObservableReceiver wpublic class Foo : ObservableReceiverBase, IFoo w[Inject] private IFoo Foo { get; }
6OJ'MPX(SBQIʁ 6OJ'MPXͷ֦ு wConnectableBaseΛܧঝͨ͠ Ϋϥεࣗಈతʹ(SBQI/PEFͷ ରʹͳΔ w"EE/PEFͷ5SFF AddComponentMenuଐੑͷ ύϥϝʔλΛಡΜͰߏங
5IBOLZPVGPSZPVS BUUFOUJPO