Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

໨࣍ • ,PUMJO ͱ͸ • ։ൃͨ͠ΞϓϦͷ঺հ – ΞʔΩςΫνϟ – ґଘϥΠϒϥϦ • 'VMM,PUMJO Ͱ։ൃͯ͠Έͯ – ϑΝΠϧߏ੒ – ྑ͘ͳ͔ͬͨ఺ ྑ͔ͬͨ఺ • Α͋͘Δ࣭໰ • ·ͱΊ

Slide 3

Slide 3 text

໨࣍ • ,PUMJO ͱ͸ • ։ൃͨ͠ΞϓϦͷ঺հ – ΞʔΩςΫνϟ – ґଘϥΠϒϥϦ • 'VMM,PUMJO Ͱ։ൃͯ͠Έͯ – ϑΝΠϧߏ੒ – ྑ͘ͳ͔ͬͨ఺ ྑ͔ͬͨ఺ • Α͋͘Δ࣭໰ • ·ͱΊ

Slide 4

Slide 4 text

• +FU#SBJOT Λத৺ʹ 044։ൃ • WϦϦʔε • +BWBޓ׵ +7.Ͱಈ࡞

Slide 5

Slide 5 text

• +BWBͱͷ૬ޓӡ༻ੑ • ؆ܿͳจ๏ • OVMM҆શ • ߴ֊ؔ਺ • ֦ுؔ਺ • σϑΥϧτ࣮૷Մೳͳ JOUFSGBDF ,PUMJO +BWBΛ࢖͍΍͘͢ൃలͤͨ͞ݴޠ

Slide 6

Slide 6 text

໨࣍ • ,PUMJO ͱ͸ • ։ൃͨ͠ΞϓϦͷ঺հ – ΞʔΩςΫνϟ – ґଘϥΠϒϥϦ • 'VMM,PUMJO Ͱ։ൃͯ͠Έͯ – ϑΝΠϧߏ੒ – ྑ͘ͳ͔ͬͨ఺ ྑ͔ͬͨ఺ • Α͋͘Δ࣭໰ • ·ͱΊ

Slide 7

Slide 7 text

• Ґஔ৘ใ࿈ಈܕήʔϜ • J04൛ – 'VMM4XJGU • "OESPJE൛ – 'VMM,PUMJO ࠓ೔͸ͪ͜Βͷ࿩

Slide 8

Slide 8 text

• 3 層アーキテクチャ – Model <-> ViewModel <-> View • Full Kotlin – プロジェクトコード -> 基本的に全て Kotlin – 依存ライブラリ -> Kotlin 製を積極的に採用 • RxJava 全面採用

Slide 9

Slide 9 text

• 3Y+BWB 3Y#JOEJOH • LPUUFSLOJGF • 3FUSPGJU ௨৴ • 1JDBTTP ը૾ • .PDLJUP 1PXFS.PDL ςετ • 3FBMN

Slide 10

Slide 10 text

Activity / Fragment / View – 描画処理 ViewModel – View への Binding 処理 Model - Observable の加工処理 0CTFSWBCMF 3Y 3Y#JOEJOH 0CTFSWBCMF 3Y 3FUSPGJU

Slide 11

Slide 11 text

໨࣍ • ,PUMJO ͱ͸ • ։ൃͨ͠ΞϓϦͷ঺հ – ΞʔΩςΫνϟ – ґଘϥΠϒϥϦ • 'VMM,PUMJO Ͱ։ൃͯ͠Έͯ – ϑΝΠϧߏ੒ – ྑ͘ͳ͔ͬͨ఺ ྑ͔ͬͨ఺ • Α͋͘Δ࣭໰ • ·ͱΊ

Slide 12

Slide 12 text

શମͷϑΝΠϧߏ੒ ,PUMJO  +BWB  (SPPWZ  言語別 ファイル数 比率 ü ࣗಈੜ੒ίʔυ ü ೝূपΓ ü (SBEMF ü ,PUMJO  GJMFT ü ΄΅શͯͷιʔείʔυ

Slide 13

Slide 13 text

ߏ੒ཁૉ͝ͱͷൺ཰ 7JFX  7JFX.PEFM  .PEFM  "1*  0UIFS  構成要素別 ファイル数 比率 ü MBZPVU YNM ϑΝΠϧؚ·ͣ ü "DUJWJUZ ü 'SBHNFOU ü ଟ਺ͷ $VTUPN7JFX ü "1*ΫϥΠΞϯτ ü ࣗಈੜ੒ίʔυ ü 7JFXͱ .PEFMͷ݁߹ॲཧ

Slide 14

Slide 14 text

• ,PUMJO ͷഁյతมߋʹΑΓಈ࡞͠ͳ͘ͳΔ – WҎલͷ࿩ɺݱࡏ͸҆ఆ • ϝιου਺͕૿͑Δ – LPUMJOTUEMJC ΁ͷґଘͰ  ૿͑Δ – ͋Δఔ౓ͷن໛Ҏ্ .VMUJ%FY ඞਢ • +BWB͕ॻ͚ͳ͘ͳΔ – ,PUMJO ͕ૉ੖Β͗ͯ͢͠ +BWBͷίʔυΛॻ͖ͨ͘ͳ͘ͳΔ

Slide 15

Slide 15 text

ίʔυ͕୹͘ͳΔ QVCMJDDMBTT)FMMP\ QSJWBUF4USJOHOBNF QVCMJD)FMMP 4USJOHOBNF \ UIJTOBNF OBNF ^ QVCMJD4USJOHHFU/BNF \ SFUVSOUIJTOBNF ^ QVCMJDWPJETFU/BNF 4USJOHOBNF \ UIJTOBNF OBNF ^ QVCMJDWPJEIFMMP \ 4ZTUFNPVUQSJOUMO l)FMMPl UIJTOBNF  ^ ^ class Hello(var name: String) { fun hello() { println("Hello $name") } } Kotlin Java 4 行 15 行 ˞ ຊ౰ʹ౳ՁίʔυͰ͢

