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

Android Architecture Componentsを使って、改善・効率化するAnd...

Android Architecture Componentsを使って、改善・効率化するAndroidアプリ開発

@builderscon 2019

Ryo Sakaguchi

August 30, 2019
Tweet

More Decks by Ryo Sakaguchi

Other Decks in Programming

Transcript

  1. ©2019 Wantedly, Inc. Ryo Sakaguchi • Wantedly, Inc • Android/Kotlin…

    • Sake/Beer/Guitar… • Twitter/GitHub: @wakwak3125
  2. ©2019 Wantedly, Inc. Android architecture components 
 are a collection

    of libraries that help you design robust, testable, and maintainable apps. Page Title Page Subtitle https://developer.android.com/topic/libraries/architecture
  3. ©2019 Wantedly, Inc. Android architecture components 
 are a collection

    of libraries that help you design robust, testable, and maintainable apps. Page Title Page Subtitle https://developer.android.com/topic/libraries/architecture
  4. ©2019 Wantedly, Inc. Android architecture components 
 are a collection

    of libraries that help you design robust, testable, and maintainable apps. Page Title Page Subtitle https://developer.android.com/topic/libraries/architecture
  5. ©2019 Wantedly, Inc. Android architecture components 
 are a collection

    of libraries that help you design robust, testable, and maintainable apps. Page Title Page Subtitle https://developer.android.com/topic/libraries/architecture
  6. ©2019 Wantedly, Inc. Android architecture components 
 are a collection

    of libraries that help you design robust, testable, and maintainable apps. Page Title Page Subtitle https://developer.android.com/topic/libraries/architecture
  7. ©2019 Wantedly, Inc.  %BUB#JOEJOH  -JGFDZDMF  -JWF%BUB 

    7JFX.PEFM  3PPN AACͷҰһͨͪ ϥΠϒϥϦͷ঺հ  8PSL.BOBHFS  1BHJOH  /BWJHBUJPO
  8. ©2019 Wantedly, Inc.  %BUB#JOEJOH  -JGFDZDMF  -JWF%BUB 

    7JFX.PEFM  3PPN AACͷҰһͨͪ ϥΠϒϥϦͷ঺հ  8PSL.BOBHFS  1BHJOH  /BWJHBUJPO
  9. ©2019 Wantedly, Inc. YNMͰϨΠΞ΢τΛఆٛ͢Δ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOHະ࢖༻ <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=“.MainActivity">

    <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> text_view
  10. ©2019 Wantedly, Inc. YNMͰϨΠΞ΢τΛఆٛ͢Δ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOH <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity">

    <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{text}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> android:text="@{text}"
  11. ©2019 Wantedly, Inc. !\^ͱ͍͏ܗͰηοτ͢Δ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOH <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity">

    <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{text}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> android:text="@{text}"
  12. ©2019 Wantedly, Inc. YNM͔Β#JOEJOHΫϥε͕ੜ੒͞ΕΔ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOH <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity">

    <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{text}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> android:text="@{text}"
  13. ©2019 Wantedly, Inc. !0O-JGFDZDMF&WFOU ʜ -JGFDZDMF"XBSF$PNQPOFOUT @OnLifecycleEvent(Lifecycle.Event.ON_START) fun start() {

    // startObserveSomething { result -> // callback(result) // } } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun stop() { // ઀ଓΛղআ͢Δ }
  14. ©2019 Wantedly, Inc. -JGFDZDMF&WFOU0/@45"35 -JGFDZDMF"XBSF$PNQPOFOUT @OnLifecycleEvent(Lifecycle.Event.ON_START) fun start() { //

    startObserveSomething { result -> // callback(result) // } } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun stop() { // ઀ଓΛղআ͢Δ } w 3FBDU w DPNQPOFOU%JE.PVOU w J04 w WJFX%JE"QQFBS ଞͷϑϨʔϜϫʔΫʹ౰ͯ͸ΊΔͱ͜Μͳײ͡
  15. ©2019 Wantedly, Inc. -JGFDZDMF&WFOU0/@4501 -JGFDZDMF"XBSF$PNQPOFOUT @OnLifecycleEvent(Lifecycle.Event.ON_START) fun start() { //

    startObserveSomething { result -> // callback(result) // } } @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun stop() { // ઀ଓΛղআ͢Δ } ଞͷϑϨʔϜϫʔΫʹ౰ͯ͸ΊΔͱ͜Μͳײ͡ w 3FBDU w DPNQPOFOU8JMM6ONPVOU w J04 w WJFX8JMM%JTBQQFBS
  16. ©2019 Wantedly, Inc. -JGFDZDMFΛߟྀͯ͘͠ΕΔɺ0CTFSWBCMF ϑϨʔϜϫʔΫͷ-JGFDZDMFʹ͏·͘৐͔ͬͬͯ͘ΕΔ w -JGFDZDMFతʹɺը໘ͷߋ৽Λͯ͠΋ྑ͍ঢ়ଶͷ ࣌ʹ͸஋͕ྲྀΕͯ͘Δɻͦ͏͡Όͳ͍ͱ͖͸ྲྀΕ ͯ͜ͳ͍ ‎

    ը໘͕ࢮΜͩޙʹ7JFXΛߋ৽͠Α͏ͱͯ͠ࢮͳ ͳ͍ ‎ ։ൃऀ͸-JGFDZDMF΁ͷҙࣝΛ͜Ε·ͰΑΓ΋ɺ ͠ͳ͘ͱ΋7JFXͷߋ৽ॲཧ͕Ͱ͖ΔΑ͏ʹͳͬ ͯɺޮ཰తͰɺੜ࢈ੑ͕ߴ͍ ͦ΋ͦ΋ͲΜͳ΋ͷʁ -JWF%BUB
  17. ©2019 Wantedly, Inc. -JGFDZDMFΛߟྀͯ͘͠ΕΔɺ0CTFSWBCMF ϑϨʔϜϫʔΫͷ-JGFDZDMFʹ͏·͘৐͔ͬͬͯ͘ΕΔ w -JGFDZDMFతʹɺը໘ͷߋ৽Λͯ͠΋ྑ͍ঢ়ଶͷ ࣌ʹ͸஋͕ྲྀΕͯ͘Δɻͦ͏͡Όͳ͍ͱ͖͸ྲྀΕ ͯ͜ͳ͍ ‎

    ը໘͕ࢮΜͩޙʹ7JFXΛߋ৽͠Α͏ͱͯ͠ࢮͳ ͳ͍ ‎ ։ൃऀ͸-JGFDZDMF΁ͷҙࣝΛ͜Ε·ͰΑΓ΋ɺ ͠ͳ͘ͱ΋7JFXͷߋ৽ॲཧ͕Ͱ͖ΔΑ͏ʹͳͬ ͯɺޮ཰తͰɺੜ࢈ੑ͕ߴ͍ ͦ΋ͦ΋ͲΜͳ΋ͷʁ -JWF%BUB
  18. ©2019 Wantedly, Inc. -JGFDZDMFΛߟྀͯ͘͠ΕΔɺ0CTFSWBCMF ϑϨʔϜϫʔΫͷ-JGFDZDMFʹ͏·͘৐͔ͬͬͯ͘ΕΔ w -JGFDZDMFతʹɺը໘ͷߋ৽Λͯ͠΋ྑ͍ঢ়ଶͷ ࣌ʹ͸஋͕ྲྀΕͯ͘Δɻͦ͏͡Όͳ͍ͱ͖͸ྲྀΕ ͯ͜ͳ͍ ‎

    ը໘͕ࢮΜͩޙʹ7JFXΛߋ৽͠Α͏ͱͯ͠ࢮͳ ͳ͍ ‎ ։ൃऀ͸-JGFDZDMF΁ͷҙࣝΛ͜Ε·ͰΑΓ΋ɺ ͠ͳ͘ͱ΋7JFXͷߋ৽ॲཧ͕Ͱ͖ΔΑ͏ʹͳͬ ͯɺޮ཰తͰɺੜ࢈ੑ͕ߴ͍ ͦ΋ͦ΋ͲΜͳ΋ͷʁ -JWF%BUB
  19. ©2019 Wantedly, Inc. -JGFDZDMFΛߟྀͯ͘͠ΕΔɺ0CTFSWBCMF ϑϨʔϜϫʔΫͷ-JGFDZDMFʹ͏·͘৐͔ͬͬͯ͘ΕΔ w -JGFDZDMFతʹɺը໘ͷߋ৽Λͯ͠΋ྑ͍ঢ়ଶͷ ࣌ʹ͸஋͕ྲྀΕͯ͘Δɻͦ͏͡Όͳ͍ͱ͖͸ྲྀΕ ͯ͜ͳ͍ ‎

    ը໘͕ࢮΜͩޙʹ7JFXΛߋ৽͠Α͏ͱͯ͠ࢮͳ ͳ͍ ‎ ։ൃऀ͸-JGFDZDMF΁ͷҙࣝΛ͜Ε·ͰΑΓ΋ɺ ͠ͳ͘ͱ΋7JFXͷߋ৽ॲཧ͕Ͱ͖ΔΑ͏ʹͳͬ ͯɺޮ཰తͰɺੜ࢈ੑ͕ߴ͍ ͦ΋ͦ΋ͲΜͳ΋ͷʁ -JWF%BUB
  20. ©2019 Wantedly, Inc. -JGFDZDMF0XOFS -JGFDZDMFͷঢ়ଶΛ஌͍ͬͯΔଘࡏ public interface LifecycleOwner { /**

    * Returns the Lifecycle of the provider. * * @return The lifecycle of the provider. */ @NonNull Lifecycle getLifecycle(); }
  21. ©2019 Wantedly, Inc. -JGFDZDMFΛߟྀͯ͘͠ΕΔɺ0CTFSWBCMF ϑϨʔϜϫʔΫͷ-JGFDZDMFʹ͏·͘৐͔ͬͬͯ͘ΕΔ w -JGFDZDMFతʹɺը໘ͷߋ৽Λͯ͠΋ྑ͍ঢ়ଶͷ ࣌ʹ͸஋͕ྲྀΕͯ͘Δɻͦ͏͡Όͳ͍ͱ͖͸ྲྀΕ ͯ͜ͳ͍ ‎

    ը໘͕ࢮΜͩޙʹ7JFXΛߋ৽͠Α͏ͱͯ͠ࢮͳ ͳ͍ ‎ ։ൃऀ͸-JGFDZDMF΁ͷҙࣝΛ͜Ε·ͰΑΓ΋ɺ ͠ͳ͘ͱ΋7JFXͷߋ৽ॲཧ͕Ͱ͖ΔΑ͏ʹͳͬ ͯɺޮ཰తͰɺੜ࢈ੑ͕ߴ͍ ͦ΋ͦ΋ͲΜͳ΋ͷʁ -JWF%BUB
  22. ©2019 Wantedly, Inc. 7JFX.PEFM ఆٛࣗମ͸ͱͯ΋ബ͍ public abstract class ViewModel {

    @SuppressWarnings("WeakerAccess") protected void onCleared() { } } ࣮ࡍʹ͸ߦఔͲ͸͋Δɻ͕ɺͦΕͰ΋ബ͍
  23. ©2019 Wantedly, Inc. 42-JUFͷΦϒδΣΫτϚούʔ ػೳϞϦϞϦͷ03.ͱ͍͏ΑΓ͸ɺ42-JUFͷந৅ԽϨΠϠ w $PSPVUJOFTαϙʔτ w 3Y+BWBαϙʔτ w

    -JWF%BUBαϙʔτ w ΫΤϦͷ"OESPJE4UVEJPʹΑΔิ׬ w 7*&8 w '54 3PPN 3PPN1FSTJTUFODF-JCSBSZ
  24. ©2019 Wantedly, Inc. σόΠεͷঢ়ଶʁ εϚʔτϑΥϯ͸ෆ҆ఆͳঢ়ଶʹ͋Δ͜ͱ͕ଟ͍ w ωοτϫʔΫ͸ྑ޷͔ʁ w όοςϦʔ͸े෼͔ʁ w

    ॆిத͔ʁ w ୺຤͕ΞΠυϧ͔ʁ w ετϨʔδ͸े෼͔ʁ σόΠεͷঢ়ଶͰ࣮ߦ͢Δ͔Ͳ͏͔ΛܾΊΔ 8PSL.BOBHFS
  25. ©2019 Wantedly, Inc. $POTUSBJOUT#VJMEFS 8PSL.BOBHFSͷδϣϒͷىಈʹඞཁͳ੍໿Λઃ͚Δ w TFU3FRVJSFE/FUXPSL5ZQF w TFU3FRVJSFT#BUUFSZ/PU-PX w

    TFU3FRVJSFT$IBSHJOH w TFU3FRVJSFT%FWJDF*EMF w TFU3FRVJSFT4UPSBHF/PU-PX σόΠεͷঢ়ଶͰ࣮ߦ͢Δ͔Ͳ͏͔ΛܾΊΔ 8PSL.BOBHFS
  26. ©2019 Wantedly, Inc. 1BHFE-JTU ϖʔδωʔγϣϯʹඞཁͳ1BHFͷσʔλΛ࣋ͭ w ͜ͷ1BHFE-JTUΛ-JWF%BUBͰฦ͢Α͏ͳ࣮૷Λࣗ෼Ͱ͔͘ w ࠓ·ͰɺಠࣗʹΞΠςϜΧ΢ϯτΛͯ͠Լ·ͰߦͬͨΒʜͱ ߦͬͨ෩ʹॻ͍͍࣮ͯͨ૷Λڞ௨Խ͢Δ͜ͱ͕Ͱ͖Δ

    w ݱࡏ͸ओʹ3PPNͷσʔλ͔ΒͷಡΈࠐΈ͕ϝΠϯ w ωοτϫʔΫ͔ΒͷಡΈࠐΈΛαϙʔτ͸͍ͯ͠Δ͕ɺࠓޙ͞ Βʹ࢖͍΍͘͢ͳΓͦ͏ͳػೳ͕ఏڙ͞ΕΔݟࠐΈ͕͋Δ 1BHJOHͷओ໾ 1BHJOH
  27. ©2019 Wantedly, Inc. 8BOUFEMZ1FPQMF ͍ΘΏΔ໊ࢗ؅ཧΞϓϦ ࣗ෼ͷϏδωεͷͭͳ͕ΓΛ؅ཧ w ໊ࢗΛຕҰؾʹόοͱಡΈࠐΜͰଈσʔλԽͨ͠Γ w ໊ࢗʹؔ࿈͢ΔχϡʔεΛݟ͚͖ͭͯͨΓ

    w 8BOUFEMZͷϓϩϑΟʔϧͷߋ৽͕ड͚औΕͨΓ w ΦϑϥΠϯঢ়ଶͰ΋࿈བྷઌͷ֬ೝΛ͢Δ͜ͱ͕Ͱ͖ͨΓ ͜͜Ͱ঺հ͢ΔϓϩμΫτ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ
  28. ©2019 Wantedly, Inc. ౰ॳͷઃܭ ਆ"DUJWJUZਆ'SBHNFOU͕͍ͯɺڊେͳ.BOBHFSΫϥε͕͍ΔΈ͍ͨͳઃܭ w ͜Εࣗ਎͸ѱ͘ͳ͍ͱࢥ͍ͬͯΔ w ݶΒΕͨϦιʔεͷதͰϢʔβʹՁ஋Λಧ͚Δඞཁ͕͋ͬͨ w

    ݩʑͷ։ൃऀ͕ҰਓͰશͯ࡞Γ੾ͬͨͷͰɺҰਓ͕։ൃΛ͢Δ ʹ͋ͨͬͯ࠷଎ͷઃܭʹͳ͍ͬͯͨ w ڊେͳΫϥεͰ͸͋Δ͕ɺΠϯλʔϑΣΠεઃܭ͕͖ͪΜͱ͠ ͍ͯͨͨΊɺΫϥε੹຿͕ͬͪ͝Όʹͳ͍ͬͯΔՕॴ͸গͳ ͔ͬͨ 8BOUFEMZ1FPQMF طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ
  29. ©2019 Wantedly, Inc. ݱࡏͷઃܭ .77.Ͱɺ3FQPTJUPSZ 6TF$BTFͳͲ͕ଘࡏ͢Δܗ w େ͖ͳΫϥεͷ੹຿Λ΋͏গ͠ࡉ෼Խ w ڊେͳ6TF$BTFυϝΠϯϩδοΫͷմͷΑ͏ͳΫϥεΛ

    6TF$BTF΁ͱ੾Γग़͠ w 3FQPTJUPSZͷΑ͏ͳ΋ͷΛ3FQPTJUPSZΫϥε΁ͱҠ͠ସ͑ w େ͖ͳ"DUJWJUZ'SBHNFOU͔Β.77.Λϕʔεʹͨ͠ϨΠϠʔ υΞʔΩςΫνϟ΁ͷஈ֊తҠߦ 8BOUFEMZ1FPQMF طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ
  30. ©2019 Wantedly, Inc. 3FBMN3PPN ΑΓ࢖͍΍͘͢ɺςελϒϧͳ΋ͷΛ໨ࢦͯ͠ w 3FBMN w ૣ͍ɺ࢖͍΍͍͢ w

    εϨουपΓͷѻ͍͕೉͍͠ɺςετίετ͕ߴ͍ w 3PPN w ໰୊ʹͳΒͳ͍଎͞ɺ࢖͍΍͍͢ɺεϨουʹ΋ෆ҆఺ͳ͠
 ͯελϏϦςΟ΋ߴ͍ w ςʔϒϧͷఆ͕ٛ3FBMNʹൺ΂Δͱগ͠໘౗ 8BOUFEMZ1FPQMF ΠϯϑϥϨΠϠʔͷվળ
  31. ©2019 Wantedly, Inc. Ҡߦεςοϓ ·ͣ͸Ұ෦ͷςʔϒϧ͔Β w ΫϦςΟΧϧͳόάΛग़͠ʹ͍͘Օॴ͔Βஈ֊తʹ w αʔό͔Βͷઃఆ஋Λอଘ͢ΔΑ͏ͳςʔϒϧΛ·ͣ͸Ҡߦ w

    3FBMNͱ3PPNΛಉ͡΋ͷͱͯ͠ѻ͑ΔΑ͏ͳΠϯλʔϑΣ ΠεΛఆٛ w औಘઌΛεΠον͢Ε͹3FBMNͰ΋3PPNͰ΋౷Ұతʹѻ ͑Δ͜ͱΛ໨ࢦͨ͠ 8BOUFEMZ1FPQMF ΠϯϑϥϨΠϠʔͷվળ
  32. ©2019 Wantedly, Inc. ϏδωεϩδοΫͷ੾Γग़͠ 6TF$BTF૚Λ༻ҙ͠ɺࡉ͔ͳ୯ҐͰͷ੹຿෼ׂ w %BUB.BOBHFSΫϥε͔ΒϏδωεϩδοΫʹؔ͢ΔՕॴΛ੾ Γग़ͯ͘͠ w ͜ΕΒͷ੾Γग़ͨ͠ϩδοΫΛ7JFX.PEFMͰ࢖͏͜ͱΛ໨

    తͱͨ͠ w ը໘ʹ఺ࡏ͍ͯ͠ΔϏδωεϩδοΫ΋Ұ෦6TF$BTFʹ੾Γ ग़͠ɺ7JFX.PEFMͳͲ͔Β࢖͑Δঢ়ଶʹ w େ͖ͳը໘Λͳͦ͘͏ͱ͍͏ࢼΈ 8BOUFEMZ1FPQMF ϏδωεϩδοΫ
  33. ©2019 Wantedly, Inc. .71ͷಋೖ .77.Ͱ7JFX.PEFMͷಋೖͷલʹ.71Ͱ·ͣ͸ബ͘࡞Δͱ͜Ζ͔Β w ੾Γग़ͨ͠ɺϩδοΫΛ1SFTFOUFSͰ࢖༻Ͱ͖Δ w ςετ͕͠΍͍͢ w

    ςετ͕ॻ͖΍͍͢ w ίʔυΛॻ͘ྔ͕ѹ౗తʹ૿͑Δ w ඇੜ࢈త w .77.Ͱ-JWF%BUBΛ࢖ͬͯYNMʹ௚઀όΠϯυͨ͠ํ͕ྑ͍ͷ Ͱ͸ʁͱ͍͏൑அʹͳΔ 8BOUFEMZ1FPQMF 6*૚ͷվળ
  34. ©2019 Wantedly, Inc. .77.ͷಋೖ .71Ͱͷ൓লΛੜ͔͠ɺ.77.Λಋೖ w .71ʹൺ΂ͯॻ͘ྔ͕֨ஈʹݮͬͨ w YNMʹ௚઀తʹ-JWF%BUBΛ౉͢͜ͱͰɺࣗಈతʹϥΠϑαΠΫ ϧʹόΠϯυͯ͘͠ΕΔ

    w ஋Λ7JFX.PEFM͔Βྲྀ͠ࠐΊ͹ͦΕ͚ͩͰ6*͕ߋ৽͞ΕΔ w ը໘ؒͰͷ7JFX.PEFMͷڞ༗ w ڞ௨ͷϩδοΫΛ͍࣋ͪͨͱͳͬͨ࣌ʹɺͱͯ΋΍Γ΍͍͢ 8BOUFEMZ1FPQMF 6*૚ͷվળ
  35. ©2019 Wantedly, Inc. ·ͱΊ ςελϏϦςΟͷ޲্ͱɺੜ࢈ੑͷ޲্ w 3PPNͰΠϯϑϥ૚ͷςελϏϦςΟΛ޲্ͤͨ͞ w 7JFX.PEFMͷಋೖͰɺ6*ͷ࡞੒ʹ͔͔Δ࣌ؒΛେ෯ʹ࡟ݮͨ͠ w

    ಋೖ͸εςοϓόΠεςοϓͰՄೳ w ҰؾʹೖΕͳͯ͘΋ྑ͍ w ·ͣ͸Ͱ͖ͦ͏ͳͱ͜Ζ͔Βগͣͭ͠Ͱ0, 8BOUFEMZ1FPQMF ΞʔΩςΫνϟͷվળ
  36. ©2019 Wantedly, Inc. 8PSL.BOBHFSͷಋೖ ୺຤ͷ࿈བྷઌͱͷಉظɺ஗Ԇ࣮ߦՄೳ͔ͭϩϯάλεΫ w 8BOUFEMZ1FPQMF͸໊ࢗΛ؅ཧ͢ΔΞϓϦ w ͭ·Γ͸৭ʑͳ࿈བྷઌΛΞϓϦ಺ʹอ࣋͢Δඞཁ͕͋Δ w

    Ϣʔβʹͱͬͯ͸ΞϓϦ಺͚ͩͰ͸ͳ͘ɺࣗ෼ͷ୺຤ͷ࿈བྷઌ ʹಉظ͍ͨ͠ͱ͍͏έʔε΋ɻ w ͦ͏͍ͬͨ࣌ʹɺΞϓϦ಺ͷ࿈བྷઌ͔Β୺຤ͷ࿈བྷઌ΁ͷΤΫ εϙʔτ͸࿈བྷઌ݅਺ʹ΋ΑΔ͕ϩϯάλεΫʹͳΓ͕ͪ 8BOUFEMZ1FPQMF 69ͷվળ
  37. ©2019 Wantedly, Inc. "OESPJE%FWFMPQFST$PEFMBCT ·ͣ͸ެ͔ࣜΒ w IUUQTEFWFMPQFSBOESPJEDPNUPQJDMJCSBSJFTBSDIJUFDUVSF w ެࣜͷυΩϡϝϯτ͕ྑ͍ w

    ڵຯͷ༙͍ͨίϯϙʔωϯτ͕͋Ε͹$PEFMBCTΛ࢖ͬͯɺ
 Ұ௨Γͷجຊతͳ࢖͍ํ͸ֶͿ͜ͱ͕Ͱ͖Δ w IUUQTEFWFMPQFSBOESPJEDPNUPQJDMJCSBSJFTBSDIJUFDUVSFBEEJUJPOBMSFTPVSDFTIUNM w 4BNQMFɺ$PEFMBCT΍#MPH΁ͷϦϯΫू w ͜͜ʹॻ͍ͯ͋Δ͜ͱΛಡΉͱ΋ͬͱ৭ʑͳ5JQTΛݟΔ͜ͱ͕Ͱ͖Δ ৘ใͷΩϟονΞοϓ Ͳ͕͍͍͜ʁ
  38. ©2019 Wantedly, Inc. ࠷ۙͷ"OESPJE։ൃ͸͍ͩͿΜਐԽͨ͠ ""$͸طଘΞϓϦͷઃܭମݧΛஈ֊తʹվળͰ͖Δ w গͣͭ͠ಋೖͰ͖Δ w ಋೖεςοϓͷΦεεϝ͸ɺΞϓϦ಺ͷ௿͍ϨΠϠʔ͔Β͕Φεεϝ w

    6*૚पΓ͸ࠓޙ΋มΘ͍ͬͯ͘ͱࢥ͍ͬͯΔ w J04ͳΒ4XJGU6* "OESPJEͳΒ+FUQBDL$PNQPTF w ΞϓϦ಺ͷσʔλपΓΛ͖ͪΜͱݻΊ͓ͯ͘ͷ͕େࣄ w ͦͷ఺ɺ3PPN͸ςελϏϦςΟ΋ߴ͘ɺ࠷ॳͷಋೖʹ͸Φεεϝ w ͨͩɺͦͷલʹݱࡏͷઃܭͱͷ݉Ͷ߹͍΋͋Δ͔Βͦ͜͸͏·͘΍ͬͯཉ͍͠ ·ͱΊ