Slide 1

Slide 1 text

©2019 Wantedly, Inc. "OESPJE"SDIJUFDUVSF$PNQPOFOUͰ
 վળɾޮ཰Խ͢Δ"OESPJEΞϓϦ։ൃ CVJMEFSTDPO XBLXBL 3ZP4BLBHVDIJ 2019.8.30 -

Slide 2

Slide 2 text

©2019 Wantedly, Inc. Ryo Sakaguchi • Wantedly, Inc • Android/Kotlin… • Sake/Beer/Guitar… • Twitter/GitHub: @wakwak3125

Slide 3

Slide 3 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. "OESPJEΛϝΠϯͰ΍ͬͯΔਓ " ͍Βͬ͠Ό͍·͢ʜʁ

Slide 4

Slide 4 text

©2019 Wantedly, Inc. ""$ͷશମ૾ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ ΩϟονΞοϓํ๏ ·ͱΊ ࿩͢͜ͱ AAC=Android Architecture Components

Slide 5

Slide 5 text

©2019 Wantedly, Inc. ""$ͷશମ૾ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ ΩϟονΞοϓํ๏ ·ͱΊ ࿩͢͜ͱ AAC=Android Architecture Components

Slide 6

Slide 6 text

©2019 Wantedly, Inc. ""$ͷશମ૾ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ ΩϟονΞοϓํ๏ ·ͱΊ ࿩͢͜ͱ AAC=Android Architecture Components

Slide 7

Slide 7 text

©2019 Wantedly, Inc. ""$ͷશମ૾ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ ΩϟονΞοϓํ๏ ·ͱΊ ࿩͢͜ͱ AAC=Android Architecture Components

Slide 8

Slide 8 text

©2019 Wantedly, Inc. ""$ͷશମ૾ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ ΩϟονΞοϓํ๏ ·ͱΊ ࿩͢͜ͱ AAC=Android Architecture Components

Slide 9

Slide 9 text

©2019 Wantedly, Inc. ""$ͷશମ૾

Slide 10

Slide 10 text

©2019 Wantedly, Inc. ""$ͱ͸ʁ ϥΠϒϥϦͷ঺հ ొ৔ʹΑͬͯมԽͨ͜͠ͱ AACͷશମ૾ ࿩͢͜ͱ

Slide 11

Slide 11 text

©2019 Wantedly, Inc. ""$ͱ͸ʁ ""$ͷશମ૾

Slide 12

Slide 12 text

©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

Slide 13

Slide 13 text

©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

Slide 14

Slide 14 text

©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

Slide 15

Slide 15 text

©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

Slide 16

Slide 16 text

©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

Slide 17

Slide 17 text

©2019 Wantedly, Inc. ϥΠϒϥϦͷ঺հ ൺֱతೃછΈਂ͍͋ͷࢠ΋""$ͷҰһͰ͢

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

©2019 Wantedly, Inc. https://developer.android.com/ jetpack/docs/guide Page Title Page Subtitle

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

©2019 Wantedly, Inc. %BUB#JOEJOH

Slide 22

Slide 22 text

©2019 Wantedly, Inc. YNMͰϨΠΞ΢τΛఆٛ͢Δ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOHະ࢖༻ text_view

Slide 23

Slide 23 text

©2019 Wantedly, Inc. +BWB,PUMJO͔Β࢖͏ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOHະ࢖༻ val textView = findViewById(R.id.text_view) textView.text = "Hello, World!" text_view

Slide 24

Slide 24 text

©2019 Wantedly, Inc. YNMͰϨΠΞ΢τΛఆٛ͢Δ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOH android:text="@{text}"

Slide 25

Slide 25 text

©2019 Wantedly, Inc. !\^ͱ͍͏ܗͰηοτ͢Δ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOH android:text="@{text}"

Slide 26

Slide 26 text

©2019 Wantedly, Inc. YNM͔Β#JOEJOHΫϥε͕ੜ੒͞ΕΔ جຊతͳ"OESPJEͷը໘ͷ࡞Γํ %BUB#JOEJOH android:text="@{text}"

Slide 27

Slide 27 text

©2019 Wantedly, Inc. Lifecycle Lifecycle-Aware Components

Slide 28

Slide 28 text

