Slide 1

Slide 1 text

αʔόʔαΠυΤϯδχΞ͕ "OESPJEೖ໳ͨ͠࿩

Slide 2

Slide 2 text

ϞόΠϧΞϓϦαʔϏε෦ ୲౰ϞόΠϧΞϓϦͷόοΫΤϯυ"1*
 "84؀ڥߏஙɺӡ༻

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ w ͳͥαʔόʔαΠυͷਓ͕"OESPJE w ษڧํ๏ w ࢓ࣄͰ࢖ΘΕ͍ͯΔίʔυͱͷࠩ w σόοΫʹ࢖͑Δπʔϧ

Slide 4

Slide 4 text

ͳͥαʔόʔαΠυͷ ਓ͕"OESPJE

Slide 5

Slide 5 text

ओͳཧ༝ w Ͱ͖Δ͜ͱΛ૿΍ͯ͠௵͕͖͘͠Α͏ʹͨ͠ ͍ɹ w Ұ؏ͯ͠ཧղ͓͖͍ͯͨ͠

Slide 6

Slide 6 text

N#BBT αʔόʔ N#BBTͷొ৔ ೝূ Ӭଓ 1VTI ͦͷଞ αʔόʔ ೝূ Ӭଓ 1VTI ͦͷଞ ؆୯ͰҰൠతͳϢʔεέʔεͳΒ N#BBTͷΈͰ׬݁ͯ͠͠·͏͜ͱ΋ ొ৔લ ొ৔ޙ

Slide 7

Slide 7 text

