Slide 1

Slide 1 text

©2019 Wantedly, Inc. "OESPJE9/BWJHBUJPO Λಋೖͨ͠࿩ QPUBUPUJQT ٱอग़խढ़ 2019/02/28

Slide 2

Slide 2 text

©2019 Wantedly, Inc. ٱอग़խढ़ 8BOUFEMZ ओʹ8BOUFEMZ7JTJUͷ"OESPJEΞϓϦΛ։ൃ͍ͯ͠·͢ɻ ઈࢍϦχϡʔΞϧதɻ QPUBUPUJQT͸ճ࿈ଓग़৔தɻ ,PUMJO 1PLFNPO(P ࣗݾ঺հ 5XJUUFS !TXJ[@BSE (JU)VC !LVCPEF

Slide 3

Slide 3 text

©2019 Wantedly, Inc. "OESPJE9/BWJHBUJPOͱ͸ ͳͥಋೖͨ͠ͷ͔ ࣮૷ ൃੜͨ͠໰୊఺ ·ͱΊ ࿩͢͜ͱ

Slide 4

Slide 4 text

©2019 Wantedly, Inc. "OESPJE9/BWJHBUJPOͱ͸

Slide 5

Slide 5 text

©2019 Wantedly, Inc. w "OESPJE9ͷͻͱͭ w چ /BWJHBUJPO$PNQPOFOUT w ͦΖͦΖTUBCMF ݱ࣌఺Ͱ3$ w TUBCMFʹͳΔͱਖ਼ࣜʹ"OESPJE9ʹͳͬͯഁյత มߋ͕͋Δ͔΋ AndroidX Navigationͱ͸

Slide 6

Slide 6 text

