UniFlow 完全に理解した / I can develop UniFlow a little.

7b13f432547b92d04c79b749adb535e0?s=47 Tetsuya Mori
September 02, 2019

UniFlow 完全に理解した / I can develop UniFlow a little.

2019/09/02 (Mon) に実施された「KidsStar 開発合宿」で発表した UniFlow というライブラリの解説資料です。

7b13f432547b92d04c79b749adb535e0?s=128

Tetsuya Mori

September 02, 2019
Tweet

Transcript

  1. גࣜձࣾΩοζελʔ$50 ৿ɹ఩࠸ 6OJ'MPX ׬શʹཧղͨ͠  .PO ,JET4UBS։ൃ߹॓ *DBOEFWFMPQ6OJ'MPXBMJUUMF

  2. ͜Μʹͪ͸ʂ  

  3. w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு   ΞδΣϯμ ηογϣϯ֓ཁ

  4. w$"'6࢖ͬͯͯɺʮ1SFTFOUBUJPO૚ʹԙ͚Δ
 ΠϕϯτͷऔΓճ͕͠໘౗ष͍ͳ͊ʯͬͯײͯ͡Δਓ wʮϘλϯͷ֦ॖΞχϝ଴ͪʯͱ͔ʮೋ౓ԡ͠ରࡦʯͱ͔
 ຖճॻ͔ͳ͖Ό͍͚ͳ͍͚Ͳந৅Խ͠ਏ͍ॲཧΛڞ௨Խ
 ͍ͨ͠ͱࢥ͍ͬͯΔਓ wνϡʔτϦΞϧͱ͔ͷʮͪΐͬͱϢʔβΠϯλϥΫγϣϯ
 ඞཁͳΜ͚ͩͲɺجຊ͸ࣗಈ࠶ੜʯΈ͍ͨͳॲཧΛ
 ίʔυॻ͔ͣʹ࣮ݱ͍ͨ͠ਓ w͍ͬͯ͏͔,JET4UBSؔ܎ऀͰ6OJUZ৮Δਓ 

     ࠓ೔ͷର৅ऀ ηογϣϯ֓ཁ
  5. w6OJ'MPXʹ͍ͭͯ   ࠓ೔࿩͢ίτ ηογϣϯ֓ཁ

  6. w6*&MFNFOUTʹ͍ͭͯ w(SBQI7JFXʹ͍ͭͯ   ࠓ೔࿩͞ͳ͍ίτ ηογϣϯ֓ཁ

  7. ηΫγϣϯλΠτϧ w࢓ࣄגࣜձࣾΩοζελʔ$50 wՈ଒࠺ɾ່ w6OJUZྺ೥໨ w!NPOSZ wBLB΋ΜΓ͌ઌੜ 7 ࣗݾ঺հ ηογϣϯ֓ཁ

  8.   ࣗݾ঺հ"XBSE ηογϣϯ֓ཁ w.JDSPTPGU.71
 GPS%FWFMPQFS5FDIOPMPHJFT w6OJUZ"NCBTTBEPS

  9.   ࣗݾ঺հ+PC ηογϣϯ֓ཁ ະबֶࣇʙখֶߍ௿ֶ೥޲͚ͷ ৬ۀମݧΞϓϦʮͬ͜͝ϥϯυʯΛ ೥Ҏ্ʹΘͨΓ։ൃɾӡӦ

  10. ηΫγϣϯλΠτϧ wΩοζελʔֶशா
 1JYJW#005)ʹͯ
 ޷ධൢചதʂ w"TTFU#VOEMF w։ൃൿ࿩ wւ֎ۈ຿ͷ͓࿩͠ wษڧձ։࠵ w"OESPJEࣗಈςετ w7FDUPS(SBQIJDT

    10 ࣗݾ঺հ13 IUUQTLJETTUBSUCGCPPUIQN ηογϣϯ֓ཁ
  11.   ࣗݾ঺հ13 ηογϣϯ֓ཁ #΋ͷϥδ ύʔιφϦςΟ΍ͬͯ·͢ʂ ήετืूதʂ

  12. w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு   ΞδΣϯμ ΠϚίί

  13. 4VNNBSZPG6OJ'MPX  

  14.   ίϯηϓτ 6OJ'MPXͷ֓ཁ %FWFMPQNFOU
 1SFTFOUBUJPO-BZFST XJUIPVU$PEJOH

  15.   ίϯηϓτ 6OJ'MPXͷ֓ཁ wϧʔϧΛ౷Ұ w֤छΠϕϯτͷϝοηʔδϯά wॲཧͷݺͼग़͠ w֦ுੑ͸ߴ͘ wฤू͠қ͘

  16.   8IBUEPFT6OJ'MPXEP 6OJ'MPXͷ֓ཁ w6OJUZͷੈքͰൃੜ͢Δ֤छॲཧΛ
 ઀ଓ͢ΔύΠϓϥΠϯͱͯ͠ػೳ wྲྀΕ͖ͯͨॲཧΛϝοηʔδͱͯ͠
 ϏδωεϩδοΫʹड͚౉͢

  17.   ߏ੒ཁૉ 6OJ'MPXͷ֓ཁ w$POOFDUBCMF w$POOFDUPS w3FDFJWFS w&WFOU.FTTBHFT w6OJ'MPX(SBQI

  18.   ߏ੒ཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS

  19.   ߏ੒ཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS 6OJUZͷ֤छॲཧΛ઀ଓ

    ࣗ਎͕ॲཧͷى఺΍
 ຤ඌʹͳΓ͏Δ ConnectorBaseΛܧঝ
  20.   ߏ੒ཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ʮλοϓ࣌ʯʮԻ੠ऴྃ࣌ʯ

    ʮ5JNFMJOFऴྃ࣌ʯ
 ͱ͔ͷΠϕϯτൃՐ࣌ʹ
 ޙଓͷ$POOFDUBCMF
 ʹ઀ଓ
  21.   ߏ੒ཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ʮԻ੠࠶ੜʯʮΞχϝ࠶ੜʯ


    ʮ5JNFMJOFఀࢭʯ
 ͱ͍ͬͨॲཧΛݺͼग़ͯ͠
 ޙଓͷ$POOFDUBCMF
 ʹ઀ଓ
  22.   ߏ੒ཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ʮ5JNFSʯʮ*OUFSWBMʯ


    ʮ'JMUFS ະ࣮૷ ʯ
 ͳͲͷ࿦ཧతͳॲཧΛ࣮ߦ͠
 ޙଓͷ$POOFDUBCMF
 ʹ઀ଓ
  23.   ߏ੒ཁૉ$POOFDUBCMF 6OJ'MPXͷ֓ཁ w$POOFDUPS w&WFOU w$POUSPMMFS w-PHJD w3FDFJWFS ྲྀΕ͖ͯͨϝοηʔδΛ

    ड͚औͬͯʮԿ͔ʯ͢Δ ࠓͷॴ͸ҎԼ͕ར༻Մೳ wԿ΋͠ͳ͍ wϩάग़ྗ͢Δ wIObservable.OnNext()
  24.   ߏ੒ཁૉ&WFOU.FTTBHFT 6OJ'MPXͷ֓ཁ wܦ༝͖ͯͨ͠$POOFDUBCMFͷ
 ৘ใ͕֨ೲ͞ΕΔ wIReceiver.OnReceive(EventMessages eventMessages)  w·͊ɺ࢖͏ίτ͸গͳ͍ͱࢥ͏

  25.   ߏ੒ཁૉ6OJ'MPX(SBQI 6OJ'MPXͷ֓ཁ

  26.   ߏ੒ཁૉ6OJ'MPX(SBQI 6OJ'MPXͷ֓ཁ ͕Μ͹ͬͨ

  27.   ߏ੒ཁૉ6OJ'MPX(SBQI 6OJ'MPXͷ֓ཁ w4DFOF1SFGBCʹؚ·ΕΔ
 $POOFDUBCMFͷ৘ใΛҰཡ wͦͷ৔Ͱ৽͍͠$POOFDUBCMFΛ
 ௥Ճ͢ΔͳͲͷฤू࡞ۀ΋0, wৄ͘͠͸ޙड़

  28. w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு   ΞδΣϯμ ΠϚίί

  29. )PXUPVTF6OJ'MPX  

  30.   %FNP 6OJ'MPXͷ࢖͍ํ -JWF%FNP

  31. w6OJ'MPXͷ֓ཁ w6OJ'MPXͷ࢖͍ํ w6OJ'MPXͷ֦ு   ΞδΣϯμ ΠϚίί

  32. &YUFOE6OJ'MPX  

  33.   $POOFDUPS௥Ճ 6OJ'MPXͷ֦ு wछผΛ໰ΘͣConnectorBaseΛܧঝ͠·͠ΐ͏ w[AddComponentMenu]Λ๨Εͣʹ w6OJ'MPX(SBQI͔Β΋ࢀর͞Ε·͢ wϝχϡʔ໊͸"UniFlow/<Type>/<Name>"ͱ
 ͠·͠ΐ͏ wFH[AddComponentMenu("UniFlow/Event/FooBarEvent")]

  34.   3FDFJWFS௥Ճ 6OJ'MPXͷ֦ு wReceiverBaseΛܧঝ͠·͠ΐ͏ w$"'6͔Β࢖͏৔߹͸ ObservableReceiverBase͕ศར wpublic interface IFoo

    : IObservableReceiver wpublic class Foo : ObservableReceiverBase, IFoo w[Inject] private IFoo Foo { get; }
  35.   6OJ'MPX(SBQI͸ʁ 6OJ'MPXͷ֦ு wConnectableBaseΛܧঝͨ͠
 Ϋϥε͸ࣗಈతʹ(SBQI/PEFͷ
 ର৅ʹͳΔ w"EE/PEFͷ5SFF͸ AddComponentMenuଐੑͷ
 ύϥϝʔλΛಡΜͰߏங

  36. 5IBOLZPVGPSZPVS BUUFOUJPO