$30 off During Our Annual Pro Sale. View Details »

レビューダイアログ機能の取り組みAndroid編 / Review Dialog for Android

Hunachi
October 11, 2022

レビューダイアログ機能の取り組みAndroid編 / Review Dialog for Android

Yappli Tech Conference 2022 の発表資料です!

▽イベントページ▽
https://yappli.connpass.com/event/259001/

Hunachi

October 11, 2022
Tweet

More Decks by Hunachi

Other Decks in Technology

Transcript

  1. ϨϏϡʔμΠΞϩάػೳͷऔΓ૊Έ
    ~ Androidฤ ~
    SESSION 8

    View Slide

  2. "OESPJEΤϯδχΞ

    ۙ౻՚
    χοΫωʔϜ
    ;ͳͪ
    !@IVOBDIJ
    5XJUUFS
    झຯ
    ҰॹʹॅΜͰ͍ΔೣΛѪͰΔ͜ͱ
    ฼ߍͷ͓஡େͰٕज़ίϛϡχςΟͷࢧԉ

    %SPJE,BJHJͷӡӦϝϯόʔ
    ͦͷଞ
    ࣗݾ঺հ

    View Slide

  3. INDEX
    01
    02
    03
    04
    എܠ
    ϨϏϡʔμΠΞϩάػೳ
    AndroidͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷
    ·ͱΊ

    View Slide

  4. എܠ

    View Slide

  5. ΫϥΠΞϯτΞϓϦશମͰ

    ϨϏϡʔ͕͓໰߹ͤͷΑ͏ʹ

    ࢖ΘΕετΞϨϏϡʔฏۉ఺͕

    ௿͘ͳΔ܏޲ʹ͋ͬͨ
    ϨϏϡʔ͕௿͍ͱɺ

    μ΢ϯϩʔυ཰΍
    ݕࡧॱҐʹӨڹ͢Δ
    ʮϨϏϡʔͷฏۉ఺Λ
    ্͍͛ͨɾ૿΍͍ͨ͠ʯ

    ͱཁ๬͕͋ͬͨࡍʹ
    Ԡ͑Δ͜ͱ͕ग़དྷͳ͔ͬͨ
    എܠ

    View Slide

  6. ϨϏϡʔμΠΞϩάػೳ
    ͦ͜Ͱ։ൃ͞Εͨͷ͕

    View Slide

  7. ϨϏϡʔμΠΞϩάػೳϨϏϡʔμΠΞϩάػೳͱ͸ʁ
    ϢʔβʔʹΞϓϦ಺ͰΞϓϦͷϨϏϡʔͯ͠

    ΋Β͏ͨΊͷػೳ

    ࠓ೥ͷ݄ʹϦϦʔεࡁΈ
    ໨త͸ʮϢʔβʔʹΑΓଟ͘ͷϨϏϡʔ౤ߘػձ
    Λ࡞Δ͜ͱʯ
    ❏ ΞϓϦΛΑ͘࢖ͬͯ͘Ε͍ͯΔϢʔβʔʹ

    ରͯ͠දࣔ
    ❏ ϨϏϡʔ݁Ռ͸ɺ"QQ4UPSF΍(PPHMF
    1MBZ4UPSFʹ൓ө
    ❏ ެࣜ"1*Λ༻͍࣮ͯ૷

    "OESPJE(PPHMF1MBZ*O"QQ3FWJFX"1*

    J044,4UPSF3FWJFX$POUSPMMFS

    View Slide

  8. ϨϏϡʔμΠΞϩάػೳಋೖͨ݁͠Ռ

    View Slide

  9. Android্Ͱͷ

    ϨϏϡʔμΠΞϩάػೳͷ࣮૷

    View Slide

  10. "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷
    ❏ ΞΫςΟϒ཰Λܭଌ͢Δ
    ❏ ܭଌ͕ਖ਼֬ʹߦ͍͑ͯΔ͔ςετ͢Δ
    ΫϩʔζυϞʔυΛ࡞Δ
    ❏ μΠΞϩάΛ࡞ͬͯදࣔͤ͞Δ
    ❏ μΠΞϩάΛදࣔ͢Δ
    ❏ ಈ͍͍ͯΔ͔ςετ͢Δ
    ɹμΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    ɹ(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏

    View Slide

  11. ɹμΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷
    ❏ ΞΫςΟϒ཰Λܭଌ͢Δ
    ❏ ܭଌ͕ਖ਼֬ʹߦ͍͑ͯΔ͔ςετ͢Δ
    ΫϩʔζυϞʔυΛ࡞Δ
    ❏ μΠΞϩάΛ࡞ͬͯදࣔͤ͞Δ
    ❏ μΠΞϩάΛදࣔ͢Δ
    ❏ ಈ͍͍ͯΔ͔ςετ͢Δ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    ɹ(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏

    View Slide

  12. "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    ແҋʹμΠΞϩάΛग़ͤ͹͍͍

    ͱ͍͏Θ͚Ͱ͸ͳ͍
    ϠϓϦͰ͸৭ʑͳΞϓϦ͕͋ΔͨΊ

    ൚༻తʹ࢖͑Δࢦඪ͕ඞཁ
    ΞΫςΟϒϢʔβʔ͕ΞϓϦΛ։͍ͨ࣌ʹදࣔ

    ΞΫςΟϒϢʔβʔʹिؒʹҰఆճ਺Ҏ্ΞϓϦΛར༻ͨ͠ํ

    View Slide

  13. μΠΞϩάΛग़͢·ͰͷྲྀΕ
    ΞΫςΟϒͳ೔਺Λܭଌ
    ઃఆ৘ใͷऔಘ
    ΞΫςΟϒϢʔβʔԽ
    μΠΞϩάΛදࣔͤ͞Δ

    ϑϥάΛཱͯΔ
    ϨϏϡʔμΠΞϩάΛදࣔ
    O೔िΞΫςΟϒ ϗʔϜը໘ىಈ
    ຊ൪Ϟʔυͷ࣌ͷΈ

    ˞μΠΞϩά͕දࣔ͞ΕΔ͔Ͳ͏
    ͔͕(PPHMF೚ͤͳͨΊ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  14. μΠΞϩάΛग़͢·ͰͷྲྀΕ
    ΞΫςΟϒͳ೔਺Λܭଌ
    ઃఆ৘ใͷऔಘ
    ΞΫςΟϒϢʔβʔԽ
    μΠΞϩάΛදࣔͤ͞Δ

    ϑϥάΛཱͯΔ
    ϨϏϡʔμΠΞϩάΛදࣔ
    n೔/ि ΞΫςΟϒ ϗʔϜը໘ىಈ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    ❏ ϨϏϡʔμΠΞϩά͕ઃఆ͞ΕͨޙʹɺॳΊͯ
    ΞϓϦ͕ىಈ͞Εͨ೔ΛिؒͷΧ΢ϯτΛ͢
    Δج४ͷ༵೔ͱ͢Δ
    ❏ ج४ͷ༵೔ʙ࣍ճͷج४ͷ༵೔ͷલ೔·Ͱͷ
    िؒͰԿ೔ΞΫςΟϒʹͳ͔ͬͨΧ΢ϯτ
    ❏ ΞΫςΟϒͱ൑ఆ͢ΔλΠϛϯά
    ❏ ΞϓϦىಈ࣌
    ❏ όοΫάϥ΢ϯυ͔Β෮ؼ࣌
    ೔݄Րਫ໦ۚ౔

    View Slide

  15. μΠΞϩάΛग़͢·ͰͷྲྀΕ
    ΞΫςΟϒͳ೔਺Λܭଌ
    ઃఆ৘ใͷऔಘ
    ΞΫςΟϒϢʔβʔԽ
    μΠΞϩάΛදࣔͤ͞Δ

    ϑϥάΛཱͯΔ
    ϨϏϡʔμΠΞϩάΛදࣔ
    O೔िΞΫςΟϒ ϗʔϜը໘ىಈ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    ❏ ΞΫςΟϒճ਺͸୺຤ଆͰอଘ
    ❏ αʔό͔Βऔಘ͢Δઃఆ৘ใ
    ❏ ϨϏϡʔμΠΞϩάͷ0/0''
    ❏ Կ೔िͰΞΫςΟϒϢʔβʔͱ͢Δ͔
    ❏ ද͍ࣔͨ͠μΠΞϩάͷϞʔυ
    ❏ ΫϩʔζυϞʔυ
    ❏ ຊ൪ʢ(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏ʣϞʔ
    υ

    View Slide

  16. μΠΞϩάΛग़͢·ͰͷྲྀΕ
    ΞΫςΟϒͳ೔਺Λܭଌ
    ઃఆ৘ใͷऔಘ
    ΞΫςΟϒϢʔβʔԽ
    μΠΞϩάΛදࣔͤ͞Δ

    ϑϥάΛཱͯΔ
    ϨϏϡʔμΠΞϩάΛදࣔ
    O೔िΞΫςΟϒ ϗʔϜը໘ىಈ
    ຊ൪Ϟʔυͷ࣌ͷΈ

    ˞μΠΞϩά͕දࣔ͞ΕΔ͔Ͳ͏
    ͔͕(PPHMF೚ͤͳͨΊ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  17. μΠΞϩάΛग़͢·ͰͷྲྀΕ
    ΞΫςΟϒͳ೔਺Λܭଌ


    ઃఆ৘ใͷऔಘ
    ΞΫςΟϒϢʔβʔԽ
    μΠΞϩάΛදࣔͤ͞Δ

    ϑϥάΛཱͯΔ
    ϨϏϡʔμΠΞϩάΛදࣔ
    O೔िΞΫςΟϒ ϗʔϜը໘ىಈ
    ຊ൪Ϟʔυͷ࣌ͷΈ

    ˞μΠΞϩά͕දࣔ͞ΕΔ͔Ͳ͏
    ͔͕(PPHMF೚ͤͳͨΊ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    ❏ μΠΞϩάΛදࣔͤ͞Δϑϥά΋
    ୺຤ଆͰอଘ

    View Slide

  18. μΠΞϩάΛग़͢·ͰͷྲྀΕ
    ΞΫςΟϒͳ೔਺Λܭଌ
    ઃఆ৘ใͷऔಘ
    ΞΫςΟϒϢʔβʔԽ
    μΠΞϩάΛදࣔͤ͞Δ

    ϑϥάΛཱͯΔ
    ϨϏϡʔμΠΞϩάΛදࣔ
    n೔/ि ΞΫςΟϒ ϗʔϜը໘ىಈ
    ຊ൪Ϟʔυͷ࣌ͷΈ

    ˞μΠΞϩά͕දࣔ͞ΕΔ͔Ͳ͏
    ͔͕(PPHMF೚ͤͳͨΊ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    ❏ ϗʔϜը໘ىಈ࣌ʹຖճϑϥά͕
    ཱ͍ͬͯΔ͔֬ೝ
    ❏ ϑϥάཱ͕͍ͬͯΔ৔߹͸

    μΠΞϩάΛදࣔ
    ❏ μΠΞϩάදࣔޙɺ

    อଘ͍ͯͨ͠৘ใΛॳظԽ

    View Slide

  19. μΠΞϩάΛग़͢·ͰͷྲྀΕ
    ΞΫςΟϒͳ೔਺Λܭଌ
    ઃఆ৘ใͷऔಘ
    ΞΫςΟϒϢʔβʔԽ
    μΠΞϩάΛදࣔͤ͞Δ

    ϑϥάΛཱͯΔ
    ϨϏϡʔμΠΞϩάΛදࣔ
    O೔िΞΫςΟϒ ϗʔϜը໘ىಈ
    ຊ൪Ϟʔυͷ࣌ͷΈ

    ˞μΠΞϩά͕දࣔ͞ΕΔ͔Ͳ͏
    ͔͕(PPHMF೚ͤͳͨΊ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  20. อଘ͓͖͍ͯͨ͠σʔλ͸

    %BUB4UPSFΛ࢖͍อଘ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  21. อଘ͓͖͍ͯͨ͠σʔλ͸%BUB4UPSFΛ࢖͍อଘ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  22. อଘ͓͖͍ͯͨ͠σʔλ͸%BUB4UPSFΛ࢖͍อଘ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  23. "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  24. Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  25. ɾΧ΢ϯτΛ1ʹ


    ɾΧ΢ϯτελʔτ೔
    Λߋ৽
    ΞΫςΟϒ཰Λܭଌ͢Δ
    6TF$BTFͰΧ΢ϯτΛ૿΍͔͢Ͳ͏͔Λ൑அ͢ΔίʔυΛॻ͘
    ΞΫςΟϒʹͳͬͨ
    ͢Ͱʹϑϥά͕

    ཱ͍ͬͯΔ
    Կ΋͠ͳ͍
    ࠓ೔ͷ෼Λ


    Χ΢ϯτ͠

    ऴ͍͑ͯΔ
    લճͷΧ΢ϯτ


    ελʔτ೔͔Β1िؒ

    Ҏ্ཱ͍ͬͯΔ
    ϑϥάΛཱͯΔ

    Χ΢ϯτ਺Λ

    ௒աͨ͠
    Χ΢ϯτΛ1૿΍͢
    ϑϥάΛཱͯΔ
    Manager
    Repository
    UseCase
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  26. ܭଌ͕ਖ਼֬ʹߦ͍͑ͯΔ͔ςετ͢Δ
    ❏ 6TF$BTFʹର͢ΔςετΛॻ͍ͨ
    ❏ ߦఔ౓ͷςετίʔυྔ
    ❏ ςετ͕೔Ͱ͸Ͱ͖ͳ͍෦෼΋͋ΔͨΊɺ2"͍ͯͨͩ͘͠લʹͰ͖ΔݶΓόά͕ͳ͍ঢ়ଶʹ͔ͨͬͨ͠
    ❏ ςετ಺༰
    ❏ τϦΨʔͷछྨ͕มߋ͞Εͨ࣌ʹॳظԽ͕͞Ε͍ͯΔ͔
    ❏ μΠΞϩάΛදࣔͤ͞Δϑϥά͕͢Ͱʹཱ͍ͬͯΔ৔߹ʹߋ৽͕͔͔Βͳ͍͔
    ❏ ि಄͔ΒिؒҎ্͕ܦա͍ͯͨ͠ʢिؒ೔ʣ
    ❏ ि಄͔ΒिؒҎ্͕ܦա͍ͯͨ͠ʢिؒ೔ʣ
    ❏ ि಄͔ΒिؒҎ಺ͰલճΞΫςΟϒʹͳ͔ͬͯΒ೔Ҏ্ܦաʢઃఆͨ͠೔਺Ҏ಺ʣ
    ❏ ि಄͔ΒिؒҎ಺ͰલճΞΫςΟϒʹͳ͔ͬͯΒ೔Ҏ্ܦաʢઃఆͨ͠೔਺ʹ౸ୡʣ
    ❏ ि಄͔ΒिؒҎ಺ͰલճΞΫςΟϒʹͳͬͨ೔ͱಉ͡೔ʹΞΫςΟϒʹͳͬͨ

    ͳͲ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  27. ΞΫςΟϒʹͳͬͨλΠϛϯάΛ6TF$BTFʹ஌ΒͤΔ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    // Manager಺ͷίʔυ


    /**ΞϓϦىಈ࣌ or όοΫάϥ΢ϯυ͔Βͷ෮ؼ࣌ʹ࣮ߦ͢Δॲཧ */


    fun onApplicationEnterForeground(application: YLApplication) {


    application.runOnMainActivity {


    it.lifecycleScope.launchWhenResumed {


    // ϨϏϡʔμΠΞϩά༻ʹΞΫςΟϒ਺ΛΧ΢ϯτ͢Δ


    useCase.updateActiveTriggerStatus()


    ɹɹ// ϨϏϡʔμΠΞϩάͷදࣔ


    showReviewDialogIfNeed(it)


    }


    }


    }
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  28. ΞΫςΟϒʹͳͬͨλΠϛϯάΛ6TF$BTFʹ஌ΒͤΔ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  29. Manager
    Activity

    Application
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷μΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ

    View Slide

  30. ΫϩʔζυϞʔυΛ࡞Δ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷
    ❏ ΞΫςΟϒ཰Λܭଌ͢Δ
    ❏ ܭଌ͕ਖ਼֬ʹߦ͍͑ͯΔ͔ςετ͢Δ
    ❏ μΠΞϩάΛ࡞ͬͯදࣔͤ͞Δ
    ❏ μΠΞϩάΛදࣔ͢Δ
    ❏ ಈ͍͍ͯΔ͔ςετ͢Δ
    ɹμΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    ɹ(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏

    View Slide

  31. ྑ͍ޮՌ͕ग़Δͷ͔Θ͔Βͣ

    ΫϥΠΞϯτʹקΊΒΕͳ͍
    ΫϩʔζυϞʔυΛ࡞੒
    ❏ μΠΞϩά͸৽ͨʹ࡞੒
    ❏ ެࣜ"1*͸࢖༻͠ͳ͍
    ❏ ϨϏϡʔ݁Ռ͸ετΞͷϨ
    Ϗϡʔʹ൓ө͞Εͳ͍
    ❏ ϨϏϡʔ݁Ռ͸ࣾ಺ͷαʔ
    όʹอଘ͠෼ੳ
    ˞ϨϏϡʔμΠΞϩάػೳͷಋ
    ೖʹࡍͯ͠ɺॳظௐࠪͷͨΊʹ
    ࣮૷ɻݱࡏ͸࢖༻͍ͯ͠ͳ͍ɻ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷ΫϩʔζυϞʔυΛ࡞Δ

    View Slide

  32. "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷
    ❏ ΞΫςΟϒ཰Λܭଌ͢Δ
    ❏ ܭଌ͕ਖ਼֬ʹߦ͍͑ͯΔ͔ςετ͢Δ
    ΫϩʔζυϞʔυΛ࡞Δ
    ❏ μΠΞϩάΛ࡞ͬͯදࣔͤ͞Δ
    ❏ μΠΞϩάΛදࣔ͢Δ
    ❏ ಈ͍͍ͯΔ͔ςετ͢Δ
    ɹμΠΞϩάΛදࣔͤ͞ΔϑϥάΛ؅ཧ͢Δ
    Manager
    Activity
    Repository
    DataSource
    UseCase
    In-App-Review


    API
    TestDialog
    ɹ(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏

    View Slide

  33. (PPHMF1MBZ*O"QQ3FWJFX"1*

    ❏ ϢʔβʔΛΞϓϦ͔Β཭Εͤͣ͞ʹ1MBZετΞͷධՁͱϨϏϡʔΛૹ৴͢ΔΑ͏ଅ͢͜ͱ͕Ͱ͖Δ"1*
    ❏ "OESPJEʢ"1*ϨϕϧʣҎ߱ɺ(PPHMF1MBZετΞ͕Πϯετʔϧ͞Ε͍ͯΔ୺຤Ͱ࢖༻Մೳ
    IUUQTEFWFMPQFSBOESPJEDPNHVJEFQMBZDPSFJOBQQSFWJFX'JHVSFࢀর
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏
    ࢖༻ํ๏΍ઃܭͷΨΠυϥΠϯ

    ʹै͏ඞཁ͕͋Δ

    μΠΞϩάͷՃ޻΍ɺμΠΞϩάΛग़͢લʹྑ͍
    ධՁΛଅ͢Α͏ͳڍಈΛ͢Δͷ͸/(
    Ϣʔβʔ͕ϨϏϡʔͯ͘͠Ε͔ͨͲ͏͔Λ

    ΞϓϦଆͰ஌Δ͜ͱ͸Ͱ͖ͳ͍
    μΠΞϩά͕දࣔ͞ΕΔ͔Ͳ͏͔͸

    ΞϓϦଆͰ͸൑அͰ͖ͳ͍ͷͰ

    දࣔ͞Εͳͯ͘΋໰୊ͳ͍Α͏ͳ෦෼Ͱ

    දࣔͤ͞Δඞཁ͕͋Δ

    View Slide

  34. μΠΞϩάΛදࣔ͢Δʢຊ൪Ϟʔυʣ
    σόοά࣌ͱຊ൪࣌Ͱ.BOBHFSΛม͑Δ

    'BLF3FWJFX.BOBHFSΛ࢖͏ͱ
    SFRVFTU3FWJFX'MPXͰৗʹِͷ
    3FWJFX*OGPΦϒδΣΫτΛఏڙͯ͠੒ޭ
    εςʔλεΛฦͯ͘͠ΕΔ
    Manager
    Activity
    UseCase
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏

    View Slide

  35. ಈ͍͍ͯΔ͔ςετ͢Δ
    ❏ σόοά࣌
    ❏ ઌఔͷίʔυͰॻ͍ͨΑ͏ʹ-PHΛग़ྗ͠੒ޭ͍ͯ͠Δ͔൑அ͢Δ
    ❏ ຊ൪؀ڥ࣌
    ❏ (PHHMF1MBZͷ಺෦ΞϓϦڞ༗Λ࢖ͬͨ
    ❏ ϨϏϡʔ͸ૹ৴Ͱ͖ͳ͍͕ɺμΠΞϩά͸දࣔ͞ΕΔ
    "OESPJEͰͷϨϏϡʔμΠΞϩάػೳͷ࣮૷(PPHMF1MBZ*O"QQ3FWJFX"1*Λ࢖͏

    View Slide

  36. ·ͱΊ

    View Slide

  37. ࠓճ͸ɺ"OESPJEͷϨϏϡʔμΠΞϩάͷϠϓϦͰͷ࣮૷ʹ͍ͭͯ঺հ͠·ͨ͠ɻ

    ϨϏϡʔμΠΞϩάΛ௨ͯ͡ϠϓϦ੡ΞϓϦΛѪ༻ͯ͘͠Ε͍ͯΔϢʔβʔ͔Βͷ੠Λ஌Δ͜ͱ͕Ͱ͖ΔΑ
    ͏ʹ🎉
    ϓϩδΣΫτΛ௨ֶͯ͠΂ͨ͜ͱ
    ❏ ࣗ෼͕࣮૷ͨ͠΋ͷͰޮՌ͕ग़Δͱخ͍͠
    ❏ λεΫͷ੾Γ෼͚΍޻਺؅ཧͷܦݧ͕Ͱ͖ͨ
    ❏ ςετΛॻ͘͜ͱ͸ɺόάΛݮΒ͚ͩ͢Ͱͳ͘ɺΠϯγσϯτݪҼͷௐࠪʹ΋໾ʹཱͭ
    ·ͱΊ

    View Slide