Navigation Component

Navigation Component

Presented at CA.apk #6 (2018.05.22)

2c4cb677e0a076b96f8edfba71b46aeb?s=128

satsukies

May 22, 2018
Tweet

Transcript

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

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

  3. "OESPJE+FUQBDL w ૉૣ͘ɺ؆୯ʹΞϓϦΛ։ൃ͢ΔͨΊͷπʔϧ΍ϥΠϒϥϦ܈ͷ૯শ w lVOCVOEMFEzͳঢ়ଶͰఏڙ
 ɹʹඞཁͳ΋ͷΛɺ޷͖ͳλΠϛϯάͰ࠾༻Ͱ͖Δ

  4. 5PEBZ`TUPQJD /BWJHBUJPO

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

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

  7. 8IBU`TUIF/BWJHBUJPO w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ w ࢹ֮తͳπʔϧ͕༻ҙ w

    ্هͷఆٛΛ(6*Ͱ௚ײతʹ࣮ߦ w ఆ͕ٛࢹ֮Խ͞ΕΔͷͰɺҰ໨Ͱը໘ؒͷભҠؔ܎͕֬ೝՄೳʹ
  8. 8IBU`TUIF/BWJHBUJPO w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ <navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" app:startDestination="@+id/launcher_home"> <fragment android:id="@+id/launcher_home"

    android:name="com.example.android.codelabs.navigation.MainFragment" android:label="@string/home" tools:layout="@layout/main_fragment" /> <activity android:id="@+id/main_activity" android:name="com.example.android.codelabs.navigation.MainActivity" android:label="MainActivity" /> </navigation>
  9. 8IBU`TUIF/BWJHBUJPO w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ <action 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" /> <deepLink app:uri="www.example.com/{myarg}" />
  10. 8IBU`TUIF/BWJHBUJPO w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ 'SBHNFOU 'SBHNFOU 'SBHNFOU ىಈ ΞʔςΟετ

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

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

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

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

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

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

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

    'SBHNFOU5SBOTBDUJPO /BWJHBUJPOΛ࢖ͬͯ ը໘ભҠΛߏங͢Ε͹ ಉ౳ͷ͜ͱ͕؆୯ʹ࣮ݱՄೳ
  18. 8IBU`TUIF/BWJHBUJPO w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ w 'SBHNFOUʹॳظ஋Λ౉͍ͨ࣌͠ɺ#VOEMFΛྑ͘࢖͏ val args =

    Bundle() args.putInt("artistId", 123456) val artistId = arguments?.getInt("artistId") ֨ೲ࣌ͱผͷܕͰΞΫηε͠Α͏ͱ͢Δ͜ͱ΋Մೳ ʹܕ҆શ͡Όͳ͍
  19. 8IBU`TUIF/BWJHBUJPO w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ <fragment android:id="@+id/flow_step_one" android:name="com.example.android.codelabs.navigation.FlowStepFragment" tools:layout="@layout/flow_step_one_fragment" >

    <argument android:name="artistId" android:defaultValue="hoge" app:type=“string" /> </fragment>
  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; } ...
  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; } }
  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ʹҾ਺ܦ༝Ͱ΍ΓͱΓ͕Մೳ
  23. 8IBU`TUIF/BWJHBUJPO w ࢹ֮తͳπʔϧ͕༻ҙ

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

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

  27. 8IBU`TUIF/BWJHBUJPO w ը໘ભҠΛ9.-ϕʔεͷϦιʔεͱͯ͠ఆٛ w "DUJWJUZ΍'SBHNFOUؒͷભҠ΍ɺ%FFQ-JOLʹΑΔը໘ͷىಈ w 4BGF"SHVNFOUTʹΑΔܕ҆શͳҾ਺ͷαϙʔτ w ࢹ֮తͳπʔϧ͕༻ҙ w

    ্هͷఆٛΛ(6*Ͱ௚ײతʹ࣮ߦ w ఆ͕ٛࢹ֮Խ͞ΕΔͷͰɺҰ໨Ͱը໘ؒͷભҠؔ܎͕֬ೝՄೳʹ
  28. 1SJODJQMFPG/BWJHBUJPO /BWJHBUJPOͷ঺հϖʔδʹɺҎԼͷΑ͏ͳΨΠυϥΠϯ͕ࣔ͞Εͯ·͢ w 5IFBQQTIPVMEIBWFBpYFETUBSUJOHEFTUJOBUJPO w "TUBDLJTVTFEUPSFQSFTFOUUIFlOBWJHBUJPOTUBUFzPGBOBQQ w 5IF6QCVUUPOOFWFSFYJUTZPVSBQQ w 6QBOE#BDLBSFFRVJWBMFOUXJUIJOZPVSBQQ`TUBTL

    w %FFQMJOLJOHUPBEFTUJOBUJPOPSOBWJHBUJOHUPUIFTBNFEFTUJOBUJPO TIPVMEZJFMEUIFTBNFTUBDL
  29. 1SJODJQMFPG/BWJHBUJPO 5IFBQQTIPVMEIBWFBpYFETUBSUJOHEFTUJOBUJPO w ΞϓϦΛىಈͨ࣌͠ɺಉ͡։࢝ઌʹ౸ୡ͢΂͖ w ॳճىಈ࣌ͷઃఆը໘ɺϩάΠϯը໘ͳͲ͸͜Εʹ౰ͯ͸·Βͳ͍ w Ϣʔβ͕ɺΞϓϦΛىಈޙʹͲͷը໘ʹ౸ୡ͢Δͷ͔༧ଌͰ͖Δ w ͜ͷը໘͕ɺΞϓϦ಺ͰͷϗʔϜը໘ͷΑ͏ͳ໾ׂΛ࣋ͭ

    w #BDLɺ6QͳͲͰϥϯνϟʔ΁໭Δࡍɺ࠷ޙʹදࣔ͞ΕΔը໘ͷ͸ͣ
  30. 1SJODJQMFPG/BWJHBUJPO "TUBDLJTVTFEUPSFQSFTFOU
 ɹɹɹɹɹɹɹɹɹɹUIFlOBWJHBUJPOTUBUFzPGBOBQQ w TUBDL͸ΞϓϦͷzφϏήʔγϣϯঢ়ଶzΛࣔͨ͢Ίʹ࢖ΘΕΔ w TUBDL͸'*-0 -*'0 ͷߏ଄ w

    Ұ൪Լʹ͸ελʔτը໘͕͋Γɺࠓ͍Δը໘͸Ұ൪্ʹ͋Δ͸ͣ w ը໘ͷભҠ͸ઌ಄΁ͷ1VTI͔ɺઌ಄ͷ1PQͰදݱ͞ΕΔ
  31. 1SJODJQMFPG/BWJHBUJPO 5IF6QCVUUPOOFWFSFYJUTZPVSBQQ w 6QϘλϯ͸ઈରʹΞϓϦΛऴྃ͠ͳ͍ w Ϣʔβ͕ελʔτը໘ʹ͍Δ৔߹ɺ
 ɹɹɹɹɹɹɹ6QϘλϯ͸දࣔ͞Εͳ͍

  32. 1SJODJQMFPG/BWJHBUJPO 5IF6QCVUUPOOFWFSFYJUTZPVSBQQ w 6QϘλϯ͸ઈରʹΞϓϦΛऴྃ͠ͳ͍ w Ϣʔβ͕ελʔτը໘ʹ͍Δ৔߹ɺ
 ɹɹɹɹɹɹɹ6QϘλϯ͸දࣔ͞Εͳ͍ w %FFQMJOLͰΞϓϦΛىಈͨ͠৔߹ɺ
 6QϘλϯ͸ΞϓϦ಺ͷ਌ը໘ʹ໭Δ͜ͱΛҙຯ

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

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

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

  36. 1SJODJQMFPG/BWJHBUJPO %FFQMJOLJOHUPBEFTUJOBUJPOPSOBWJHBUJOH
 UPUIFTBNFEFTUJOBUJPOTIPVMEZJFMEUIFTBNFTUBDL w ౸ୡઌ͕ಉ͡ͳΒɺ%FFQMJOLʹΑΔભҠͱΞϓϦ಺ͰͷભҠ͸
 ಉ͡TUBDL͕ੜ੒͞ΕΔ w ೚ҙͷը໘ʹͲͷΑ͏ʹ౸ୡ͔ͨ͠ʹؔΘΒͣɺ#BDLΩʔ΋͘͠͸6QϘ λϯΛ࢖ͬͯελʔτը໘·Ͱ໭ΕΔ w

    %FFQMJOLͰͷભҠ࣌͸ɺطଘͷTUBDL͸ഁغ͞Εɺ%FFQMJOLʹΑͬͯੜ੒ ͞ΕͨTUBDLʹஔ͖׵ΘΔ
  37. 1SJODJQMFPG/BWJHBUJPO /BWJHBUJPOͷ঺հϖʔδʹɺҎԼͷΑ͏ͳΨΠυϥΠϯ͕ࣔ͞Εͯ·͢ w 5IFBQQTIPVMEIBWFBpYFETUBSUJOHEFTUJOBUJPO w "TUBDLJTVTFEUPSFQSFTFOUUIFlOBWJHBUJPOTUBUFzPGBOBQQ w 5IF6QCVUUPOOFWFSFYJUTZPVSBQQ w 6QBOE#BDLBSFFRVJWBMFOUXJUIJOZPVSBQQ`TUBTL

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

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

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

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

    BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOVJ w BOESPJEBSDIOBWJHBUJPOOBWJHBUJPOTBGFBSHTHSBEMFQMVHJO ͜Ε͸୯ମͰ΋ ࢖͑Δ͔΋
  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' }
  43. 4UBSUUP/BWJHBUJPO w φϏήʔγϣϯάϥϑΛϦιʔεͱͯ͠௥Ճ͢Δ w SFTσΟϨΫτϦͰOFX"OESPJE3FTPVSDF'JMF w 3FTPVSDF5ZQF͸/BWJHBUJPOΛબ୒

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

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

  46. 4UBSUUP/BWJHBUJPO w ભҠର৅ͱͳΔը໘ΛϦιʔε΁௥Ճ͢Δ w UPPMTMBZPVUͰϨΠΞ΢τ*%Λࢦఆ͢Δͱ
 ɹɹɹɹɹɹϓϨϏϡʔΛ(6*্Ͱඳըͯ͘͠ΕΔ

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

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

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

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

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

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

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

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

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

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

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

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

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

  63. 4UBSUUP/BWJHBUJPO w ը໘ભҠΛखಈͰߦ͍͍ͨ৔߹͸ɺ/BWJHBUJPO$POUSPMMFSOBWJHBUF  w /BWJHBUJPOpOE/BW$POUSPMMFS WJFX ͰίϯτϩʔϥΛऔಘ w OBWJHBUF

    Ͱ͸ɺ/BWJHBUJPOϦιʔεͰఆٛͨ͠BDUJPOͷ*%ΛҾ਺ʹ౉͢
  64. None
  65. "QQFOEJY"EEBOJNBUJPO w ը໘ભҠʹΞχϝʔγϣϯΛ͚͍ͭͨ w ΤσΟλ͔Β؆୯ʹΞχϝʔγϣϯΛࢦఆՄೳ w "DUJPOΛબ୒ͨ͠ঢ়ଶͰɺӈଆͷ"UUSJCVUFϖΠϯͰม͑ΒΕΔ

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

  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ʹҾ਺ܦ༝Ͱ΍ΓͱΓ͕Մೳ
  68. ·ͱΊ w "OESPJE+FUQBDLͷ̍ػೳͱͯ͠/BWJHBUJPO͕৽͘͠ఏڙ w +FUQBDLͷ֤ػೳ͸ݸผʹఏڙ͞Ε͍ͯΔͷͰɺదٓ࠾༻Ͱ͖Δ w /BWJHBUJPO͸ը໘ભҠͷ࣮૷Λ؆୯͔ͭૉૣ͘Ͱ͖ΔΑ͏ʹͳΔ w 9.-ϕʔεͷϦιʔεͰɺ௚ײతͳ(6*ΤσΟλʔ͕༻ҙ͞Ε͍ͯΔ w

    /BWJHBUJPOͷΨΠυϥΠϯͱͯͭ͠ͷݪଇ͕ڍ͛ΒΕ͍ͯΔ w ࠓޙ͸ɺ୯ҰΞΫςΟϏςΟͳߏ੒ʹ͍ͯ͘͠΂͖ͳͷ͔΋
  69. 5IBOLZPV !TBUTVLJFT