Slide 1

Slide 1 text

Android Postfix Completion Ͱര଎ίʔσΟϯά takahirom

Slide 2

Slide 2 text

takahirom • Android͕޷͖Ͱ͢ • AndroidͷϥΠϒϥϦ,AndroidStudioϓϥάΠϯΛ࡞͍ͬͯͨΓ͠·͢ • Github͕झຯͰ͢ • 1೔1ίϛοτΛଓ͚͍ͯ·͢ • Contribution streak͕365೔ʹͳΓ·ͨ͠ʂ

Slide 3

Slide 3 text

takahirom • Android͕޷͖Ͱ͢ • AndroidͷϥΠϒϥϦ,AndroidStudioϓϥάΠϯΛ࡞͍ͬͯͨΓ͠·͢ • Github͕झຯͰ͢ • 1೔1ίϛοτΛଓ͚͍ͯ·͢ • Contribution streak͕365೔ʹͳΓ·ͨ͠ʂ ↑ͷ࿩Λ͠·͢

Slide 4

Slide 4 text

Postfix Completionͱ͸

Slide 5

Slide 5 text

Postfix Completionͱ͸ • AndroidStudioͷݩͷIntelliJ IDEAʹ͋Δػೳ

Slide 6

Slide 6 text

Postfix Completionͱ͸ • AndroidStudioͷݩͷIntelliJ IDEAʹ͋Δػೳ • test.par Ͱ (test)ͱ͍ͬͨม׵Λͯ͘͠ΕͨΓͱ͍ͬͨิ׬͕ Ͱ͖Δ΋ͷͰ͢ɻ

Slide 7

Slide 7 text

Postfix Completionͱ͸ • AndroidStudioͷݩͷIntelliJ IDEAʹ͋Δػೳ • test.par Ͱ (test)ͱ͍ͬͨม׵Λͯ͘͠ΕͨΓͱ͍ͬͨิ׬͕ Ͱ͖Δ΋ͷͰ͢ɻ • Android StudioσϑΥϧτͰར༻Ͱ͖·͢ɻ

Slide 8

Slide 8 text

Postfix Completionͱ͸ • AndroidStudioͷݩͷIntelliJ IDEAʹ͋Δػೳ • test.par Ͱ (test)ͱ͍ͬͨม׵Λͯ͘͠ΕͨΓͱ͍ͬͨิ׬͕ Ͱ͖Δ΋ͷͰ͢ɻ • Android StudioσϑΥϧτͰར༻Ͱ͖·͢ɻ • ৭Μͳछྨ͕͋ͬͯศརͰ͢

Slide 9

Slide 9 text

Postfix Completion σϞ • new ArrayList().var • list.for • savedInstanceState.nn • list.field • ɻɻɻɻ

Slide 10

Slide 10 text

Postfix Completion σϞ • new ArrayList().var • list.for • savedInstanceState.nn • list.field • ɻɻɻɻ • ઃఆը໘ʹҰཡ͕͋Γ·͢

Slide 11

Slide 11 text

࠷ߴʂAndroid൛ཉ͍͠ʂ

Slide 12

Slide 12 text

࠷ߴʂAndroid൛ཉ͍͠ʂ • ઃఆը໘͔Β͸͍͡Εͳ͍ɺɺ

Slide 13

Slide 13 text

࠷ߴʂAndroid൛ཉ͍͠ʂ • ઃఆը໘͔Β͸͍͡Εͳ͍ɺɺ • ࡞ΕΔΈ͍ͨͳͷͰ࡞Γ·ͨ͠ʂ

Slide 14

Slide 14 text

࠷ߴʂAndroid൛ཉ͍͠ʂ • ઃఆը໘͔Β͸͍͡Εͳ͍ɺɺ • ࡞ΕΔΈ͍ͨͳͷͰ࡞Γ·ͨ͠ʂ • →Android Postfix Completion

Slide 15

Slide 15 text

Android Postfix Completionͱ͸

Slide 16

Slide 16 text

Android Postfix Completionͱ͸ • “Postfix Completion”ΛAndroidಛԽʹͨ͠΋ͷ

Slide 17

Slide 17 text

Android Postfix Completionͱ͸ • “Postfix Completion”ΛAndroidಛԽʹͨ͠΋ͷ • ࣗ࡞Android StudioϓϥάΠϯ

Slide 18

Slide 18 text