©2019 Wantedly, Inc. w (6*ͰͷભҠਤ w 9.-Ͱ΋هड़Մ ػೳ

Slide 7

Slide 7 text

©2019 Wantedly, Inc. w ը໘Ҿ਺ w 4BGF"SHTͰͷܕ҆શͳ
 'SBHNFOU"SHTͷੜ੒ w %FFQ-JOLରԠ w 5SBOTJUJPO"OJNBUJPO w 4IBSFE&MFNFOU ػೳ

Slide 8

Slide 8 text

©2019 Wantedly, Inc. w BSHVNFOUͷΫϥεΛੜ੒͢Δ(SBEMF1MVHJO w ܕ҆શʹͳΔ w 'SBHNFOUOFX*OTUBODFͱ͔࡞Βͳͯ͘Α͍ w /BWJHBUJPO࢖Θͣ͜Ε͚ͩΛಋೖ͢Δέʔε΋ SafeArgs apply plugin: "androidx.navigation.safeargs.kotlin"

Slide 9

Slide 9 text

©2019 Wantedly, Inc. ͳͥಋೖͨ͠ͷ͔

Slide 10

Slide 10 text

©2019 Wantedly, Inc. w ΦϯϘʔσΟϯάΛϦχϡʔΞϧ w "DUJWJUZͰϑϩʔΛ؅ཧ w ෳ਺ͷը໘͸'SBHNFOUͰ࡞Δ ͳͥಋೖͨ͠ͷ͔

Slide 11

Slide 11 text

©2019 Wantedly, Inc. OnboardingActivity ϑϩʔͷߏ੒ InitialFragment WelcomeFragment SelectOccupationFragment MainActivity

Slide 12

Slide 12 text

©2019 Wantedly, Inc. w ৚݅෼ذ͕
 ͋Δ w ύϥϝʔλʔ
 ͷड͚౉͠ w جຊతʹ
 Ұํ௨ߦ ࣮ࡍͷϑϩʔ

Slide 13

Slide 13 text

©2019 Wantedly, Inc. w ΞϓϦશମͷϦχϡʔΞϧΛਐΊ͍ͯΔ w .VMUJNPEVMFԽ͍ͯ͠Δ w 'FBUVSFؒͷը໘ભҠΛͲ͏͢Δ͔ w ˠ%SPJE,BJHJͷ࣮૷͕ࢀߟʹͳΓͦ͏ w ˠ/BWJHBUJPOΛࢼ͍ͨ͠ ଞͷಋೖཧ༝

Slide 14

Slide 14 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. /BWJHBUJPO΍Δͧ

Slide 15

Slide 15 text

©2019 Wantedly, Inc. ࣮૷

Slide 16

Slide 16 text

©2019 Wantedly, Inc. ۭͷ'SBHNFOUΫϥεΛ͢΂ͯ࡞Δ SFTOBWJHBUJPOOBWJHBUJPOYNMΛ࡞Δ (6*Ͱը໘Λ഑ஔ "DUJWJUZʹ/BW)PTU'SBHNFOUΛ഑ஔ 'SBHNFOUͰ/BW$POUSPMMFSOBWJHBUFΛॻ͘ ࣮૷ͷྲྀΕ

Slide 17

Slide 17 text

©2019 Wantedly, Inc. ը໘ͷ഑ஔ

Slide 18

Slide 18 text

©2019 Wantedly, Inc. ભҠΛͭͳ͛Δ

Slide 19

Slide 19 text

©2019 Wantedly, Inc. NavHostFragmentͷ഑ஔ

Slide 20

Slide 20 text

©2019 Wantedly, Inc. NavController.navigateͰભҠ // InitialFragment override fun onSignUpSuccessful(userName: String) { findNavController() // KTXͷ֦ு .navigate( // safeargsͰੜ੒͞Εͨίʔυ InitialFragmentDirections .actionInitialFragmentToEmailWelcomeFragment(userName) ) }

Slide 21

Slide 21 text

©2019 Wantedly, Inc. ൃੜͨ͠໰୊఺

Slide 22

Slide 22 text

©2019 Wantedly, Inc. w όοΫΩʔͰ໭Εͯ͠·͏ w ը໘͝ͱʹঢ়ଶΛ͍࣋ͬͯΔͷͰ໭ΔͱόάΔ w 1PQ#FIBWJPSͰ໭Γઌ͸ࢦఆͰ͖Δ͕ɾɾɾ w ໭Βͤͳ͘͢Δ͜ͱ͸/BWJHBUJPOͰ͸Ͱ͖ͳ͍ ໰୊఺1

Slide 23

Slide 23 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. "OESPJE9"DUJWJUZ

Slide 24

Slide 24 text

©2019 Wantedly, Inc. w BEE0O#BDL1SFTTFE$BMMCBDL͕௥Ճ w όοΫΩʔ੍ޚΛ'SBHNFOUͰ࣮૷Ͱ͖Δ AndroidX Activity // WelcomeFragment override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // Disable back key requireActivity().addOnBackPressedCallback( viewLifecycleOwner, OnBackPressedCallback { true } ) }

Slide 25

Slide 25 text

©2019 Wantedly, Inc. ൃੜͨ͠໰୊఺

Slide 26

Slide 26 text

©2019 Wantedly, Inc. w pUT4ZTUFN8JOEPXT
 ͕ޮ͔ͳ͍ w /BW)PTU'SBHNFOU͕
 'SBNF-BZPVUΛ࢖͍ͬͯΔ w 'SBNF-BZPVU͸
 pUT4ZTUFN8JOEPXT͕ޮ͔ͳ͍ ໰୊఺2

Slide 27

Slide 27 text

©2019 Wantedly, Inc. ໰୊఺2ͷղܾࡦ class FitsSystemWindowsNavHostFragment : NavHostFragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // CoordinatorLayout͸fitsSystemWindowsʹରԠ͍ͯ͠Δ return CoordinatorLayout(inflater.context).apply { fitsSystemWindows = true id = this.id // ͜Ε͸NavHostFragmentͷ࣮૷ͱಉ͡ } } }

Slide 28

Slide 28 text

©2019 Wantedly, Inc. ·ͱΊ

Slide 29

Slide 29 text

©2019 Wantedly, Inc. w ࢼݧతʹಋೖ͚ͨ͠Ͳ࢖͍উख͕Α͔ͬͨ w 'SBHNFOU5SBOTBDUJPO w ଍Γͳ͍ͱ͜Ζ΋͋Δ͕ଞͷ"OESPJE9Ͱิ͑ͨ w কདྷతʹ͸શମΛ/BWJHBUJPOʹஔ͖׵͍͑ͨ ·ͱΊ

Slide 30

Slide 30 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. 5IBOLZPV