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

Navigation Component

Navigation Component

Presented at CA.apk #6 (2018.05.22)

satsukies

May 22, 2018
Tweet

More Decks by satsukies

Other Decks in Technology

Transcript

  1. /BWJHBUJPO$PNQPOFOU
    !TBUVTLJFT
    $"BQL(PPHMF*0ใࠂձ

    View Slide

  2. 8IPJTʁ
    !TBUTVLJFT
    ͖ͭ͞
    w "CFNB57Ͱ"OESPJE։ൃ΍ͬͯ·͢
    w εϚϗ1$ͦͷଞిࢠػثͷΦλΫ
    w ΏΔΩϟϯ˚͸͍͍ͧ

    View Slide

  3. "OESPJE+FUQBDL
    w ૉૣ͘ɺ؆୯ʹΞϓϦΛ։ൃ͢ΔͨΊͷπʔϧ΍ϥΠϒϥϦ܈ͷ૯শ
    w lVOCVOEMFEzͳঢ়ଶͰఏڙ

    ɹʹඞཁͳ΋ͷΛɺ޷͖ͳλΠϛϯάͰ࠾༻Ͱ͖Δ

    View Slide

  4. 5PEBZ`TUPQJD
    /BWJHBUJPO

    View Slide

  5. 5-%3
    w "OESPJE+FUQBDLͷ̍ػೳͱͯ͠/BWJHBUJPO͕৽͘͠ఏڙ
    w /BWJHBUJPO͸ը໘ભҠͷ࣮૷Λ؆୯͔ͭૉૣ͘Ͱ͖ΔΑ͏ʹͳΔ
    w /BWJHBUJPOͷΨΠυϥΠϯͱͯͭ͠ͷݪଇ͕ڍ͛ΒΕ͍ͯΔ
    w ࠓޙ͸ɺ୯ҰΞΫςΟϏςΟͳߏ੒ʹ͍ͯ͘͠΂͖ͳͷ͔΋

    View Slide

  6. 8IBU`TUIF/BWJHBUJPO
    w J04ΞϓϦ։ൃͰͷ4UPSZCPBSEͷҰ෦෼Έ͍ͨͳΠϝʔδ
    w ը໘ભҠʹؔ͢Δ෦෼͚͕ͩ༗ޮʹͳͬͯΔΑ͏ͳײ͡ʁ

    View Slide

  7. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ
    w ࢹ֮తͳπʔϧ͕༻ҙ
    w ্هͷఆٛΛ(6*Ͱ௚ײతʹ࣮ߦ
    w ఆ͕ٛࢹ֮Խ͞ΕΔͷͰɺҰ໨Ͱը໘ؒͷભҠؔ܎͕֬ೝՄೳʹ

    View Slide

  8. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    app:startDestination="@+id/launcher_home">
    android:id="@+id/launcher_home"
    android:name="com.example.android.codelabs.navigation.MainFragment"
    android:label="@string/home"
    tools:layout="@layout/main_fragment" />
    android:id="@+id/main_activity"
    android:name="com.example.android.codelabs.navigation.MainActivity"
    android:label="MainActivity" />

    View Slide

  9. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    android:id="@+id/next_action"
    app:destination="@+id/flow_step_one"
    app:enterAnim="@anim/slide_in_right"
    app:exitAnim="@anim/slide_out_left"
    app:popEnterAnim="@anim/slide_in_left"
    app:popExitAnim="@anim/slide_out_right" />

    View Slide

  10. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU 'SBHNFOU 'SBHNFOU
    ىಈ
    ΞʔςΟετ
    બ୒ ΞϧόϜબ୒

    View Slide

  11. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU
    'SBHNFOU
    'SBHNFOU

    View Slide

  12. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU 'SBHNFOU 'SBHNFOU
    ىಈ
    ΞʔςΟετ
    બ୒ ΞϧόϜબ୒
    %FFQ-JOLىಈ
    IUUQIPHFDPNBSUJTUYYYZZZ

    View Slide

  13. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU
    'SBHNFOU
    'SBHNFOU
    IUUQIPHFDPNBSUJTUYYYZZZ
    όοΫελοΫʹը໘͕
    ੵ·Εͨঢ়ଶʹͳΒͳ͍ʂ

    View Slide

  14. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU
    IUUQIPHFDPNBSUJTUYYYZZZ
    IUUQIPHFDPN

    View Slide

  15. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU
    'SBHNFOU
    IUUQIPHFDPNBSUJTUYYYZZZ
    IUUQIPHFDPNBSUJTUYYY

    View Slide

  16. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU
    'SBHNFOU
    'SBHNFOU
    IUUQIPHFDPNBSUJTUYYYZZZ
    TUBSU"DUJWJUJFT

    'SBHNFOU5SBOTBDUJPO

    View Slide

  17. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    'SBHNFOU
    'SBHNFOU
    'SBHNFOU
    IUUQIPHFDPNBSUJTUYYYZZZ
    TUBSU"DUJWJUJFT

    'SBHNFOU5SBOTBDUJPO
    /BWJHBUJPOΛ࢖ͬͯ
    ը໘ભҠΛߏங͢Ε͹
    ಉ౳ͷ͜ͱ͕؆୯ʹ࣮ݱՄೳ

    View Slide

  18. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ
    w 'SBHNFOUʹॳظ஋Λ౉͍ͨ࣌͠ɺ#VOEMFΛྑ͘࢖͏
    val args = Bundle()
    args.putInt("artistId", 123456)
    val artistId =
    arguments?.getInt("artistId")
    ֨ೲ࣌ͱผͷܕͰΞΫηε͠Α͏ͱ͢Δ͜ͱ΋Մೳ
    ʹܕ҆શ͡Όͳ͍

    View Slide

  19. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ
    android:id="@+id/flow_step_one"
    android:name="com.example.android.codelabs.navigation.FlowStepFragment"
    tools:layout="@layout/flow_step_one_fragment"
    >
    android:name="artistId"
    android:defaultValue="hoge"
    app:type=“string"
    />

    View Slide

  20. public class FlowStepFragmentArgs {
    private String artistId = "hoge";
    private FlowStepFragmentArgs() {
    }
    public static FlowStepFragmentArgs fromBundle(Bundle bundle) {
    FlowStepFragmentArgs result = new FlowStepFragmentArgs();
    if (bundle.containsKey("artistId")) {
    result.artistId = bundle.getString("artistId");
    }
    return result;
    }
    public String getArtistId() {
    return artistId;
    }
    public Bundle toBundle() {
    Bundle __outBundle = new Bundle();
    __outBundle.putString("artistId", this.artistId);
    return __outBundle;
    }
    ...

    View Slide

  21. public static class Builder {
    private String artistId = "hoge";
    public Builder(FlowStepFragmentArgs original) {
    this.artistId = original.artistId;
    }
    public Builder() {}
    public FlowStepFragmentArgs build() {
    FlowStepFragmentArgs result = new FlowStepFragmentArgs();
    result.artistId = this.artistId;
    return result;
    }
    public Builder setArtistId(String artistId) {
    this.artistId = artistId;
    return this;
    }
    public String getArtistId() { return artistId; }
    }

    View Slide

  22. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ
    FlowStepFragmentArgs.Builder()
    .setArtistId("123456")
    .build()
    .toBundle()
    val artistId = arguments?.let {
    val safeArgs =
    FlowStepFragmentArgs.fromBundle(it)
    safeArgs.artistId
    }
    UZQFTBGFʹҾ਺ܦ༝Ͱ΍ΓͱΓ͕Մೳ

    View Slide

  23. 8IBU`TUIF/BWJHBUJPO
    w ࢹ֮తͳπʔϧ͕༻ҙ

    View Slide

  24. 8IBU`TUIF/BWJHBUJPO
    w ࢹ֮తͳπʔϧ͕༻ҙ
    w ఆٛΛ(6*Ͱ௚ײతʹ࣮ߦ

    View Slide

  25. View Slide

  26. 8IBU`TUIF/BWJHBUJPO
    w ࢹ֮తͳπʔϧ͕༻ҙ
    w ্هͷఆٛΛ(6*Ͱ௚ײతʹ࣮ߦ
    w ఆ͕ٛࢹ֮Խ͞ΕΔͷͰɺҰ໨Ͱը໘ؒͷભҠؔ܎͕֬ೝՄೳʹ

    View Slide

  27. 8IBU`TUIF/BWJHBUJPO
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ
    w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ
    w ࢹ֮తͳπʔϧ͕༻ҙ
    w ্هͷఆٛΛ(6*Ͱ௚ײతʹ࣮ߦ
    w ఆ͕ٛࢹ֮Խ͞ΕΔͷͰɺҰ໨Ͱը໘ؒͷભҠؔ܎͕֬ೝՄೳʹ

    View Slide

  28. 1SJODJQMFPG/BWJHBUJPO
    /BWJHBUJPOͷ঺հϖʔδʹɺҎԼͷΑ͏ͳΨΠυϥΠϯ͕ࣔ͞Εͯ·͢
    w 5IFBQQTIPVMEIBWFBpYFETUBSUJOHEFTUJOBUJPO
    w "TUBDLJTVTFEUPSFQSFTFOUUIFlOBWJHBUJPOTUBUFzPGBOBQQ
    w 5IF6QCVUUPOOFWFSFYJUTZPVSBQQ
    w 6QBOE#BDLBSFFRVJWBMFOUXJUIJOZPVSBQQ`TUBTL
    w %FFQMJOLJOHUPBEFTUJOBUJPOPSOBWJHBUJOHUPUIFTBNFEFTUJOBUJPO
    TIPVMEZJFMEUIFTBNFTUBDL

    View Slide

  29. 1SJODJQMFPG/BWJHBUJPO
    5IFBQQTIPVMEIBWFBpYFETUBSUJOHEFTUJOBUJPO
    w ΞϓϦΛىಈͨ࣌͠ɺಉ͡։࢝ઌʹ౸ୡ͢΂͖
    w ॳճىಈ࣌ͷઃఆը໘ɺϩάΠϯը໘ͳͲ͸͜Εʹ౰ͯ͸·Βͳ͍
    w Ϣʔβ͕ɺΞϓϦΛىಈޙʹͲͷը໘ʹ౸ୡ͢Δͷ͔༧ଌͰ͖Δ
    w ͜ͷը໘͕ɺΞϓϦ಺ͰͷϗʔϜը໘ͷΑ͏ͳ໾ׂΛ࣋ͭ
    w #BDLɺ6QͳͲͰϥϯνϟʔ΁໭Δࡍɺ࠷ޙʹදࣔ͞ΕΔը໘ͷ͸ͣ

    View Slide

  30. 1SJODJQMFPG/BWJHBUJPO
    "TUBDLJTVTFEUPSFQSFTFOU

    ɹɹɹɹɹɹɹɹɹɹUIFlOBWJHBUJPOTUBUFzPGBOBQQ
    w TUBDL͸ΞϓϦͷzφϏήʔγϣϯঢ়ଶzΛࣔͨ͢Ίʹ࢖ΘΕΔ
    w TUBDL͸'*-0 -*'0
    ͷߏ଄
    w Ұ൪Լʹ͸ελʔτը໘͕͋Γɺࠓ͍Δը໘͸Ұ൪্ʹ͋Δ͸ͣ
    w ը໘ͷભҠ͸ઌ಄΁ͷ1VTI͔ɺઌ಄ͷ1PQͰදݱ͞ΕΔ

    View Slide

  31. 1SJODJQMFPG/BWJHBUJPO
    5IF6QCVUUPOOFWFSFYJUTZPVSBQQ
    w 6QϘλϯ͸ઈରʹΞϓϦΛऴྃ͠ͳ͍
    w Ϣʔβ͕ελʔτը໘ʹ͍Δ৔߹ɺ

    ɹɹɹɹɹɹɹ6QϘλϯ͸දࣔ͞Εͳ͍

    View Slide

  32. 1SJODJQMFPG/BWJHBUJPO
    5IF6QCVUUPOOFWFSFYJUTZPVSBQQ
    w 6QϘλϯ͸ઈରʹΞϓϦΛऴྃ͠ͳ͍
    w Ϣʔβ͕ελʔτը໘ʹ͍Δ৔߹ɺ

    ɹɹɹɹɹɹɹ6QϘλϯ͸දࣔ͞Εͳ͍
    w %FFQMJOLͰΞϓϦΛىಈͨ͠৔߹ɺ

    6QϘλϯ͸ΞϓϦ಺ͷ਌ը໘ʹ໭Δ͜ͱΛҙຯ

    View Slide

  33. 1SJODJQMFPG/BWJHBUJPO
    6QBOE#BDLBSFFRVJWBMFOUXJUIJOZPVSBQQ`TUBTL
    w 6QϘλϯͱ#BDLΩʔ͸ΞϓϦͷUBTL಺Ͱ͸ಉ͡

    View Slide

  34. 6QϘλϯ΋
    #BDLΩʔ΋
    ಉ౳ͷૢ࡞ʹͳΔ

    View Slide

  35. 1SJODJQMFPG/BWJHBUJPO
    6QBOE#BDLBSFFRVJWBMFOUXJUIJOZPVSBQQ`TUBTL
    w 6QϘλϯͱ#BDLΩʔ͸ΞϓϦͷUBTL಺Ͱ͸ಉ͡
    w ελʔτը໘ʹ͍Δ৔߹ɺ6QϘλϯ͸Ӆ͞Εɺ#BDLΩʔͰΞϓϦ͕ऴྃ
    ԡԼͰΞϓϦऴྃ
    6QϘλϯ͕ඇදࣔʹ

    View Slide

  36. 1SJODJQMFPG/BWJHBUJPO
    %FFQMJOLJOHUPBEFTUJOBUJPOPSOBWJHBUJOH

    UPUIFTBNFEFTUJOBUJPOTIPVMEZJFMEUIFTBNFTUBDL
    w ౸ୡઌ͕ಉ͡ͳΒɺ%FFQMJOLʹΑΔભҠͱΞϓϦ಺ͰͷભҠ͸

    ಉ͡TUBDL͕ੜ੒͞ΕΔ
    w ೚ҙͷը໘ʹͲͷΑ͏ʹ౸ୡ͔ͨ͠ʹؔΘΒͣɺ#BDLΩʔ΋͘͠͸6QϘ
    λϯΛ࢖ͬͯελʔτը໘·Ͱ໭ΕΔ
    w %FFQMJOLͰͷભҠ࣌͸ɺطଘͷTUBDL͸ഁغ͞Εɺ%FFQMJOLʹΑͬͯੜ੒
    ͞ΕͨTUBDLʹஔ͖׵ΘΔ

    View Slide

  37. 1SJODJQMFPG/BWJHBUJPO
    /BWJHBUJPOͷ঺հϖʔδʹɺҎԼͷΑ͏ͳΨΠυϥΠϯ͕ࣔ͞Εͯ·͢
    w 5IFBQQTIPVMEIBWFBpYFETUBSUJOHEFTUJOBUJPO
    w "TUBDLJTVTFEUPSFQSFTFOUUIFlOBWJHBUJPOTUBUFzPGBOBQQ
    w 5IF6QCVUUPOOFWFSFYJUTZPVSBQQ
    w 6QBOE#BDLBSFFRVJWBMFOUXJUIJOZPVSBQQ`TUBTL
    w %FFQMJOLJOHUPBEFTUJOBUJPOPSOBWJHBUJOHUPUIFTBNFEFTUJOBUJPO
    TIPVMEZJFMEUIFTBNFTUBDL

    View Slide

  38. 4UBSUUP/BWJHBUJPO
    w ͭͷϥΠϒϥϦͱͭͷ(SBEMFQMVHJOͰߏ੒ʢBMQIB࣌఺ʣ

    View Slide

  39. 4UBSUUP/BWJHBUJPO
    w ͭͷϥΠϒϥϦͱͭͷ(SBEMFQMVHJOͰߏ੒ʢBMQIB࣌఺ʣ
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPODPNNPO
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOSVOUJNF
    উखʹJNQPSU͞ΕΔ

    View Slide

  40. 4UBSUUP/BWJHBUJPO
    w ͭͷϥΠϒϥϦͱͭͷ(SBEMFQMVHJOͰߏ੒ʢBMQIB࣌఺ʣ
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPODPNNPO
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOSVOUJNF
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOGSBHNFOU
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOVJ
    /BWJHBUJPO
    ಋೖ͢ΔͳΒඞਢ

    View Slide

  41. 4UBSUUP/BWJHBUJPO
    w ͭͷϥΠϒϥϦͱͭͷ(SBEMFQMVHJOͰߏ੒ʢBMQIB࣌఺ʣ
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPODPNNPO
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOSVOUJNF
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOGSBHNFOU
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOVJ
    w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOTBGFBSHTHSBEMFQMVHJO
    ͜Ε͸୯ମͰ΋
    ࢖͑Δ͔΋

    View Slide

  42. 4UBSUUP/BWJHBUJPO
    w ϞδϡʔϧͷCVJMEHSBEMFʹҎԼΛ௥Ճ
    w 

    w 4BGFBSHVNFOUTΛ࢖͏৔߹ɺϓϩδΣΫτͷCVJMEHSBEMFʹҎԼΛ௥Ճ
    implementation 

    'android.arch.navigation:navigation-fragment:1.0.0-alpha01'
    implementation
    'android.arch.navigation:navigation-ui:1.0.0-alpha01'
    dependencies {
    classpath 'android.arch.navigation:navigation-safe-args-
    gradle-plugin:1.0.0-alpha01'
    }

    View Slide

  43. 4UBSUUP/BWJHBUJPO
    w φϏήʔγϣϯάϥϑΛϦιʔεͱͯ͠௥Ճ͢Δ
    w SFTσΟϨΫτϦͰOFX"OESPJE3FTPVSDF'JMF
    w 3FTPVSDF5ZQF͸/BWJHBUJPOΛબ୒

    View Slide

  44. 4UBSUUP/BWJHBUJPO
    w φϏήʔγϣϯάϥϑΛϦιʔεͱͯ͠௥Ճ͢Δ
    w ৽ن࡞੒͢Δͱɺ͜Μͳײ͡ͰۭͷYNMϦιʔε͕ੜ੒͞ΕΔ

    View Slide

  45. 4UBSUUP/BWJHBUJPO
    w ભҠର৅ͱͳΔը໘ΛϦιʔε΁௥Ճ͢Δ

    View Slide

  46. 4UBSUUP/BWJHBUJPO
    w ભҠର৅ͱͳΔը໘ΛϦιʔε΁௥Ճ͢Δ
    w UPPMTMBZPVUͰϨΠΞ΢τ*%Λࢦఆ͢Δͱ

    ɹɹɹɹɹɹϓϨϏϡʔΛ(6*্Ͱඳըͯ͘͠ΕΔ

    View Slide

  47. 4UBSUUP/BWJHBUJPO
    w ը໘ಉ࢜ͷભҠʢ"DUJPOʣΛ௥Ճ

    View Slide

  48. 4UBSUUP/BWJHBUJPO
    w ը໘ಉ࢜ͷભҠʢ"DUJPOʣΛ௥Ճ
    BQQEFTUJOBUJPOʹ͸ɺભҠઌը໘ͷ/BWJHBUJPOάϥϑ಺Ͱͷ*%͕ೖΔ

    View Slide

  49. 4UBSUUP/BWJHBUJPO
    w 'SBHNFOUʹ౉͢Ҿ਺ͷఆٛ
    w ΤσΟλʔӈଆͷ"UUSJCVUFTϖΠϯ͔Β௥ՃՄೳ
    ҎԼͷཁૉΛࢦఆ͢Δ
    wOBNF
    wUZQF
    wEFGBVMUWBMVF

    View Slide

  50. 4UBSUUP/BWJHBUJPO
    w 'SBHNFOUʹ౉͢Ҿ਺ͷఆٛ
    w ΤσΟλʔӈଆͷ"UUSJCVUFTϖΠϯ͔Β௥ՃՄೳ

    View Slide

  51. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w /BW)PTU'SBHNFOUΛϨΠΞ΢τʹ௥Ճ
    w Ҏޙɺ༻ҙͨ͠ྖҬʹભҠઌͷGSBHNFOU͕දࣔ͞ΕΔ

    View Slide

  52. View Slide

  53. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w /BW)PTU'SBHNFOUΛϨΠΞ΢τʹ௥Ճ
    w Ҏޙɺ༻ҙͨ͠ྖҬʹભҠઌͷGSBHNFOU͕දࣔ͞ΕΔ

    View Slide

  54. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w /BW)PTU'SBHNFOUΛϨΠΞ΢τʹ௥Ճ
    w OBWJHBUJPOϦιʔεͱ/BW)PTU'SBHNFOUΛؔ࿈͚͍ͮͯ͠Δ

    View Slide

  55. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w /BW)PTU'SBHNFOUΛϨΠΞ΢τʹ௥Ճ
    w 4ZTUFN͔Βͷ#BDLΩʔΠϕϯτΛरͬͯ͘ΕΔΑ͏ʹͳΔ

    View Slide

  56. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w /BW)PTU'SBHNFOUΛϨΠΞ΢τʹ௥Ճ
    w "DUJWJUZͰҎԼΛ௥Ճ͢Δ͜ͱͰɺ#BDLΩʔʹΑΔ਌֊૚΁ͷભҠΛ࣮ݱ

    View Slide

  57. View Slide

  58. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w /BWJHBUJPO6*TFUVQ8JUI/BW$POUSPMMFS
    ͰNFOVपΓΛηοτΞοϓ

    View Slide

  59. View Slide

  60. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w .FOVͱಉ͡Α͏ʹ/BWJHBUJPO6*ͷϝιουͰηοτΞοϓ
    w /BWJHBUJPO6*TFU6Q"DUJPO#BS8JUI/BW$POUSPMMFS

    View Slide

  61. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w NFOVϦιʔεͷ֤JUFNͷ*%͸ɺOBWJHBUJPOϦιʔεͰͷભҠઌը໘ʹ
    ͍͍ͭͯΔ*%Λࢦఆ͢Δ
    w *%ҰகͰɺભҠઌ͕ϝχϡʔʹࣗಈͰCJOE͞ΕΔ

    View Slide

  62. 4UBSUUP/BWJHBUJPO
    w "DUJWJUZΛमਖ਼ͯ͠φϏήʔγϣϯΛ༗ޮԽ͢Δ
    w NFOVϦιʔεͷ֤JUFNͷ*%͸ɺOBWJHBUJPOϦιʔεͰͷભҠઌը໘ʹ
    ͍͍ͭͯΔ*%Λࢦఆ͢Δ
    w *%ҰகͰɺભҠઌ͕ϝχϡʔʹࣗಈͰCJOE͞ΕΔ

    View Slide

  63. 4UBSUUP/BWJHBUJPO
    w ը໘ભҠΛखಈͰߦ͍͍ͨ৔߹͸ɺ/BWJHBUJPO$POUSPMMFSOBWJHBUF

    w /BWJHBUJPOpOE/BW$POUSPMMFS WJFX
    ͰίϯτϩʔϥΛऔಘ
    w OBWJHBUF
    Ͱ͸ɺ/BWJHBUJPOϦιʔεͰఆٛͨ͠BDUJPOͷ*%ΛҾ਺ʹ౉͢

    View Slide

  64. View Slide

  65. "QQFOEJY"EEBOJNBUJPO
    w ը໘ભҠʹΞχϝʔγϣϯΛ͚͍ͭͨ
    w ΤσΟλ͔Β؆୯ʹΞχϝʔγϣϯΛࢦఆՄೳ
    w "DUJPOΛબ୒ͨ͠ঢ়ଶͰɺӈଆͷ"UUSJCVUFϖΠϯͰม͑ΒΕΔ

    View Slide

  66. "QQFOEJY4BGF"SHVNFOU
    w OBWJHBUJPOTBGFBSHTHSBEMFQMVHJO͚ͩ׆༻ͯ͠ΈΔ
    w 5ZQFTBGFͳ'SBHNFOUͷҾ਺ͷड͚౉͠Λ࣮ݱ
    w /BWJHBUJPOάϥϑͰ"SHVNFOUT͚ͩઃఆͯ͠ɺ"SHTΫϥεΛੜ੒
    w ࣗಈੜ੒͞ΕͨΫϥεͷ#VJMEFSΛ࢖ͬͯ#VOEMFʹ஋Λอଘಡग़

    View Slide

  67. 8IBU`TUIF/BWJHBUJPOʢ࠶ܝʣ
    w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ
    w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ
    FlowStepFragmentArgs.Builder()
    .setArtistId("123456")
    .build()
    .toBundle()
    val artistId = arguments?.let {
    val safeArgs =
    FlowStepFragmentArgs.fromBundle(it)
    safeArgs.artistId
    }
    UZQFTBGFʹҾ਺ܦ༝Ͱ΍ΓͱΓ͕Մೳ

    View Slide

  68. ·ͱΊ
    w "OESPJE+FUQBDLͷ̍ػೳͱͯ͠/BWJHBUJPO͕৽͘͠ఏڙ
    w +FUQBDLͷ֤ػೳ͸ݸผʹఏڙ͞Ε͍ͯΔͷͰɺదٓ࠾༻Ͱ͖Δ
    w /BWJHBUJPO͸ը໘ભҠͷ࣮૷Λ؆୯͔ͭૉૣ͘Ͱ͖ΔΑ͏ʹͳΔ
    w 9.-ϕʔεͷϦιʔεͰɺ௚ײతͳ(6*ΤσΟλʔ͕༻ҙ͞Ε͍ͯΔ
    w /BWJHBUJPOͷΨΠυϥΠϯͱͯͭ͠ͷݪଇ͕ڍ͛ΒΕ͍ͯΔ
    w ࠓޙ͸ɺ୯ҰΞΫςΟϏςΟͳߏ੒ʹ͍ͯ͘͠΂͖ͳͷ͔΋

    View Slide

  69. 5IBOLZPV
    !TBUTVLJFT

    View Slide