Android Postfix Completionͱ͸ • “Postfix Completion”ΛAndroidಛԽʹͨ͠΋ͷ • ࣗ࡞Android StudioϓϥάΠϯ • 6000μ΢ϯϩʔυಥഁ

Slide 19

Slide 19 text

Android Postfix Completionͱ͸ • “Postfix Completion”ΛAndroidಛԽʹͨ͠΋ͷ • ࣗ࡞Android StudioϓϥάΠϯ • 6000μ΢ϯϩʔυಥഁ • https://plugins.jetbrains.com/plugin/7775?pr=

Slide 20

Slide 20 text

ϥΠϒίʔσΟϯά • Ϣʔβʔ໊ͱύεϫʔυ͕ೖ͍ͬͯͯ • fabΛλοϓ͢Δͱ • ”ొ࿥׬ྃ”ͱ͍͏τʔετΛදࣔ͢Δ

Slide 21

Slide 21 text

Android Postfix CompletionͰͰ͖Δ͜ͱ • .toast ←τʔετ࡞ΕΔ • .log←ϩάग़ͤΔ • .findv←findViewग़ͤΔ • isemp←TextUtils.isEmpty (@kikuchy͞Μ͋Γ͕ͱ͏) • ͳͲͳͲ

Slide 22

Slide 22 text

ࣗ෼ͰςϯϓϨʔτΛ௥Ճͯ͠ΈΑ͏ • ։ൃ؀ڥߏஙʹ͍ͭͯ • ͜ͷϓϥάΠϯͷ࢓૊Έʹ͍ͭͯ

Slide 23

Slide 23 text

؀ڥߏங 1. git clone [email protected]:takahirom/android-postfix-plugin.git 2. IntelliJ IDEAͰΠϯϙʔτ(Πϯετʔϧ͓͍͍ͯͯͩ͘͠͞) 3. Run/Debug configuration͔ΒGradleͰઃఆ 4. ࣮ߦ͢ΔͱPluginΠϯετʔϧࡁΈIntelliJ IDEA͕ىಈ͢Δ

Slide 24

Slide 24 text

؀ڥߏங • Run/Debug configuration͔Β GradleͰઃఆ • ݁ߏ؆୯Ͱ͢

Slide 25

Slide 25 text

͜ͷϓϥάΠϯͷ࢓૊Έʹ͍ͭͯ (݁ߏख୳ΓͳͷͰࣗ৴͕ͳ͍෦෼͕ ଟʑ͋Γ·͢)

Slide 26

Slide 26 text

1:postfixTemplateProviderΛఆٛ • plugin.xml͕AndroidManifest.xmlͷΑ͏ͳ΋ͷͰ͢ɻ • (௥Ճ͢Δ৔߹͸͢Ͱʹొ࿥͞Ε͍ͯΔͷͰมߋ͢Δඞཁ͸ ͳ͍Ͱ͢)

Slide 27

Slide 27 text

2:ProviderͷΫϥεΛ࡞ΓςϯϓϨʔτҰཡΛฦ͢ • ͲΜͳςϯϓϨʔτ͕͋Δͷ͔ΛAndroidStudioʹೝࣝͤ͞Δ

Slide 28

Slide 28 text

3:TemplateΛ࡞Δ • .soutͰSystem.out.println($expr);Λग़͢ྫ

Slide 29

Slide 29 text

3:TemplateΛ࡞Δ • .soutͰSystem.out.println($expr);Λग़͢ྫ ม਺.soutͰදࣔ͞ΕΔ

Slide 30

Slide 30 text

3:TemplateΛ࡞Δ • .soutͰSystem.out.println($expr);Λग़͢ྫ ม਺.soutͰදࣔ͞ΕΔ ม׵࣌ʹީิʹදࣔ͞ΕΔྫ

Slide 31

Slide 31 text

3:TemplateΛ࡞Δ • .soutͰSystem.out.println($expr);Λग़͢ྫ ม਺.soutͰදࣔ͞ΕΔ ม׵࣌ʹީิʹදࣔ͞ΕΔྫ ީิʹදࣔ͢Δม਺ͷ৚݅

Slide 32

Slide 32 text

