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
AIで 浮いた時間で 何をする? #プロヒス2025
konifar
28
14k
物語を動かす行動"量" #エンジニアニメ
konifar
16
6.2k
提案のレベルを上げる #QiitaConference
konifar
90
34k
目安箱の設置とワークさせるポイント
konifar
5
2.2k
サバイバルモード下でのエンジニアリングマネジメント
konifar
31
13k
Android開発以外のAndroid開発経験の活かしどころ
konifar
3
3.1k
初めてのiOS関連GitHub ActionsをMarketplaceに公開するまでの実録
konifar
3
410
オーナーシップを持つ領域を明確にする
konifar
17
6.7k
雑に思考を整理する技術と効能
konifar
79
44k
Other Decks in Programming
See All in Programming
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
190
Let's Write a Train Tracking Algorithm
twocentstudios
0
220
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
370
Pythonスレッドとは結局何なのか? CPython実装から見るNoGIL時代の変化
curekoshimizu
4
1.3k
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
390
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
110
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
770
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
3.5k
明日から始めるリファクタリング
ryounasso
0
110
CSC305 Lecture 01
javiergs
PRO
1
400
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
390
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
380
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
185
22k
We Have a Design System, Now What?
morganepeng
53
7.8k
Embracing the Ebb and Flow
colly
88
4.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
850
Typedesign – Prime Four
hannesfritz
42
2.8k
Balancing Empowerment & Direction
lara
4
680
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
Mobile First: as difficult as doing things right
swwweet
224
10k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
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։ൃΛͬͱָ͘͠
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