Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
実践!Android Studioプラグイン開発
Search
konifar
February 18, 2016
Programming
2
4k
実践!Android Studioプラグイン開発
DroidKaigi
konifar
February 18, 2016
Tweet
Share
More Decks by konifar
See All by konifar
チーム開発の “地ならし"
konifar
6
3.8k
AIで 浮いた時間で 何をする? #プロヒス2025
konifar
28
16k
物語を動かす行動"量" #エンジニアニメ
konifar
16
6.4k
提案のレベルを上げる #QiitaConference
konifar
90
36k
目安箱の設置とワークさせるポイント
konifar
5
2.3k
サバイバルモード下でのエンジニアリングマネジメント
konifar
31
14k
Android開発以外のAndroid開発経験の活かしどころ
konifar
3
3.2k
初めてのiOS関連GitHub ActionsをMarketplaceに公開するまでの実録
konifar
3
420
オーナーシップを持つ領域を明確にする
konifar
17
6.8k
Other Decks in Programming
See All in Programming
高単価案件で働くための心構え
nullnull
0
120
詳細の決定を遅らせつつ実装を早くする
shimabox
1
1k
SidekiqでAIに商品説明を生成させてみた
akinko_0915
0
130
CSC509 Lecture 11
javiergs
PRO
0
310
Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう
lagenorhynque
0
130
OSS開発者の憂鬱
yusukebe
11
3.7k
Introducing RemoteCompose: break your UI out of the app sandbox.
camaelon
2
540
モデル駆動設計をやってみよう Modeling Forum2025ワークショップ/Let’s Try Model-Driven Design
haru860
0
100
Kotlin + Power-Assert 言語組み込みならではのAssertion Library採用と運用ベストプラクティス by Kazuki Matsuda/Gen-AX
kazukima
0
110
AI 時代だからこそ抑えたい「価値のある」PHP ユニットテストを書く技術 #phpconfuk / phpcon-fukuoka-2025
shogogg
1
420
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
150
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
450
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Site-Speed That Sticks
csswizardry
13
960
Why Our Code Smells
bkeepers
PRO
340
57k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6k
Navigating Team Friction
lara
190
15k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
4 Signs Your Business is Dying
shpigford
186
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
࣮ફʂ"OESPJE4UVEJP ϓϥάΠϯ։ൃ ʢʣ খ༟հʢ!LPOJGBSʣ %SPJE,BJHJ3PPN#
͜ʹ;͊ʔ !LPOJGBS
5BQUSJQ w ੈքதʹ༑ͩͪΛ࡞ΕΔ w ࣗಈ༁Ͱ؆୯ίϛϡχ έʔγϣϯ w ϲࠃສਓ͕ར༻ IUUQTQMBZHPPHMFDPNTUPSFBQQT EFUBJMT
JEDPNUBQUSJQ
BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO
BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO w ϚςϦΞϧΞΠίϯΛ؆୯ʹஔͰ͖Δ IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ
BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO w ϚςϦΞϧΞΠίϯΛ؆୯ʹஔͰ͖Δ IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ
BOESPJENBUFSJBMJDPOHFOFSBUPS IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO w ϚςϦΞϧΞΠίϯΛ؆୯ʹஔͰ͖Δ IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ
BOESPJENBUFSJBMJDPOHFOFSBUPS w ϚςϦΞϧΞΠίϯΛ؆୯ʹஔͰ͖Δ IUUQTHJUIVCDPNHPPHMFNBUFSJBMEFTJHOJDPOT w ୯ޠͰΠϯΫϦϝϯλϧαʔνͰ͖Δ w ΞΠίϯͷ৭Λࣗ༝ʹมߋͰ͖Δ ಛʹݸਓ։ൃͷ࣌ʹ͘͢͝ศརʂ
BOESPJENBUFSJBMJDPOHFOFSBUPS
Πϯετʔϧ͘Β͍
ϓϥάΠϯ։ൃͷ Λ͠·͢
ϓϥάΠϯ։ൃͷಛ ͓͞Β͍
"OESPJE4UVEJPϓϥάΠϯͷಛ w *OUFMMJ+ϕʔεɻ։ൃʹ*OUFMMJ+͕ඞཁɻ w ը໘·ΘΓ4XJOHɻ w +BWBͩͱಈ͔ͳ͍ͷͰ+BWBͰ։ൃ͕ඞཁɻ
"OESPJE4UVEJPϓϥάΠϯͷಛ w *OUFMMJ+ϕʔεɻ։ൃʹ*OUFMMJ+͕ඞཁɻ w ը໘·ΘΓ4XJOHɻ w +BWBͩͱಈ͔ͳ͍ͷͰ+BWBͰ։ൃ͕ඞཁɻ
"OESPJE4UVEJPϓϥάΠϯͷಛ w *OUFMMJ+ϕʔεɻ։ൃʹ*OUFMMJ+͕ඞཁɻ w ը໘·ΘΓ4XJOHɻ w +BWBͩͱಈ͔ͳ͍ͷͰ+BWBͰ։ൃ͕ඞཁɻ
)FMMP8PSME
)FMMP8PSMEͷखॱ *OUFMMJ+ΛΠϯετʔϧ *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞ QMVHJOYNMΛهड़ "DUJPOΫϥεΛ࡞
Ϗϧυ࣮ߦ
)FMMP8PSMEͷखॱ *OUFMMJ+ΛΠϯετʔϧ *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞ QMVHJOYNMΛهड़ "DUJPOΫϥεΛ࡞
Ϗϧυ࣮ߦ
)FMMP8PSMEͷखॱ *OUFMMJ+ΛΠϯετʔϧ *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞ QMVHJOYNMΛهड़ "DUJPOΫϥεΛ࡞
Ϗϧυ࣮ߦ
)FMMP8PSMEͷखॱ *OUFMMJ+ΛΠϯετʔϧ *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞ QMVHJOYNMΛهड़ "DUJPOΫϥεΛ࡞
Ϗϧυ࣮ߦ
)FMMP8PSMEͷखॱ *OUFMMJ+ΛΠϯετʔϧ *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞ QMVHJOYNMΛهड़ "DUJPOΫϥεΛ࡞
Ϗϧυ࣮ߦ
)FMMP8PSMEͷखॱ *OUFMMJ+ΛΠϯετʔϧ *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞ QMVHJOYNMΛهड़ "DUJPOΫϥεΛ࡞
Ϗϧυ࣮ߦ
)FMMP8PSMEͷखॱ *OUFMMJ+ΛΠϯετʔϧ *OUFMMJ+1MBUGPSN1MVHJOͷϓϩδΣΫτ࡞ QMVHJOYNMΛهड़ "DUJPOΫϥε
Ϗϧυ ৄ͘͠2JJUBʹʂ IUUQRJJUBDPNLPOJGBSJUFNTDF⒎FDGD
͜͜·ͰΘΓͱ؆୯
͜ͷઌ
ԿΛͲ͏ͨ͠Β͍͍͔Θ͔Βͳ͍ w ςΩετΛબͨ࣌͠ʹϝχϡʔग़͢ʹʁ w μΠΞϩάΞϥʔτͲ͏ͬͯग़͢ͷʁ w ϑΝΠϧૢ࡞Ͳ͏Δͷʁ
ϓϥάΠϯΛ ࣮ࡍʹ࡞Δ࣌ʹཱͭ Λ͠·͢
ࠓ͢͜ͱ ͓͖֮͑ͯ͘Ϋϥεͱׂ 6*ͷ࣮ Μͩ࣌ͷௐํ
ࠓ͞ͳ͍͜ͱ جຊతͳ։ൃͷྲྀΕ TXJOHͷࡉ͔͍ ςετίʔυͷ
͓͖֮͑ͯ͘Ϋϥεͱׂ
"O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF
"O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF
"O"DUJPO&WFOU w ϓϥάΠϯͷ"DUJPOʹؔ࿈͢Δ͞· ͟·ͳใΛऔಘͰ͖ΔΫϥε w ϓϩδΣΫτͷதΛࢀরɺૢ࡞ͨ͠ ͍࣌ʹɺ͜ͷΫϥε͔ΒใΛऔಘͰ ͖Δ
ϝχϡʔͷදࣔΛΓସ͑Δ KBWBϑΝΠϧ্Ͱ ӈΫϦοΫ TUSJOHTYNM্Ͱ ӈΫϦοΫ
ϝχϡʔͷදࣔΛΓସ͑Δ
ϝχϡʔͷදࣔΛΓସ͑Δ TUSJOHTYNM͔Ͳ͏͔ͷఆ
ϝχϡʔͷදࣔΛΓସ͑Δ FWFOUHFU1SFTFOUBUJPO TFU7JTJCMF ͰදࣔΛΓସ͑
"O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF
1SPKFDU w ϓϩδΣΫτ໊σΟϨΫτϦͷύεͳ ͲɺϓϩδΣΫτͷใΛऔಘͰ͖Δ w 1SPKFDU3PPU.BOBHFS Λͬͯɺ4%, ϏϧυରͷιʔεσΟϨΫτϦͳͲ औಘͰ͖Δ
4%,όʔδϣϯΛऔಘ͢Δ
4%,όʔδϣϯΛऔಘ͢Δ 1SPKFDU3PPU.BOBHFSΛͬͯ 4ELΛऔಘ
4%,όʔδϣϯΛऔಘ͢Δ ϧʔτύεϑΝΠϧҰཡΛ औಘ͢Δ͜ͱͰ͖Δ
"O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF
&EJUPS w ΤσΟλͷใΛऔಘͰ͖Δɻ
ൣғબதͷςΩετΛऔಘ͢Δ
ൣғબதͷςΩετΛऔಘ͢Δ FEJUPSHFU4FMFDUJPO.PEFM Ͱ બதͷςΩετͷใΛऔಘ IBT4FMFDUJPO Ͱબத͔Λఆ
ൣғબதͷςΩετΛऔಘ͢Δ HFU4FMFDUFE5FYU Ͱબதͷ ςΩετΛऔಘ
ΤσΟλΛҰ൪্·ͰεΫϩʔϧ HFU4DSPMM.PEFM ͰεΫϩʔϧΛ දݱͨ͠ϞσϧΛऔಘ
ΤσΟλΛҰ൪্·ͰεΫϩʔϧ TDSPMM7FSUJDBMMZ ͰҰ൪্·Ͱ εΫϩʔϧͤ͞Δ
"O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF
%PDVNFOU w ΤσΟλʹදࣔ͞ΕͨςΩετΛऔಘɺ ฤूͰ͖Δ
ΤσΟλͷςΩετΛऔಘ͢Δ
ΤσΟλͷςΩετΛऔಘ͢Δ FEJUPSHFU%PDVNFOU HFU5FYU ͰςΩετΛऔಘ
ΤσΟλͷมߋΛݕ͢Δ
ΤσΟλͷมߋΛݕ͢Δ
"O"DUJPO&WFOU 1SPKFDU &EJUPS %PDVNFOU 1TJ'JMF
1TJ'JMF w 1SPHSBN4USVDUVSF*OUFSGBDF'JMF w *OUFMMJ+Ͱѻ͏ϑΝΠϧͷநΫϥε w ϓϩδΣΫτͷϑΝΠϧͷใΛऔ ಘͰ͖Δ
ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ
ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ
ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ FEJUPSHFU$BSFU.PEFM ͔Β ΧʔιϧҐஔΛऔಘ
ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ QTJ'JMFpOE&MFNFOU"U P⒎TFU ͰΧʔιϧҐஔͷཁૉΛऔಘ
ΧʔιϧҐஔͷ+BWBΫϥεΛऔಘ ΧʔιϧҐஔʹ͋ͬͨςΩετ 'MPBUJOH"DUJPO#VUUPOͷ&MFNFOU
6*ͷ࣮
%JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS ͍উखͷΑ͍ίϯϙʔωϯτ
%JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS
%JBMPH
%JBMPH8SBQQFSΛ͏
%JBMPH8SBQQFSΛ͏
%JBMPHͷݺͼग़͠
%JBMPHͷݺͼग़͠
%JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS
&EJUPS)JOU
)JOU.BOBHFS
)JOU.BOBHFS
%JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS
/PUJpDBUJPO
/PUJpDBUJPOT#VT
/PUJpDBUJPOT#VT
%JBMPH &EJUPS)JOU /PUJpDBUJPO 'JMF$IPPTFS
'JMF$IPPTFS
5FYU'JFME8JUI#SPXTF#VUUPO 5FYU'JFME8JUI#SPVTF#VUUPOʹ BEE#SPXTF'PMEFS-JTUFOFS Λ͚ͭΔ
5FYU'JFME8JUI#SPXTF#VUUPO
Μͩ࣌ͷௐํ
ެ։͞Ε͍ͯΔίʔυΛ ಡΉͷ͕Ұ൪ૣ͍
"OESPJE4UVEJP1MVHJO3FQPTJUPSZ w IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO
"OESPJE4UVEJP1MVHJO3FQPTJUPSZ w IUUQTHJUIVCDPNLPOJGBSBOESPJENBUFSJBMEFTJHO JDPOHFOFSBUPSQMVHJO "MM1MVHJOT
JOUFMMJKTELEPDT BOESPJEQBSDFMBCMFJOUFMMJKQMVHJO BOESPJEESBXBCMFJNQPSUFSJOUFMMJKQMVHJO BECJEFB "OESPJE4UVEJP$PEF
Φεεϝ̑ͭ
JOUFMMJKTELEPDT w ެࣜͷυΩϡϝϯτ w ΤσΟλૢ࡞ίʔυΠϯεϖΫγϣϯͳͲɺ छྨผʹ͚ͯγϯϓϧͳ࣮ίʔυ͕٧·ͬ ͍ͯΔ w ,PUMJOͷαϯϓϧ͋Δ IUUQTHJUIVCDPN+FU#SBJOTJOUFMMJKTELEPDT
USFFNBTUFSDPEF@TBNQMFT
BOESPJEQBSDFMBCMFJOUFMMJKQMVHJO w 1BSDFMBCMFͷ࣮ίʔυΛࣗಈੜͯ͘͠Ε ΔϓϥάΠϯ w μΠΞϩάͷදࣔίʔυͷੜɺϑΝΠϧ ͷߋ৽ͳͲͷ࣮ํ๏͕٧·͍ͬͯΔ IUUQTHJUIVCDPNNDIBSNBTBOESPJE QBSDFMBCMFJOUFMMJKQMVHJO
BOESPJEESBXBCMFJNQPSUFSJOUFMMJKQMVHJO w ΞΠίϯΛϓϩδΣΫτͷEQJσΟϨΫτϦʹ ؆୯ʹஔͰ͖ΔΑ͏ʹ͢ΔϓϥάΠϯ w ϦιʔεϑΝΠϧͷಡΈࠐΈɺ)UUQ௨৴ͳ Ͳͷ࣮ํ๏͕٧·͍ͬͯΔ IUUQTHJUIVCDPNXJOUFS%SPJEBOESPJE ESBXBCMFJNQPSUFSJOUFMMJKQMVHJO
BECJEFB w BECίϚϯυΛ"OESPJE4UVEJP্͔Β؆୯ʹ ࣮ߦͰ͖ΔΑ͏ʹ͢ΔϓϥάΠϯ w μΠΞϩάͷදࣔɺϓϥάΠϯ͔Βλʔϛ φϧίϚϯυΛୟ͘ํ๏͕٧·͍ͬͯΔ IUUQTHJUIVCDPNQCSFBVMUBECJEFB
"OESPJE4UVEJP$PEF w "OESPJE4UVEJPࣗମͷίʔυΛಡΉͱΑ͍ɻ w ίϚϯυόʔδϣϯࢦఆɺ"OESPJE 5PPMT1SPKFDU4JUFϖʔδͷ#VJME0WFSWJFX Λࢀߟʹ IUUQUPPMTBOESPJEDPNCVJME
·ͱΊ
1SPKFDU&EJUPSͳͲͷΫϥε ͓֮͑ͯ͜͏
6*%JBMPH/PUJpDBUJPO ༻ҙ͞Ε͍ͯΔ
Θ͔Βͳ͍࣌ ࣅͨίʔυΛಡΜͰΈΑ͏
ͦΕͰͲ͏ʹͳΒͳ͍࣌
None
!BOESPIJ͞ΜʹΑΔ *OUFMMJ+1MVHJOษڧձ ͍ۙ͏ͪճΓ·͢
ཉ͍͠ϓϥάΠϯΛ࡞ͬͯ "OESPJE։ൃΛͬͱָ͘͠
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