Slide 16

Slide 16 text

OVMM҆શ Java Kotlin QVCMJDWPJEQSJOU4USJOH-FOHUI 4USJOHTUS \ JG TUS OVMM \ 4ZTUFNPVUQSJOUMO TUSMFOHUI  ^ ^ fun printStringLength(str: String) { println(str.length) } σϑΥϧτͰ͸ OPOOVMM fun printStringLength(str: String?) { str?.let { println(it.length) } } OVMMBCMF Ͱѻ͏͜ͱ΋Մೳ

Slide 17

Slide 17 text

ίϨΫγϣϯϝιου͕ॆ࣮ ࢀߟIUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJCLPUMJODPMMFDUJPOT  NBQ\JU ^SFEVDF\B CB C^ MFU\QSJOUMO JU ^ ྫʙ ۮ਺ͷ࿨Λදࣔ ଞɺ--Ͱ͸ఆ൪ͳϝιου͕ඪ४ 例: forEach / filter / map / reduce / all / any / first / last

Slide 18

Slide 18 text

໨࣍ • ,PUMJO ͱ͸ • ։ൃͨ͠ΞϓϦͷ঺հ – ΞʔΩςΫνϟ – ґଘϥΠϒϥϦ • 'VMM,PUMJO Ͱ։ൃͯ͠Έͯ – ϑΝΠϧߏ੒ – ྑ͘ͳ͔ͬͨ఺ ྑ͔ͬͨ఺ • Α͋͘Δ࣭໰ • ·ͱΊ

Slide 19

Slide 19 text

2*%&αϙʔτ͸ " "OESPJE4UVEJPͱͷ૬ੑ׬ᘳ – ,PUMJO ͷόʔδϣϯΞοϓ࣌ʹ ϓϥάΠϯ΋ಉ࣌ʹόʔδϣϯΞοϓ – +FU#SBJOT ͷ։ൃ͢Δݴޠ͔ͩΒͳͤΔٕ

Slide 20

Slide 20 text

2ίϯύΠϧ଎౓஗͘ͳ͍ " ௨ৗͷهड़ͳΒಉ౳ͷ଎౓ – ܕਪ࿦ଟ༻Ͱ஗͘ͳΔ͜ͱ͕͋Δ – 4XJGUΑΓ΋ ίϯύΠϧ͸ ѹ౗తʹૣ͍ – ࣮ࡍͷ։ൃͰ͸ EFY ॲཧͷ஗͕͞໨ཱͬͨ

Slide 21

Slide 21 text

2+BWBͱͷޓ׵ੑ͸ " ૬ޓӡ༻Ͱ͖·͢ – +BWB,PUMJO ݺͼग़ͤΔ – ,PUMJO +BWBݺͼग़ͤΔ – ಉ͡ϓϩδΣΫτʹࠞࡏՄೳ

Slide 22

Slide 22 text

໨࣍ • ,PUMJO ͱ͸ • ։ൃͨ͠ΞϓϦͷ঺հ – ΞʔΩςΫνϟ – ґଘϥΠϒϥϦ • 'VMM,PUMJO Ͱ։ൃͯ͠Έͯ – ϑΝΠϧߏ੒ – ྑ͘ͳ͔ͬͨ఺ ྑ͔ͬͨ఺ • Α͋͘Δ࣭໰ • ·ͱΊ

Slide 23

Slide 23 text

• ,PUMJO ͸े෼ͷ੒ख़ͨ͠ݴޠ • ։ൃ͕+FU#SBJOT ͳ͜ͱ͕ڧΈ – "OESPJE4UVEJPͱͷ׬શ౷߹ • ಉϓϩδΣΫτʹ +BWB ͱڞଘͰ͖Δ – ͻͱ·ͣಋೖͯ͠Έͯ͸