実践!Android Studioプラグイン開発

35e08efcf39d692f540047fb756eb4e3?s=47 konifar
February 18, 2016

実践!Android Studioプラグイン開発

DroidKaigi

35e08efcf39d692f540047fb756eb4e3?s=128

konifar

February 18, 2016
Tweet

Transcript

  1. ࣮ફʂ"OESPJE4UVEJP ϓϥάΠϯ։ൃ ʢ໦ʣ খ੢༟հʢ!LPOJGBSʣ %SPJE,BJHJ3PPN#

  2. ͜ʹ;͊ʔ !LPOJGBS

  3. 5BQUSJQ w ੈքதʹ༑ͩͪΛ࡞ΕΔ w ࣗಈ຋༁Ͱ؆୯ίϛϡχ έʔγϣϯ w ϲࠃສਓ͕ར༻ IUUQTQMBZHPPHMFDPNTUPSFBQQT EFUBJMT

    JEDPNUBQUSJQ
  4. BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO

  5. BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO w ϚςϦΞϧΞΠίϯΛ؆୯ʹ഑ஔͰ͖Δ
 IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ

  6. BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO w ϚςϦΞϧΞΠίϯΛ؆୯ʹ഑ஔͰ͖Δ
 IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ

  7. BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO w ϚςϦΞϧΞΠίϯΛ؆୯ʹ഑ஔͰ͖Δ
 IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ

  8. BOESPJENBUFSJBMJDPOHFOFSBUPS w ϚςϦΞϧΞΠίϯΛ؆୯ʹ഑ஔͰ͖Δ
 IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ ಛʹݸਓ։ൃͷ࣌ʹ͘͢͝ศརʂ

  9. BOESPJENBUFSJBMJDPOHFOFSBUPS

  10.  Πϯετʔϧ͘Β͍

  11. ϓϥάΠϯ։ൃͷ ࿩Λ͠·͢

  12. ϓϥάΠϯ։ൃͷಛ௃ ͓͞Β͍

  13. "OESPJE4UVEJPϓϥάΠϯͷಛ௃ w *OUFMMJ+ϕʔεɻ։ൃʹ͸*OUFMMJ+͕ඞཁɻ w ը໘·ΘΓ͸4XJOHɻ w +BWBͩͱಈ͔ͳ͍ͷͰ+BWBͰ։ൃ͕ඞཁɻ

  14. "OESPJE4UVEJPϓϥάΠϯͷಛ௃ w *OUFMMJ+ϕʔεɻ։ൃʹ͸*OUFMMJ+͕ඞཁɻ w ը໘·ΘΓ͸4XJOHɻ w +BWBͩͱಈ͔ͳ͍ͷͰ+BWBͰ։ൃ͕ඞཁɻ

  15. "OESPJE4UVEJPϓϥάΠϯͷಛ௃ w *OUFMMJ+ϕʔεɻ։ൃʹ͸*OUFMMJ+͕ඞཁɻ w ը໘·ΘΓ͸4XJOHɻ w +BWBͩͱಈ͔ͳ͍ͷͰ+BWBͰ։ൃ͕ඞཁɻ

  16. )FMMP8PSME

  17. )FMMP8PSMEͷखॱ  *OUFMMJ+ΛΠϯετʔϧ  *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞੒  QMVHJOYNMΛهड़  "DUJPOΫϥεΛ࡞੒ 

    Ϗϧυ࣮ߦ
  18. )FMMP8PSMEͷखॱ  *OUFMMJ+ΛΠϯετʔϧ  *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞੒  QMVHJOYNMΛهड़  "DUJPOΫϥεΛ࡞੒ 

    Ϗϧυ࣮ߦ
  19. )FMMP8PSMEͷखॱ  *OUFMMJ+ΛΠϯετʔϧ  *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞੒  QMVHJOYNMΛهड़  "DUJPOΫϥεΛ࡞੒ 

    Ϗϧυ࣮ߦ
  20. )FMMP8PSMEͷखॱ  *OUFMMJ+ΛΠϯετʔϧ  *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞੒  QMVHJOYNMΛهड़  "DUJPOΫϥεΛ࡞੒ 

    Ϗϧυ࣮ߦ
  21. )FMMP8PSMEͷखॱ  *OUFMMJ+ΛΠϯετʔϧ  *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞੒  QMVHJOYNMΛهड़  "DUJPOΫϥεΛ࡞੒ 

    Ϗϧυ࣮ߦ
  22. )FMMP8PSMEͷखॱ  *OUFMMJ+ΛΠϯετʔϧ  *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞੒  QMVHJOYNMΛهड़  "DUJPOΫϥεΛ࡞੒ 

    Ϗϧυ࣮ߦ
  23. )FMMP8PSMEͷखॱ  *OUFMMJ+ΛΠϯετʔϧ  *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞੒  QMVHJOYNMΛهड़  "DUJPOΫϥε 

    Ϗϧυ ৄ͘͠͸2JJUBʹʂ IUUQRJJUBDPNLPOJGBSJUFNTDF⒎FDGD
  24. ͜͜·Ͱ͸ΘΓͱ؆୯

  25. ໰୊͸͜ͷઌ

  26. ԿΛͲ͏ͨ͠Β͍͍͔Θ͔Βͳ͍ w ςΩετΛબ୒ͨ࣌͠ʹϝχϡʔग़͢ʹ͸ʁ w μΠΞϩά΍Ξϥʔτ͸Ͳ͏΍ͬͯग़͢ͷʁ w ϑΝΠϧૢ࡞͸Ͳ͏΍Δͷʁ

  27. ϓϥάΠϯΛ ࣮ࡍʹ࡞Δ࣌ʹ໾ཱͭ ࿩Λ͠·͢

  28. ࠓ೔࿩͢͜ͱ ͓֮͑ͯ͘΂͖Ϋϥεͱ໾ׂ 6*ͷ࣮૷ ೰Μͩ࣌ͷௐ΂ํ

  29. ࠓ೔࿩͞ͳ͍͜ͱ جຊతͳ։ൃͷྲྀΕ TXJOHͷࡉ͔͍࿩ ςετίʔυͷ࿩

  30. ͓֮͑ͯ͘΂͖Ϋϥεͱ໾ׂ

  31. "O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF

  32. "O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF

  33. "O"DUJPO&WFOU w ϓϥάΠϯͷ"DUJPOʹؔ࿈͢Δ͞· ͟·ͳ৘ใΛऔಘͰ͖ΔΫϥε w ϓϩδΣΫτͷத਎Λࢀরɺૢ࡞ͨ͠ ͍࣌ʹɺ͜ͷΫϥε͔Β৘ใΛऔಘͰ ͖Δ

  34. ϝχϡʔͷදࣔΛ੾Γସ͑Δ KBWBϑΝΠϧ্Ͱ ӈΫϦοΫ TUSJOHTYNM্Ͱ ӈΫϦοΫ

  35. ϝχϡʔͷදࣔΛ੾Γସ͑Δ

  36. ϝχϡʔͷදࣔΛ੾Γସ͑Δ TUSJOHTYNM͔Ͳ͏͔ͷ൑ఆ

  37. ϝχϡʔͷදࣔΛ੾Γସ͑Δ FWFOUHFU1SFTFOUBUJPO TFU7JTJCMF  ͰදࣔΛ੾Γସ͑

  38. "O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF

  39. 1SPKFDU w ϓϩδΣΫτ໊΍σΟϨΫτϦͷύεͳ ͲɺϓϩδΣΫτͷ৘ใΛऔಘͰ͖Δ w 1SPKFDU3PPU.BOBHFS Λ࢖ͬͯɺ4%, ΍Ϗϧυର৅ͷιʔεσΟϨΫτϦͳͲ ΋औಘͰ͖Δ

  40. 4%,όʔδϣϯΛऔಘ͢Δ

  41. 4%,όʔδϣϯΛऔಘ͢Δ 1SPKFDU3PPU.BOBHFSΛ࢖ͬͯ 4ELΛऔಘ

  42. 4%,όʔδϣϯΛऔಘ͢Δ ϧʔτύε΍ϑΝΠϧҰཡΛ औಘ͢Δ͜ͱ΋Ͱ͖Δ

  43. "O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF

  44. &EJUPS w ΤσΟλ಺ͷ৘ใΛऔಘͰ͖Δɻ

  45. ൣғબ୒தͷςΩετΛऔಘ͢Δ

  46. ൣғબ୒தͷςΩετΛऔಘ͢Δ FEJUPSHFU4FMFDUJPO.PEFM Ͱ બ୒தͷςΩετͷ৘ใΛऔಘ IBT4FMFDUJPO Ͱબ୒த͔Λ൑ఆ

  47. ൣғબ୒தͷςΩετΛऔಘ͢Δ HFU4FMFDUFE5FYU Ͱબ୒தͷ ςΩετΛऔಘ

  48. ΤσΟλΛҰ൪্·ͰεΫϩʔϧ HFU4DSPMM.PEFM ͰεΫϩʔϧΛ දݱͨ͠ϞσϧΛऔಘ

  49. ΤσΟλΛҰ൪্·ͰεΫϩʔϧ TDSPMM7FSUJDBMMZ  ͰҰ൪্·Ͱ εΫϩʔϧͤ͞Δ

  50. "O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF

  51. %PDVNFOU w ΤσΟλʹදࣔ͞ΕͨςΩετΛऔಘɺ ฤूͰ͖Δ

  52. ΤσΟλ಺ͷςΩετΛऔಘ͢Δ

  53. ΤσΟλ಺ͷςΩετΛऔಘ͢Δ FEJUPSHFU%PDVNFOU HFU5FYU  ͰςΩετΛऔಘ

  54. ΤσΟλ಺ͷมߋΛݕ஌͢Δ

  55. ΤσΟλ಺ͷมߋΛݕ஌͢Δ

  56. "O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF

  57. 1TJ'JMF w 1SPHSBN4USVDUVSF*OUFSGBDF'JMF w *OUFMMJ+Ͱѻ͏ϑΝΠϧͷந৅Ϋϥε w ϓϩδΣΫτ಺ͷϑΝΠϧͷ৘ใΛऔ ಘͰ͖Δ

  58. ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ

  59. ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ

  60. ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ FEJUPSHFU$BSFU.PEFM ͔Β ΧʔιϧҐஔΛऔಘ

  61. ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ QTJ'JMFpOE&MFNFOU"U P⒎TFU  ͰΧʔιϧҐஔͷཁૉΛऔಘ

  62. ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ ΧʔιϧҐஔʹ͋ͬͨςΩετ 'MPBUJOH"DUJPO#VUUPOͷ&MFNFOU

  63. 6*ͷ࣮૷

  64. %JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS ࢖͍উखͷΑ͍ίϯϙʔωϯτ

  65. %JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS

  66. %JBMPH

  67. %JBMPH8SBQQFSΛ࢖͏

  68. %JBMPH8SBQQFSΛ࢖͏

  69. %JBMPHͷݺͼग़͠

  70. %JBMPHͷݺͼग़͠

  71. %JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS

  72. &EJUPS)JOU

  73. )JOU.BOBHFS

  74. )JOU.BOBHFS

  75. %JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS

  76. /PUJpDBUJPO

  77. /PUJpDBUJPOT#VT

  78. /PUJpDBUJPOT#VT

  79. %JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS

  80. 'JMF$IPPTFS

  81. 5FYU'JFME8JUI#SPXTF#VUUPO 5FYU'JFME8JUI#SPVTF#VUUPOʹ BEE#SPXTF'PMEFS-JTUFOFS Λ͚ͭΔ

  82. 5FYU'JFME8JUI#SPXTF#VUUPO

  83. ೰Μͩ࣌ͷௐ΂ํ

  84. ެ։͞Ε͍ͯΔίʔυΛ ಡΉͷ͕Ұ൪ૣ͍

  85. "OESPJE4UVEJP1MVHJO3FQPTJUPSZ w IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO

  86. "OESPJE4UVEJP1MVHJO3FQPTJUPSZ w IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO "MM1MVHJOT 

  87.  JOUFMMJKTELEPDT  BOESPJEQBSDFMBCMFJOUFMMJKQMVHJO  BOESPJEESBXBCMFJNQPSUFSJOUFMMJKQMVHJO  BECJEFB  "OESPJE4UVEJP$PEF

    Φεεϝ̑ͭ
  88. JOUFMMJKTELEPDT w ެࣜͷυΩϡϝϯτ w ΤσΟλૢ࡞΍ίʔυΠϯεϖΫγϣϯͳͲɺ छྨผʹ෼͚ͯγϯϓϧͳ࣮૷ίʔυ͕٧·ͬ ͍ͯΔ w ,PUMJOͷαϯϓϧ΋͋Δ IUUQTHJUIVCDPN+FU#SBJOTJOUFMMJKTELEPDT

    USFFNBTUFSDPEF@TBNQMFT
  89. BOESPJEQBSDFMBCMFJOUFMMJKQMVHJO w 1BSDFMBCMFͷ࣮૷ίʔυΛࣗಈੜ੒ͯ͘͠Ε ΔϓϥάΠϯ w μΠΞϩάͷදࣔ΍ίʔυͷੜ੒ɺϑΝΠϧ ͷߋ৽ͳͲͷ࣮૷ํ๏͕٧·͍ͬͯΔ IUUQTHJUIVCDPNNDIBSNBTBOESPJE QBSDFMBCMFJOUFMMJKQMVHJO

  90. BOESPJEESBXBCMFJNQPSUFSJOUFMMJKQMVHJO w ΞΠίϯΛϓϩδΣΫτͷEQJσΟϨΫτϦʹ ؆୯ʹ഑ஔͰ͖ΔΑ͏ʹ͢ΔϓϥάΠϯ w ϦιʔεϑΝΠϧͷಡΈࠐΈ΍ɺ)UUQ௨৴ͳ Ͳͷ࣮૷ํ๏͕٧·͍ͬͯΔ IUUQTHJUIVCDPNXJOUFS%SPJEBOESPJE ESBXBCMFJNQPSUFSJOUFMMJKQMVHJO

  91. BECJEFB w BECίϚϯυΛ"OESPJE4UVEJP্͔Β؆୯ʹ ࣮ߦͰ͖ΔΑ͏ʹ͢ΔϓϥάΠϯ w μΠΞϩάͷදࣔ΍ɺϓϥάΠϯ͔Βλʔϛ φϧίϚϯυΛୟ͘ํ๏͕٧·͍ͬͯΔ IUUQTHJUIVCDPNQCSFBVMUBECJEFB

  92. "OESPJE4UVEJP$PEF w "OESPJE4UVEJPࣗମͷίʔυΛಡΉͱΑ͍ɻ w ίϚϯυ΍όʔδϣϯࢦఆ͸ɺ"OESPJE 5PPMT1SPKFDU4JUFϖʔδͷ#VJME0WFSWJFX Λࢀߟʹ IUUQUPPMTBOESPJEDPNCVJME

  93. ·ͱΊ

  94. 1SPKFDU΍&EJUPSͳͲͷΫϥε͸ ͓֮͑ͯ͜͏

  95. 6*΋%JBMPH΍/PUJpDBUJPO͸ ༻ҙ͞Ε͍ͯΔ

  96. Θ͔Βͳ͍࣌͸ ࣅͨίʔυΛಡΜͰΈΑ͏

  97. ͦΕͰ΋Ͳ͏ʹ΋ͳΒͳ͍࣌͸

  98. None
  99. !BOESPIJ͞ΜʹΑΔ *OUFMMJ+1MVHJOษڧձ ͍ۙ͏ͪճ໨΍Γ·͢

  100. ཉ͍͠ϓϥάΠϯΛ࡞ͬͯ "OESPJE։ൃΛ΋ͬͱָ͘͠

  101. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