(&5OFXT (&5OPUJpDBUJPO ҰൃͰͱΕΔΑ͏ ʹͯ͘͠Εͳ͍͔ ͳɻɻɻ (&5JOGP Ұ؏ͯ͠೺Ѳ͓͖͍ͯͨ͠ ࣗ෼Ͱମݧ͠ͳ͍ͱΘ͔Βͳ͍͜ͱ͕͋Δ

Slide 8

Slide 8 text

ษڧํ๏

Slide 9

Slide 9 text

ษڧํ๏ w ·ͣ౤ࢿ w ॻ੶ w άάͬͯࣸܦ

Slide 10

Slide 10 text

ͱΓ͋͑ͣങͬͨ ສ

Slide 11

Slide 11 text

࠷ॳʹങͬͨຊ

Slide 12

Slide 12 text

࣍ʹങͬͨຊ

Slide 13

Slide 13 text

ॻ੶ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // ToastΛදࣔ } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // ը໘ͷΩϟϓγϣϯΛมߋ } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // μΠΞϩάΛදࣔ }

Slide 14

Slide 14 text

άάͬͯࣸܦ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // μΠΞϩάΛදࣔ } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // μΠΞϩάΛදࣔ } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // μΠΞϩάΛදࣔ }

Slide 15

Slide 15 text

override fun onCreate(savedInstanceState: Bundle?) { // ॲཧ1.. // ॲཧ2.. // ॲཧ3.. // ॲཧ4.. // ॲཧ5.. PO$SFBUFʹू·Δॲཧ ͍͍͠Ε͵ෆ҆

Slide 16

Slide 16 text

͔ͪ͘ʹ͍͍ݟຊ͕͋ͬͨ

Slide 17

Slide 17 text

࢓ࣄͰ࢖ΘΕ͍ͯΔ ίʔυͱͷࠩ

Slide 18

Slide 18 text

ࠩ w ΞʔΩςΫνϟ w ඇಉظ w ӬଓԽ w %FCVH5PPMT

Slide 19

Slide 19 text

ΞʔΩςΫνϟ

Slide 20

Slide 20 text

୅දతͳΞʔΩςΫνϟ w .71 w .77.

Slide 21

Slide 21 text

.71 .PEFM7JFX1SFTFOUFS

Slide 22

Slide 22 text

.71 .PEFM7JFX1SFTFOUFS 1SFTFOUFS ͕௚઀7JFXͷࢀর Λ΋ͭ

Slide 23

Slide 23 text

.77. .PEFM7JFX7JFX.PEFM

Slide 24

Slide 24 text

.77. .PEFM7JFX7JFX.PEFM ૒ํ޲ͷ%"5" #*/%*/(

Slide 25

Slide 25 text

୅දతͳΞʔΩςΫνϟ w .71 w J04ͱΞʔΩςΫνϟΛ߹Θͤ΍͍͢ w .77. w %BUB#JOEJOH͋ΔͷͰΑΓ؆ܿʹॻ͚Δ͕ίʔ υ͕ࣗಈੜ੒͞ΕΔͷͰͱ͖ͬͭʹ͍͘͜ͱ΋͋ Δ

Slide 26

Slide 26 text

୅දతͳΞʔΩςΫνϟ w .71 w .77. ࠓճ͸ͬͪ͜

Slide 27

Slide 27 text

.77. .PEFM7JFX7JFX.PEFM

Slide 28

Slide 28 text

.77.Ͱ࢖ΘΕΔ ެࣜϥΠϒϥϦ w 7JFX.PEFM w %BUB#JOEJOH w -JWF%BUB

Slide 29

Slide 29 text

7JFX.PEFM

Slide 30

Slide 30 text

7JFX.PEFM viewModel = ViewModelProviders.of(this).get(ViewModel::class.java) viewModel = ViewModelProviders.of(activity!!).get(ViewModel::class.java) .BJO"DUJWJUZLU .BJO'SBHNFOULU "DUJWJUZ 'SBHNFOU 7JFX .PEFM "DUJWJUZͷϥΠϑαΠΫϧͷ7JFX.PEFMΛ 'SBHNFOUͰڞ༗Ͱ͖Δ

Slide 31

Slide 31 text

%BUB#JOEJOH class ViewModel() { val body = MutableLiveData() fun submit() { // ॲཧ } }

Slide 32

Slide 32 text

%BUB#JOEJOH class ViewModel() { val body = MutableLiveData() fun submit() { // ॲཧ } }

Slide 33

Slide 33 text

%BUB#JOEJOH class ViewModel() { val body = MutableLiveData() fun submit() { // ॲཧ } }

Slide 34

Slide 34 text

%BUB#JOEJOH class ViewModel() { val body = MutableLiveData() fun submit() { // ॲཧ } }

Slide 35

Slide 35 text

%BUB#JOEJOH class ViewModel() { val body = MutableLiveData() fun submit() { // ॲཧ } }

Slide 36

Slide 36 text

-JWF%BUB 7JFX 7JFX.PEFM -JWF%BUB 3FQPTJUPSZ 4PNF 1SPDFTT ஋ʹมߋ͕͋Ε͹௨஌Λड͚ 7JFXΛมߋ Ϣʔβʔͷૢ࡞Ͱ มߋ͕͋Ε͹ઃఆ ஋Ληοτ มߋ͕͋Ε͹௨஌

Slide 37

Slide 37 text

-JWF%BUB class ViewModel() { val body = MutableLiveData() fun submit() { // ॲཧ } }

Slide 38

Slide 38 text

-JWF%BUB viewModel.allWords.observe(this, Observer { txt -> // มߋ௨஌࣌ͷॲཧ })

Slide 39

Slide 39 text

.77.ಋೖޮՌ w pOE7JFX#Z*Eͷ๾໓ w WJFXΛૢ࡞͢Δίʔυͷ๾໓ w PO$SFBUF͔ΒϩδοΫΛ੾Γ཭ͤͨ

Slide 40

Slide 40 text

Ӭଓॲཧ

Slide 41

Slide 41 text

Ӭଓॲཧ w ϝϞϦʹ࣋ͬͯΔ͚ͩͩͱͳΜ͔͠ΒͷλΠ ϛϯάͰ͙͢ফ͑Δ ౰વ w ඪ४ͷ42-JUFͷૢ࡞ϥΠϒϥϦ͕͋Δ͚Ͳ ৑௕

Slide 42

Slide 42 text

3PPN @Entity(tableName = "word_table") data class Word( @PrimaryKey @NonNull @ColumnInfo(name = "word") var mWord: String )

Slide 43

Slide 43 text

3PPN @Dao interface WordDao { @Insert fun insert(word: Word) @Query("DELETE FROM word_table") fun deleteAll() @Query("SELECT * FROM word_table ORDER BY word ASC") fun allWords(): LiveData> }

Slide 44

Slide 44 text

஫ҙ఺ w LPUMJOͩͱLBQUΛ࢖Θͳ͍ͱ࣮ߦ࣌Τϥʔ ͳΔ w .BJO5ISFBE 6*5ISFBE Ͱ࣮ߦ͢Δͱ ΤϥʔʹͳΔ

Slide 45

Slide 45 text

ඇಉظॲཧ

Slide 46

Slide 46 text

ඇಉظॲཧ w .BJO 6* 5ISFBEΛࢭΊͳ͍ͨΊʹ
 ඇಉظʹॲཧ͢Δඞཁ͕͋Δ w ओʹωοτϫʔΫɺσΟεΫΞΫηε͕ൃ ੜ͢Δॲཧ͕ର৅

Slide 47

Slide 47 text

ओͳखஈ w 3Y+BWB w ,PUMJODPSPVUJOFT

Slide 48

Slide 48 text

3Y+BWB w 3YܥͷϥΠϒϥϦͳͷͰɺͳΕͯΔਓ͸ͱͬ ͖ͭ΍͍͢ w ࠓͷͱ͜Ζͷఆ൪

Slide 49

Slide 49 text

"OESPJEͰͷ࢖༻ྫ fun done(task: Task) = repository.doneTask(task) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ // ੒ޭ࣌ͷॲཧ }, { // ࣦഊ࣌ͷॲཧ }) override fun doneTask(task: Task): Completable = Completable.create { try { task.status = Task.Status.DONE db.taskDao().updateTask(task) it.onComplete() } catch (e: Exception) { it.onError(e) } } ॲཧࣗମ͸ผεϨουʹͯ͠ ݁ՌΛϝΠϯεϨουͰड͚औΔ

Slide 50

Slide 50 text

,PUMJODPVSPVUJOFT

Slide 51

Slide 51 text

,PUMJODPVSPVUJOFT w ·ͩ&YQFSJNFOUBM w ܰྔεϨου

Slide 52

Slide 52 text

,PUMJODPSPVUJOFT w %JTQBUDIFS ࣮ߦ͢ΔεϨου w +PC DPSPVUJOFΛΩϟϯηϧͰ͖Δ w $PSPVUJOF$POUFYU ओʹ%JTQBUDIFSͱ+PCͷ ૊Έ߹Θͤ w 4DPQF είʔϓ಺Ͱ࣮ߦ͞ΕͨDPSPVUJOF͸ࢠ DPSPVUJOFʹͳΔ

Slide 53

Slide 53 text

είʔϓ ਌ ࢠ ࢠ ࢠ +PC $BODFM ਌ͷείʔϓͰ࡞ΒΕͨ $PSPVUJOF͸ࢠ$PSPVUJOFʹͳΔ ਌ͷ+PCΛΩϟϯηϧ͢Δͱ ࠶ؼతʹࢠΛ$BODFM͢Δ

Slide 54

Slide 54 text

class WordViewModel(application: Application) : AndroidViewModel(application) { private var parentJob = Job() private val coroutineContext: CoroutineContext get() = parentJob + Dispatchers.Main private val scope = CoroutineScope(coroutineContext) override fun onCleared() { super.onCleared() parentJob.cancel() } } viewModel.scope.launch(Dispatchers.IO) { // ඇಉظʹ͍ͨ͠ॲཧ } "OESPJEͰͷ࢖༻ྫ "DUJWJUZͷഁغ࣌ʹίϧʔνϯΛDBODFM͠ͳ͍ͱ ϝϞϦϦʔΫ͢ΔՄೳੑ͕͋Δ

Slide 55

Slide 55 text

σόοΫʹ࢖͑Δπʔϧ

Slide 56

Slide 56 text

%FCVH5PPMT w TUFUIP w IZQFSJPO

Slide 57

Slide 57 text

TUFUIP w $ISPNFͰ%FW5PPMTͱಉ͡ૢ࡞ੑͰ "OESPJEͷঢ়ଶ͕ΈΕΔ

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

DISPNFJOTQFDUEFWJDFT ʹΞΫηε

Slide 60

Slide 60 text

ඪ४Ͱ42-JUF 4IBSFE1SFGFSFODFͳͲ͕ݟΕΔ

Slide 61

Slide 61 text

ϓϥάΠϯΛ࢖͑͹ωοτϫʔΫ௨৴΋ΈΕΔ

Slide 62

Slide 62 text

IZQFSJPO w ΞϓϦͰΞϓϦͷσόοά͕Ͱ͖Δ

Slide 63

Slide 63 text

No content

Slide 64

Slide 64 text

ࢀߟʹͨ͠ιʔε w %SPJE,BJHJͷެࣜΞϓϦ w (PPHMFެࣜͷ"OESPJE"SDIJUFDUVSF ͷιʔεɻϦϙδτϦͰΞʔΩςΫνϟΛϒ ϥϯνͰ੾Γସ͑ΒΕΔ

Slide 65

Slide 65 text

͍͞͝ʹ w ๻͕ಠֶͰษڧͯ͠Δ͚ͩͰ͸ͨͲΓ͖ͭʹ ͍͘෦෼Λ·ͱΊ·ͨ͠ w ॳֶऀͷ໾ʹܦͯ͹޾͍Ͱ͢

Slide 66

Slide 66 text

͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