3:TemplateΛ࡞Δ • .soutͰSystem.out.println($expr);Λग़͢ྫ ม਺.soutͰදࣔ͞ΕΔ ม׵࣌ʹީิʹදࣔ͞ΕΔྫ ީิʹදࣔ͢Δม਺ͷ৚݅ ςϯϓϨʔτ $expr$͸ม਺.soutͷม਺ 
 $END$͸ऴྃ࣌ͷΧʔιϧͷҐஔ

Slide 33

Slide 33 text

4:ม਺ͷ಺༰ͳͲʹΑͬͯಈతʹม͑Δ • .logͰLog.d(“MainActivity”, “i:” + i)Ͱ΍͍ͬͯΔ͜ͱ

Slide 34

Slide 34 text

4:ม਺ͷ಺༰ͳͲʹΑͬͯಈతʹม͑Δ • .logͰLog.d(“MainActivity”, “i:” + i)Ͱ΍͍ͬͯΔ͜ͱ static import͍ͯ͠Δ͔ Ͳ͏͔Ͱɺग़͢จࣈΛม͑Δ

Slide 35

Slide 35 text

4:ม਺ͷ಺༰ͳͲʹΑͬͯಈతʹม͑Δ • .logͰLog.d(“MainActivity”, “i:” + i)Ͱ΍͍ͬͯΔ͜ͱ ςϯϓϨʔτจࣈྻ $TAG $expr $END$͕͋Δ static import͍ͯ͠Δ͔ Ͳ͏͔Ͱɺग़͢จࣈΛม͑Δ

Slide 36

Slide 36 text

4:ม਺ͷ಺༰ͳͲʹΑͬͯಈతʹม͑Δ • .logͰLog.d(“MainActivity”, “i:” + i)Ͱ΍͍ͬͯΔ͜ͱ ςϯϓϨʔτจࣈྻ $TAG $expr $END$͕͋Δ $exprʹ୅ೖ͢Δ Log.dͷҾ਺͸StringͳͷͰ ඞཁʹԠͯ͡”expr:”+exprʹ͢Δ static import͍ͯ͠Δ͔ Ͳ͏͔Ͱɺग़͢จࣈΛม͑Δ

Slide 37

Slide 37 text

4:ม਺ͷ಺༰ͳͲʹΑͬͯಈతʹม͑Δ • .logͰLog.d(“MainActivity”, “i:” + i)Ͱ΍͍ͬͯΔ͜ͱ ςϯϓϨʔτจࣈྻ $TAG $expr $END$͕͋Δ $exprʹ୅ೖ͢Δ Log.dͷҾ਺͸StringͳͷͰ ඞཁʹԠͯ͡”expr:”+exprʹ͢Δ $TAGʹ୅ೖ͢Δ ඞཁʹԠͯ͡TAGม਺Λ࢖ͬͨΓɺ Ϋϥε໊Λ࢖ͬͨΓ͢Δ static import͍ͯ͠Δ͔ Ͳ͏͔Ͱɺग़͢จࣈΛม͑Δ

Slide 38

Slide 38 text

5:ઃఆը໘ʹදࣔ͞ΕΔtemplateϑΝΠϧΛॻ͘

Slide 39

Slide 39 text

ͭΒ͍͜ͱ • ݁ߏ࣮૷ํ๏͸ख୳ΓͰ͢ • AOSP͔ΒAndroid StudioͷίʔυΛམͱͤΔͷͰɺGrep͠·͘Γ· ͠ΐ͏(R.id.text→TextViewΈ͍ͨͳͷΛ୳ͨ͠Γ͠·ͨ͠) • AOSPͷAndroid StudioͷcloneͱϏϧυ:http://tools.android.com/build • IntelliJ Plugin ษڧձͰ஌ݟ͕ٵ͑·͢ɻ(Gradle-intellij-pluginΛڭ͑ͯ ໯͑ͨΓ͠·ͨ͠ɻ)

Slide 40

Slide 40 text

·ͱΊ • ͥͻ࢖ͬͯΈ͍ͯͩ͘͞ʂ https://plugins.jetbrains.com/plugin/7775 • ϑΟʔυόοΫ଴͍ͬͯ·͢ʂ • ϓϧϦΫΤετ΋଴͍ͬͯ·͢ʂhttps://github.com/takahirom/android- postfix-plugin • GradleରԠ͍ͯ͠ΔͷͰ݁ߏ؆୯ʹ։ൃ؀ڥ࡞Ε·͢ʂ • GithubͷϦϙδτϦʹ˒͚͍ͭͯͩ͘͞ʂ