Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ReactiveProperty で Xamarin アプリの作り方が変わった

Nobuhiro Ito
January 28, 2017

ReactiveProperty で Xamarin アプリの作り方が変わった

2017/01/28(Sat) Japan Xamarin User Group Conference #22

Nobuhiro Ito

January 28, 2017
Tweet

More Decks by Nobuhiro Ito

Other Decks in Programming

Transcript

  1. 3FBDUJWF1SPQFSUZͰ
    9BNBSJOΞϓϦͷ࡞Γํ͕มΘͬͨ
    /PCVIJSP*UP

    View Slide

  2. !JTFFCJ
    /PCVIJSP*UP
    'FOSJS*OD
    .PCJMF"QQMJDBUJPO&OHJOFFS
    IUUQJTFFCJIBUFOBCMPHDPN

    View Slide

  3. ೥݄
    େࡕ͔Β౦ژసۈ
    ౦ژΤϯδχΞνʔ
    ϜͷͱΓ·ͱΊ

    View Slide

  4. ͱ͜ΖͰ

    View Slide

  5. ๻Β͸աڈ
    .WWN$SPTTʹ

    ྗΛೖΕ͍ͯͨ

    View Slide

  6. IUUQTTQFBLFSEFDLDPNJTFFCJYBNBSJOTUVEJPEFIB[JNFSVTUPSZCPBSEQMVTBVUPMBZPVU

    View Slide

  7. IUUQTTQFBLFSEFDLDPNJTFFCJYBNBSJOQMVTNWWNDSPTTEFUJNVLBJGBZBUVUFNJUB

    View Slide

  8. View Slide

  9. ೥͸
    େ͖ͳมԽͷ͋ͬͨ೥ͩͬͨ

    View Slide

  10. 9BNBSJOങऩ

    View Slide

  11. 9BNBSJOແঈԽ
    ˞ͨͩ͠اۀ͸7JTVBM4UVEJP͔.4%/ͷ4VCTDSJQUJPO͕ඞཁ

    View Slide

  12. ࣌୅͕
    9BNBSJOʹ௥͍͍ͭͨ
    w ࣄྫ͕૿͑ͨ
    w ஫໨౓্͕͕ͬͨ
    w ରԠ͢ΔϑϨʔϜϫʔΫ΋૿͑ͨ

    View Slide

  13. ωΠςΟϒք۾Ͱ΋
    ৽ͨͳಈ͖͕

    View Slide

  14. IUUQTUIMJHIUDPNCMPHVODMFCPCUIFDMFBOBSDIJUFDUVSFIUNM IUUQTGBDFCPPLHJUIVCJPqVYEPDTJOEFQUIPWFSWJFXIUNM

    View Slide

  15. $MFBO"SDIJUFDUVSF
    3FEVY 'MVY
    ΞʔΩςΫνϟϒʔϜ ʁ

    View Slide

  16. ౰࣌.WWN$SPTT͸
    ϕετͳબ୒ͩͬͨ
    w /V(FUೖΕΔ͚ͩͰ੔͏
    w Ұ௨Γඞཁͳػೳ͕ἧ͏
    w ৘ใ͕ গͳ͍தͰ΋
    ଟ͍
    ˞೥

    View Slide

  17. ೥ͷબ୒͕
    ೥ͷࠓͰ΋
    ࠷దͳΘ͚Ͱ͸ͳ͍

    View Slide

  18. .77.͚ͩͰ͸
    $PSF͕
    ਏ͘ͳΔ໰୊Λ
    ղܾͰ͖ͳ͔ͬͨ

    View Slide

  19. 3FBDUJWF1SPQFSUZͰ

    $MFBO"SDIJUFDUVSFϕʔεͷ
    ৽ઃܭʹऔΓ૊Μͩ࿩

    View Slide

  20. $MFBO"SDIJUFDUVSF
    w υϝΠϯۦಈ։ൃ %%%
    ͳͲΛҙࣝͯ͠ɺ

    ϏδωεϩδοΫΛ૚ʹ෼͚ͯ໾ׂͱ੹೚Λ෼ׂ͢Δख๏
    w ʮ.77.ͰϞσϧͱϏϡʔͷ੹຿Λʙʯͱ͍͏࿩͸ଟ͔͕ͬͨɺ

    ʮ͡Ό͋ͦͷϞσϧͲͳ͍͢ΜͶΜʯͱ͍͏෦෼ʹର͢ΔղͷҰͭ

    ͱೝ͍ࣝͯ͠Δ

    w .77.͚ͩͰ͸$PSF͕ਏ͘ͳΔ໰୊ΛղফͰ͖ͳ͍

    View Slide

  21. 7JFX
    1SFTFOUFS
    6TF$BTF 5SBOTMBUPS .PEFM
    %BUB4UPSF &OUJUZ
    3FQPTJUPSZ
    IUUQRJJUBDPNLPVUBMPVJUFNTBGDGBEFDED

    View Slide

  22. 7JFX
    1SFTFOUFS
    6TF$BTF
    5SBOTMBUPS
    .PEFM
    %BUB4UPSF
    &OUJUZ
    3FQPTJUPSZ
    IUUQRJJUBDPNLPVUBMPVJUFNTBGDGBEFDED
    ը໘දࣔɾΠϕϯτͷ1SFTFOUFS΁ͷ௨஌
    7JFXͱ6TF$BTFͷؒͰͷσʔλ΍ΓͱΓ
    ඞཁͳϩδοΫΛॻ͘ͱ͜ΖɻσʔλͷऔಘͳͲɻ
    3FQPTJUPSZ͔Βग़͖ͯͨ&OUJUZΛ.PEFMʹม׵͢Δ
    7JFXͰ࢖༻͢ΔͨΊʹ࠷దԽͨ͠σʔλϞσϧ
    υϝΠϯ૚ͱσʔλ૚ͷ*'
    6TF$BTFͰ࢖༻͢Δσʔλͷ$36%ॲཧΛ୲౰
    σʔλΛ࣮ࡍʹऔಘߋ৽͢Δ
    σʔλ૚Ͱ࢖༻͢ΔσʔλϞσϧ

    View Slide

  23. ͳΜ͔ਏ͘Ͷʁ

    View Slide

  24. w Ϋϥε͕ଟ͗͢ɻ
    w .PEFMͱ&OUJUZΘ͟Θ͟ม׵ͨ͘͠ͳ͍
    w ஌ͬͯΔ໊લʹ͍ͨ͠
    w 1SFTFOUFSͬͯ.WWN$SPTTతʹ͸7JFX.PEFM͡ΌΜ͔
    w ը໘ʹ͔͔ΘΒͣมΘΔ஋ͷίϯτϩʔϧΛߟ͍͑ͨ
    w Ϣʔβʔͷૢ࡞ͷ֎Ͱ஋͕มΘͬͨΓ͢Δཁ݅͋Γ

    View Slide

  25. ॏཁͳͷ͸੍ޚͷํ޲ΛҰఆʹ͢Δ͜ͱ
    ΫϥεΛ෼ׂ͠·͘Δͷ͸ຊ࣭͡Όͳ͍͸ͣ

    View Slide

  26. 7JFX
    1SFTFOUFS
    6TF$BTF 5SBOTMBUPS .PEFM
    %BUB4UPSF &OUJUZ
    3FQPTJUPSZ
    ࠓճΘ͟Θ͟ม׵͢Δ
    ඞཁ͸ͳͦ͞͏

    View Slide

  27. 7JFX
    1SFTFOUFS
    6TF$BTF
    %BUB4UPSF &OUJUZ
    3FQPTJUPSZ
    4FSWJDF
    όοΫάϥ΢ϯυ͔Β஋Λม͑Δॲཧ
    )551ϙʔϦϯάɺ8FC4PDLFUͰͷมԽ

    %BUB4UPSFΛ௚઀ૢ࡞͢Δ͜ͱʹͨ͠
    ˞"OESPJEଆͰ*OUFOU4FSWJDFͱ͔ͱ͔ͿΔ͔Β8PSLFSʹ͢΂͖ͩͬͨ

    View Slide

  28. 7JFX
    7JFX.PEFM
    4DFOF
    %BUB4UPSF .PEFM
    3FQPTJUPSZ
    4FSWJDF
    ͜Ε·Ͱݟ֮͑ͷ͋Δ໊લʹม͑ͨ
    ɾ1SFTFOUFS͸͜Ε·Ͱͷ7JFX.PEFM૬౰ͷಈ͖
    ɾ&OUJUZ͸͜Ε·Ͱͷ.PEFM૬౰ͷಈ͖
    ɹ 7JFXҎ্΋͜ΕΛͦͷ··ར༻͢Δ

    ɾ6TF$BTF͸࢖͍͍ͬͯϫʔυ͔ͪΐͬͱࣗ৴ͳ͔ͬͨ
    ɹͷͰɺ৽͘͠4DFOF໊ͬͯલΛ͚ͭͨ

    View Slide

  29. 7JFX
    7JFX.PEFM
    4DFOF
    %BUB4UPSF .PEFM
    3FQPTJUPSZ
    4FSWJDF
    ͜ͷ෦෼͕1$-

    View Slide

  30. ͳΜͱ͔
    ಄ʹೖ͖ͬͯͦ͏

    View Slide

  31. ૚ͷؒͷ઀ଓ͸ʁ

    View Slide

  32. શ෦3YͰܨ͝͏ʂ

    View Slide

  33. 3FBDUJWF1SPQFSUZ
    w ʮ3YͰѻ͑ΔϓϩύςΟʯΛ࡞ΔϥΠϒϥϦ
    w ͢΂ͯ*0CTFSWBCMFͱͯ͠ͱΒ͑Δ͜ͱ͕Ͱ͖Δ
    w *0CTFSWBCMF͔Βม׵ͯ͠࡞Δ͜ͱ΋Ͱ͖Δ
    w σʔλόΠϯυʹରԠ͍ͯ͠Δ

    View Slide

  34. 7JFX
    7JFX.PEFM
    4DFOF
    %BUB4UPSF .PEFM
    3FQPTJUPSZ
    4FSWJDF
    %BUB4UPSFΛ࠷Լ૚ͱͯ͠
    Լ૚ͷ3FBDUJWF1SPQFSUZΛ
    ্૚͔Β4VCTDSJCF͢Δ
    ͜ͷਤͰ͸
    4FSWJDF͚ͩ͸ٯͳͷͰ஫ҙ

    View Slide

  35. ͳͥ*0CTFSWBCMF5

    Ͱ͸ͳ͍ͷ͔
    w ʮϓϩύςΟʯͱ͍͏ϝλϑΝ͕Θ͔Γ΍͍͢
    w *0CTFSWBCMF5ͷੜ੒͢ΔΑΓΘ͔ΓΑ͍
    w ͍͟ͱͳͬͨΒ7BMVFʹ୅ೖ͢Ε͹ྑ͍
    w %BUB4UPSF͸7BMVFΛ௚઀͍࣋ͬͯΔ
    w 3FQPTJUPSZҎ্͸3YΫΤϦͰऔΓѻ͏

    View Slide

  36. ࣮ྫ
    IUUQTHJUIVCDPNJTFFCJ31$MFBO"SDIJUFDUVSF%FNP

    View Slide

  37. ͦͷଞͷϙΠϯτ

    View Slide

  38. ΞϓϦͷॳظԽ
    w 1$-Λ"QQΫϥεΛಠࣗఆٛͯ͠ɺ

    *OJUJBMJ[FΛΤϯτϦϙΠϯτͰݺͿ
    w *6OJUZ$POUBJOFS
    w *4FSWJDF$POUBJOFS .WWN-JHIU༝དྷ

    w *7JFX.PEFM-PDBUPS ಠࣗఆٛ

    View Slide

  39. ը໘ભҠμΠΞϩά
    w .77.-JHIU5PPMLJUͷ

    /BWJHBUJPO4FSWJDF %JBMPH4FSWJDFΛ࢖͏
    w ݹͯ͘Πέͯͳ͍ͷͰιʔεऔΓࠐΜͰ௚͢

    ࠓ೔ͷྫͰ͸ͦͷ··࢖͍·ͨ͠

    View Slide

  40. "OESPJEͷ"DUJWJUZ෮ؼ໰୊
    w όοΫάϥ΢ϯυʹૹΒΕͨޙɺଞͷΞϓϦ͕͋Δఔ౓࢖ΘΕͨͱ͖ʹ
    ൃੜɺ

    4BWFE*OTUBODF4UBUF͔Β෮ؼͤ͞Δඞཁ͕͋Δ
    w ੜଘظ͕ؒʮϓϩηε࣮ߦதʯͷ஋Λͭͷ%BUB4UPSFʹݻΊΔ
    w ͦΕҎ֎ͷॴʹফ͑ͯࠔΔঢ়ଶΛ࣋ͨͳ͍ʂ
    w 0O4BWF*OTUBODF4UBUFΛτϦΨʔʹ%BUB4UPSF͝ͱશ෦อଘʂ
    w "QQ4UBUF4FSWJDF͕୲౰

    View Slide

  41. ͸·ΓϙΠϯτ
    w 'VODͷத͔Βଞͷ3FBDUJWF1SPQFSUZΛࢀর͠ͳ͍
    w εϨουͷ࣮ߦॱͱ͔Ͱঢ়ଶ͕Ұఆ͠ͳ͍
    w $PNCJOF-BUFTUͰ஋Λྲྀ͢͜ͱ
    w ॥؀ࢀরʹ஫ҙʂ
    w 8FBL3FGFSFODF5େࣄ

    View Slide

  42. ໰୊఺
    w /BWJHBUJPO4FSWJDFͷͨΊ͚ͩʹ.77.-JHIU5PPMLJUೖΕͯΔͷແବ
    w /BWJHBUJPO4FSWJDF͚ͩ੾Γग़ͨ͠DPPMͳ΍ͭཉ͍͠
    w #BTF7JFX$POUSPMMFS#BTF"DUJWJUZΛ૴Ε͍ͯͳ͍
    w ҋΛͨΊࠐΈ΍͘͢ͳΔͷͰΑΖ͘͠ͳ͍
    w 6OJUZΦϫίϯઆ
    w OVJUT͞ΜͷCMPHࢀর

    View Slide

  43. ·ͱΊ

    View Slide

  44. ࠷ۙࢼͯ͠Δ

    9BNBSJO/BUJWF
    ։ൃख๏Λ঺հ͠·ͨ͠

    View Slide

  45. 7JFX
    7JFX.PEFM
    4DFOF
    %BUB4UPSF .PEFM
    3FQPTJUPSZ
    4FSWJDF

    View Slide

  46. 9BNBSJOΛ
    औΓר͘ঢ়گ͸
    େ͖͘มΘͬͨ

    View Slide

  47. ৗʹྑ͍ํ๏͸
    มΘ͍ͬͯΔ

    View Slide

  48. ͜ͷํ๏͕
    ͍ͭ·Ͱ΋
    ࠷ળͰ͸ͳ͍

    View Slide

  49. Ξϯςφ
    ͸Γ͚ͭͮ·͠ΐ͏

    View Slide

  50. ͦ͏͍͑͹

    View Slide

  51. ͦͷଞࠓ೥ͷτϐοΫ
    4XJGUϥΠϒϥϦͷऔΓࠐΈ
    ը૾෇͖ϓογϡ &YUFOTJPO
    ˠҋ
    ωΠςΟϒόΠϯσΟϯά΋Γ΋Γ
    ແཧ໼ཧ'BCSJD࢖͏
    +FOLJOTͷͨΊʹDTQSPKʹखΛ͚ͭΔ

    View Slide

  52. ࠙਌ձͰ

    View Slide