©2019 Wantedly, Inc. ԿΒ͔ͷඇಉظͳॲཧΛ࣮૷͢Δͱ͖͸ ݱࡏͷը໘͕ʮੜ͖͍ͯΔʯͷ͔ʮࢮΜͰ͍Δʯͷ͔ʹ஫ҙΛ෷͏ඞཁ͕͋Δ w ը໘͕ੜ͖͍ͯΔ࣌ʹඇಉظॲཧͷ݁Ռ͕ฦͬͯ ͖ͨʂը໘ʹ൓ө͠Α͏ʂ ‎ 0, w ը໘͕ࢮΜͰ͍Δ࣌ʹඇಉظॲཧͷ݁Ռ͕ฦͬͯ ͖ͨʂը໘ʹ͸OʢSZ ‎ /( Ϋϥογϡ͢Δ Α͋͘Γ͕ͪͳύλʔϯ -JGFDZDMF

Slide 29

Slide 29 text

©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() { // ઀ଓΛղআ͢Δ }

Slide 30

Slide 30 text

©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 ଞͷϑϨʔϜϫʔΫʹ౰ͯ͸ΊΔͱ͜Μͳײ͡

Slide 31

Slide 31 text

©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

Slide 32

Slide 32 text

©2019 Wantedly, Inc. ϥΠϑαΠΫϧΛ֎ग़͠Ͱ͖Δ ͭ·ΓɺͦΕʹґଘͨ͠ίʔυͷݺͼग़͠࿙ΕΛ๷͙͜ͱ͕Ͱ͖Δ w 3Y+BWB΍3Y4XJGUͳͲͷετϦʔϜͷղআͱ͔ w ը໘ͷϥΠϑαΠΫϧʹ४ͨ͡ಠࣗͷΦϒδΣΫ τΛ࡞Δ͜ͱ͕Ͱ͖Δɻ ͪΐͬͱ·ͱΊΔͱ -JGFDZDMF

Slide 33

Slide 33 text

©2019 Wantedly, Inc. LiveData Observable data holder

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

©2019 Wantedly, Inc. -JGFDZDMF0XOFS -JGFDZDMFͷঢ়ଶΛ஌͍ͬͯΔଘࡏ public interface LifecycleOwner { /** * Returns the Lifecycle of the provider. * * @return The lifecycle of the provider. */ @NonNull Lifecycle getLifecycle(); }

Slide 39

Slide 39 text

©2019 Wantedly, Inc. 0CTFSWF͢Δ࣌ʹɺ-JGFDZDMF0XOFSΛऔΔ -JWF%BUB viewModel.comments.observe(lifecycleOwner, Observer { // ͜͜ʹίϝϯτͷϦετ͕ྲྀΕͯ͘Δɻ })

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

©2019 Wantedly, Inc. ViewModel Store and manage UI-related data in a lifecycle conscious way

Slide 42

Slide 42 text

©2019 Wantedly, Inc. 7JFX.PEFM ఆٛࣗମ͸ͱͯ΋ബ͍ public abstract class ViewModel { @SuppressWarnings("WeakerAccess") protected void onCleared() { } } ࣮ࡍʹ͸ߦఔͲ͸͋Δɻ͕ɺͦΕͰ΋ബ͍

Slide 43

Slide 43 text

©2019 Wantedly, Inc. ը໘ճసΛ৐Γ੾Δ͜ͱ͕Ͱ͖Δ ը໘͕ճసͨ࣌͠ɺը໘͸࠶ੜ੒͞ΕΔ͕ɺ7JFX.PEFM͸มΘΒͳ͍ w ͭ·Γɺ7JFX.PEFM͸ը໘Λੜ੒ͨ࣌͠ʹ࡞Β ΕΔͦͷΠϯελϯεͱมΘΒͳ͍ͷͰɺը໘Λ ࠶ੜ੒ͨ࣌͠ʹ΋ɺಉ͡΋ͷΛ࢖͏͜ͱ͕Ͱ͖ Δɻ ‎ Αͬͯɺը໘Λճసͨ࣌͠ͷॲཧͳͲΛؾΛͭ ͚ͯॻ͔ͳͯ͘΋Α͘ͳͬͨ 7JFX.PEFMͷ͍͢͝ͱ͜Ζ 7JFX.PEFM

Slide 44

Slide 44 text

©2019 Wantedly, Inc. 7JFX.PEFM4UPSF 7JFX.PEFM͕ը໘ճసΛ௒͑ͯอଘ͞Ε͍ͯΔ৔ॴ w ͜ͷ৔ॴʹɺ7JFX.PEFMͷΠϯελϯε͕อ࣋͞Ε͍ͯΔɻ w ը໘࠶ੜ੒࣌͸ɺ͔͜͜Β7JFX.PEFMΛऔΓग़͢͜ͱͰɺ
 ৐Γ੾͍ͬͯΔ 7JFX.PEFMͷ͍͢͝ͱ͜Ζ ը໘ճసΛ৐Γ੾Δ

Slide 45

Slide 45 text

©2019 Wantedly, Inc. 7JFX.PEFM1SPWJEFS 7JFX.PEFMͷΠϯελϯεΛఏڙͯ͘͠ΕΔ΋ͷ w ͜ͷɺ7JFX.PEFM1SPWJEFSΛܦ༝ͯ͠ɺ7JFX.PEFMͷΠϯελ ϯεΛऔಘ͓ͯ͘͜͠ͱͰɺ7JFX.PEFM4UPSFʹࣗಈతʹऔಘ ͨ͠7JFX.PEFMͷΠϯελϯε͕อଘ͞Ε͍ͯΔɻ 7JFX.PEFMͷ͍͢͝ͱ͜Ζ ը໘ճసΛ৐Γ੾Δ

Slide 46

Slide 46 text

©2019 Wantedly, Inc. $PSPVUJOFT ը໘ؒͷ7JFX.PEFMͷڞ༗ 7JFX.PEFMͷ͍͍ͱ͜Ζ͸ଞʹ΋͋Δ w $PSPVUJOFTαϙʔτ w ҟͳΔը໘ͰͷಉҰ7JFX.PEFMΠϯελϯεͷڞ༗ 7JFX.PEFMͷ͍͍ͱ͜Ζ ͦͷଞ

Slide 47

Slide 47 text

©2019 Wantedly, Inc. Room Room Persistence Library

Slide 48

Slide 48 text

©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

Slide 49

Slide 49 text

©2019 Wantedly, Inc. WorkManager

Slide 50

Slide 50 text

©2019 Wantedly, Inc. গ͠௕͍ॲཧ΍஗Ԇ͕Մೳͳ΋ͷΛ࣮ߦ͢Δͱ͖ Ϣʔβʹͱͬͯ͸ଈ࣌ੑ͕ͳͯ͘΋ྑ͍΋ͷ w ΞφϦςΟΫεΠϕϯτͷૹ৴ॲཧ w ఆظతͳಉظ Ϣʔεέʔε 8PSL.BOBHFSΛศརʹ࢖͑Δέʔε

Slide 51

Slide 51 text

©2019 Wantedly, Inc. σόΠεͷঢ়ଶʁ εϚʔτϑΥϯ͸ෆ҆ఆͳঢ়ଶʹ͋Δ͜ͱ͕ଟ͍ w ωοτϫʔΫ͸ྑ޷͔ʁ w όοςϦʔ͸े෼͔ʁ w ॆిத͔ʁ w ୺຤͕ΞΠυϧ͔ʁ w ετϨʔδ͸े෼͔ʁ σόΠεͷঢ়ଶͰ࣮ߦ͢Δ͔Ͳ͏͔ΛܾΊΔ 8PSL.BOBHFS

Slide 52

Slide 52 text

©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

Slide 53

Slide 53 text

©2019 Wantedly, Inc. Paging

Slide 54

Slide 54 text

©2019 Wantedly, Inc. 1BHFE-JTU ϖʔδωʔγϣϯʹඞཁͳ1BHFͷσʔλΛ࣋ͭ w ͜ͷ1BHFE-JTUΛ-JWF%BUBͰฦ͢Α͏ͳ࣮૷Λࣗ෼Ͱ͔͘ w ࠓ·ͰɺಠࣗʹΞΠςϜΧ΢ϯτΛͯ͠Լ·ͰߦͬͨΒʜͱ ߦͬͨ෩ʹॻ͍͍࣮ͯͨ૷Λڞ௨Խ͢Δ͜ͱ͕Ͱ͖Δ w ݱࡏ͸ओʹ3PPNͷσʔλ͔ΒͷಡΈࠐΈ͕ϝΠϯ w ωοτϫʔΫ͔ΒͷಡΈࠐΈΛαϙʔτ͸͍ͯ͠Δ͕ɺࠓޙ͞ Βʹ࢖͍΍͘͢ͳΓͦ͏ͳػೳ͕ఏڙ͞ΕΔݟࠐΈ͕͋Δ 1BHJOHͷओ໾ 1BHJOH

Slide 55

Slide 55 text

©2019 Wantedly, Inc. /BWJHBUJPO Πϝʔδ͸J04ͷ4FHVF w ը໘ભҠΛ(6*΍YNMͰఆٛ͠ɺͦΕΛίʔυ͔Βݺͼग़͢͜ͱ Ͱը໘ભҠΛߦ͏͜ͱ͕Ͱ͖Δ w όοΫελοΫͷ؅ཧͳͲ͕༰қʹͳΔ /BWJHBUJPO ୯७ͳը໘ભҠ͔Βෳࡶͳ΋ͷ·Ͱ

Slide 56

Slide 56 text

©2019 Wantedly, Inc. ศརʹ࢖͑ΔɺެࣜɺϞμϯ͞ "OESPJEΞϓϦ։ൃͷਏ͍ͱ͜ΖΛ৭ʑͳ໘Ͱαϙʔτͯ͘͠ΕΔ "OESPJE"SDIJUFDUVSF$PNQPOFOUT w 6*69ͷվળ w ߴ଎Ͱݎ࿚ͳΞϓϦ։ൃ w ෦෼ಋೖ͕Մೳ

Slide 57

Slide 57 text

©2019 Wantedly, Inc. طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ

Slide 58

Slide 58 text

©2019 Wantedly, Inc. ઃܭʹมԽ͕ੜ·Εͨ ϢʔβମݧʹมԽ͕ੜ·Εͨ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ AAC=Android Architecture Components

Slide 59

Slide 59 text

©2019 Wantedly, Inc. 8BOUFEMZ1FPQMF ͍ΘΏΔ໊ࢗ؅ཧΞϓϦࣗ෼ͷϏδωεͷͭͳ͕ΓΛ؅ཧ w ໊ࢗΛຕҰؾʹόοͱಡΈࠐΜͰଈσʔλԽͨ͠Γ w ໊ࢗʹؔ࿈͢ΔχϡʔεΛݟ͚͖ͭͯͨΓ w 8BOUFEMZͷϓϩϑΟʔϧͷߋ৽͕ड͚औΕͨΓ w ΦϑϥΠϯঢ়ଶͰ΋࿈བྷઌͷ֬ೝΛ͢Δ͜ͱ͕Ͱ͖ͨΓ ͜͜Ͱ঺հ͢ΔϓϩμΫτ طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ

Slide 60

Slide 60 text

©2019 Wantedly, Inc. ౰ॳͷઃܭ ਆ"DUJWJUZਆ'SBHNFOU͕͍ͯɺڊେͳ.BOBHFSΫϥε͕͍ΔΈ͍ͨͳઃܭ w ͜Εࣗ਎͸ѱ͘ͳ͍ͱࢥ͍ͬͯΔ w ݶΒΕͨϦιʔεͷதͰϢʔβʹՁ஋Λಧ͚Δඞཁ͕͋ͬͨ w ݩʑͷ։ൃऀ͕ҰਓͰશͯ࡞Γ੾ͬͨͷͰɺҰਓ͕։ൃΛ͢Δ ʹ͋ͨͬͯ࠷଎ͷઃܭʹͳ͍ͬͯͨ w ڊେͳΫϥεͰ͸͋Δ͕ɺΠϯλʔϑΣΠεઃܭ͕͖ͪΜͱ͠ ͍ͯͨͨΊɺΫϥε੹຿͕ͬͪ͝Όʹͳ͍ͬͯΔՕॴ͸গͳ ͔ͬͨ 8BOUFEMZ1FPQMF طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ

Slide 61

Slide 61 text

©2019 Wantedly, Inc. ݱࡏͷઃܭ .77.Ͱɺ3FQPTJUPSZ 6TF$BTFͳͲ͕ଘࡏ͢Δܗ w େ͖ͳΫϥεͷ੹຿Λ΋͏গ͠ࡉ෼Խ w ڊେͳ6TF$BTFυϝΠϯϩδοΫͷմͷΑ͏ͳΫϥεΛ 6TF$BTF΁ͱ੾Γग़͠ w 3FQPTJUPSZͷΑ͏ͳ΋ͷΛ3FQPTJUPSZΫϥε΁ͱҠ͠ସ͑ w େ͖ͳ"DUJWJUZ'SBHNFOU͔Β.77.Λϕʔεʹͨ͠ϨΠϠʔ υΞʔΩςΫνϟ΁ͷஈ֊తҠߦ 8BOUFEMZ1FPQMF طଘϓϩμΫτ΁ͷಋೖͱͦͷมԽ

Slide 62

Slide 62 text

©2019 Wantedly, Inc. 3FBMN3PPN ΑΓ࢖͍΍͘͢ɺςελϒϧͳ΋ͷΛ໨ࢦͯ͠ w 3FBMN w ૣ͍ɺ࢖͍΍͍͢ w εϨουपΓͷѻ͍͕೉͍͠ɺςετίετ͕ߴ͍ w 3PPN w ໰୊ʹͳΒͳ͍଎͞ɺ࢖͍΍͍͢ɺεϨουʹ΋ෆ҆఺ͳ͠
 ͯελϏϦςΟ΋ߴ͍ w ςʔϒϧͷఆ͕ٛ3FBMNʹൺ΂Δͱগ͠໘౗ 8BOUFEMZ1FPQMF ΠϯϑϥϨΠϠʔͷվળ

Slide 63

Slide 63 text

©2019 Wantedly, Inc. Ҡߦεςοϓ ·ͣ͸Ұ෦ͷςʔϒϧ͔Β w ΫϦςΟΧϧͳόάΛग़͠ʹ͍͘Օॴ͔Βஈ֊తʹ w αʔό͔Βͷઃఆ஋Λอଘ͢ΔΑ͏ͳςʔϒϧΛ·ͣ͸Ҡߦ w 3FBMNͱ3PPNΛಉ͡΋ͷͱͯ͠ѻ͑ΔΑ͏ͳΠϯλʔϑΣ ΠεΛఆٛ w औಘઌΛεΠον͢Ε͹3FBMNͰ΋3PPNͰ΋౷Ұతʹѻ ͑Δ͜ͱΛ໨ࢦͨ͠ 8BOUFEMZ1FPQMF ΠϯϑϥϨΠϠʔͷվળ

Slide 64

Slide 64 text

©2019 Wantedly, Inc. ϏδωεϩδοΫͷ੾Γग़͠ 6TF$BTF૚Λ༻ҙ͠ɺࡉ͔ͳ୯ҐͰͷ੹຿෼ׂ w %BUB.BOBHFSΫϥε͔ΒϏδωεϩδοΫʹؔ͢ΔՕॴΛ੾ Γग़ͯ͘͠ w ͜ΕΒͷ੾Γग़ͨ͠ϩδοΫΛ7JFX.PEFMͰ࢖͏͜ͱΛ໨ తͱͨ͠ w ը໘ʹ఺ࡏ͍ͯ͠ΔϏδωεϩδοΫ΋Ұ෦6TF$BTFʹ੾Γ ग़͠ɺ7JFX.PEFMͳͲ͔Β࢖͑Δঢ়ଶʹ w େ͖ͳը໘Λͳͦ͘͏ͱ͍͏ࢼΈ 8BOUFEMZ1FPQMF ϏδωεϩδοΫ

Slide 65

Slide 65 text

©2019 Wantedly, Inc. .71ͷಋೖ .77.Ͱ7JFX.PEFMͷಋೖͷલʹ.71Ͱ·ͣ͸ബ͘࡞Δͱ͜Ζ͔Β w ੾Γग़ͨ͠ɺϩδοΫΛ1SFTFOUFSͰ࢖༻Ͱ͖Δ w ςετ͕͠΍͍͢ w ςετ͕ॻ͖΍͍͢ w ίʔυΛॻ͘ྔ͕ѹ౗తʹ૿͑Δ w ඇੜ࢈త w .77.Ͱ-JWF%BUBΛ࢖ͬͯYNMʹ௚઀όΠϯυͨ͠ํ͕ྑ͍ͷ Ͱ͸ʁͱ͍͏൑அʹͳΔ 8BOUFEMZ1FPQMF 6*૚ͷվળ

Slide 66

Slide 66 text

©2019 Wantedly, Inc. .77.ͷಋೖ .71Ͱͷ൓লΛੜ͔͠ɺ.77.Λಋೖ w .71ʹൺ΂ͯॻ͘ྔ͕֨ஈʹݮͬͨ w YNMʹ௚઀తʹ-JWF%BUBΛ౉͢͜ͱͰɺࣗಈతʹϥΠϑαΠΫ ϧʹόΠϯυͯ͘͠ΕΔ w ஋Λ7JFX.PEFM͔Βྲྀ͠ࠐΊ͹ͦΕ͚ͩͰ6*͕ߋ৽͞ΕΔ w ը໘ؒͰͷ7JFX.PEFMͷڞ༗ w ڞ௨ͷϩδοΫΛ͍࣋ͪͨͱͳͬͨ࣌ʹɺͱͯ΋΍Γ΍͍͢ 8BOUFEMZ1FPQMF 6*૚ͷվળ

Slide 67

Slide 67 text

©2019 Wantedly, Inc. ·ͱΊ ςελϏϦςΟͷ޲্ͱɺੜ࢈ੑͷ޲্ w 3PPNͰΠϯϑϥ૚ͷςελϏϦςΟΛ޲্ͤͨ͞ w 7JFX.PEFMͷಋೖͰɺ6*ͷ࡞੒ʹ͔͔Δ࣌ؒΛେ෯ʹ࡟ݮͨ͠ w ಋೖ͸εςοϓόΠεςοϓͰՄೳ w ҰؾʹೖΕͳͯ͘΋ྑ͍ w ·ͣ͸Ͱ͖ͦ͏ͳͱ͜Ζ͔Βগͣͭ͠Ͱ0, 8BOUFEMZ1FPQMF ΞʔΩςΫνϟͷվળ

Slide 68

Slide 68 text

©2019 Wantedly, Inc. 8PSL.BOBHFSͷಋೖ ୺຤ͷ࿈བྷઌͱͷಉظɺ஗Ԇ࣮ߦՄೳ͔ͭϩϯάλεΫ w 8BOUFEMZ1FPQMF͸໊ࢗΛ؅ཧ͢ΔΞϓϦ w ͭ·Γ͸৭ʑͳ࿈བྷઌΛΞϓϦ಺ʹอ࣋͢Δඞཁ͕͋Δ w Ϣʔβʹͱͬͯ͸ΞϓϦ಺͚ͩͰ͸ͳ͘ɺࣗ෼ͷ୺຤ͷ࿈བྷઌ ʹಉظ͍ͨ͠ͱ͍͏έʔε΋ɻ w ͦ͏͍ͬͨ࣌ʹɺΞϓϦ಺ͷ࿈བྷઌ͔Β୺຤ͷ࿈བྷઌ΁ͷΤΫ εϙʔτ͸࿈བྷઌ݅਺ʹ΋ΑΔ͕ϩϯάλεΫʹͳΓ͕ͪ 8BOUFEMZ1FPQMF 69ͷվળ

Slide 69

Slide 69 text

©2019 Wantedly, Inc. ΩϟονΞοϓํ๏

Slide 70

Slide 70 text

©2019 Wantedly, Inc. "OESPJE%FWFMPQFST$PEFMBCT ·ͣ͸ެ͔ࣜΒ w IUUQTEFWFMPQFSBOESPJEDPNUPQJDMJCSBSJFTBSDIJUFDUVSF w ެࣜͷυΩϡϝϯτ͕ྑ͍ w ڵຯͷ༙͍ͨίϯϙʔωϯτ͕͋Ε͹$PEFMBCTΛ࢖ͬͯɺ
 Ұ௨Γͷجຊతͳ࢖͍ํ͸ֶͿ͜ͱ͕Ͱ͖Δ w IUUQTEFWFMPQFSBOESPJEDPNUPQJDMJCSBSJFTBSDIJUFDUVSFBEEJUJPOBMSFTPVSDFTIUNM w 4BNQMFɺ$PEFMBCT΍#MPH΁ͷϦϯΫू w ͜͜ʹॻ͍ͯ͋Δ͜ͱΛಡΉͱ΋ͬͱ৭ʑͳ5JQTΛݟΔ͜ͱ͕Ͱ͖Δ ৘ใͷΩϟονΞοϓ Ͳ͕͍͍͜ʁ

Slide 71

Slide 71 text

©2019 Wantedly, Inc. "OESPJE%BHBTIJ 5XJUUFS w IUUQTBOESPJEEBHBTIJHJUIVCJP w "OESPJEؔ࿈ͷ8FFLMZ/FXT ৘ใͷΩϟονΞοϓ Ͳ͕͍͍͜ʁ

Slide 72

Slide 72 text

©2019 Wantedly, Inc. "OESPJEք۾ͳ5XJUUFSϦετ 5XJUUFS w IUUQTUXJUUFSDPNTZBSJIVMJTUTBOESPJEJOGP w "OESPJEͷڧͦ͏ͳਓ͕ͨͪू·͍ͬͯΔϦετ͕ެ։͞Ε͍ͯΔ w ΋ͪΖΜ5XJUUFSͳͷͰΈͳ͞Μࣗ༝ʹͭͿ΍͍͍ͯ·͢ ৘ใͷΩϟονΞοϓ Ͳ͕͍͍͜ʁ

Slide 73

Slide 73 text

©2019 Wantedly, Inc. ·ͱΊ

Slide 74

Slide 74 text

©2019 Wantedly, Inc. ࠷ۙͷ"OESPJE։ൃ͸͍ͩͿΜਐԽͨ͠ ""$͸طଘΞϓϦͷઃܭମݧΛஈ֊తʹվળͰ͖Δ w গͣͭ͠ಋೖͰ͖Δ w ಋೖεςοϓͷΦεεϝ͸ɺΞϓϦ಺ͷ௿͍ϨΠϠʔ͔Β͕Φεεϝ w 6*૚पΓ͸ࠓޙ΋มΘ͍ͬͯ͘ͱࢥ͍ͬͯΔ w J04ͳΒ4XJGU6* "OESPJEͳΒ+FUQBDL$PNQPTF w ΞϓϦ಺ͷσʔλपΓΛ͖ͪΜͱݻΊ͓ͯ͘ͷ͕େࣄ w ͦͷ఺ɺ3PPN͸ςελϏϦςΟ΋ߴ͘ɺ࠷ॳͷಋೖʹ͸Φεεϝ w ͨͩɺͦͷલʹݱࡏͷઃܭͱͷ݉Ͷ߹͍΋͋Δ͔Βͦ͜͸͏·͘΍ͬͯཉ͍͠ ·ͱΊ

Slide 75

Slide 75 text

©2019 Wantedly, Inc. 69ʹ΋د༩Ͱ͖Δ ϞόΠϧΞϓϦͳΒͰ͸ͷෆ҆ఆͳঢ়ଶΛߟྀͨ͠όοΫάϥ΢ϯυλεΫ༻ͷ8PSL.BOBHFS w ϞόΠϧΞϓϦͳΒͰ͸ͷෆ҆ఆͳঢ়ଶΛߟྀͨ͠όοΫάϥ΢ϯυλεΫ༻ͷ8PSL.BOBHFS w Ϣʔβ͕εϚʔτϑΥϯ͔Β཭Ε͍ͯΔλΠϛϯά΍ॆిதͳͲͷλΠϛϯάͰ
 σόΠεͷϦιʔεΛ࢖͏͜ͱ͕Ͱ͖Δ ‎ Ϣʔβʹ༩͑ΔετϨεΛܰݮͰ͖ΔݟࠐΈɻ ·ͱΊ

Slide 76

Slide 76 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. ͋Γ͕ͱ͏͍͟͝·ͨ͠