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
3.8k
実践!Android Studioプラグイン開発
DroidKaigi
konifar
February 18, 2016
Tweet
Share
More Decks by konifar
See All by konifar
Android開発以外のAndroid開発経験の活かしどころ
konifar
3
1.9k
初めてのiOS関連GitHub ActionsをMarketplaceに公開するまでの実録
konifar
3
250
オーナーシップを持つ領域を明確にする
konifar
14
3.9k
雑に思考を整理する技術と効能
konifar
73
36k
何のための個人目標設定?
konifar
27
14k
30点で打席に立つ
konifar
79
50k
Linterでチョット安心 iOS多言語化対応 / ios-i18n-linter
konifar
2
1.1k
VPoEとして1年 もっとこうすればよかった3選 / VPoE Retrospective
konifar
13
6.2k
Introduction to API Testing Automation by Postman
konifar
1
3.7k
Other Decks in Programming
See All in Programming
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1k
Vue3の一歩踏み込んだパフォーマンスチューニング2024
hal_spidernight
3
3.1k
Piniaの現状と今後
waka292
5
1.5k
Synchronizationを支える技術
s_shimotori
1
150
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
230
Universal Linksの実装方法と陥りがちな罠
kaitokudou
1
220
EventSourcingの理想と現実
wenas
6
2.1k
讓數據說話:用 Python、Prometheus 和 Grafana 講故事
eddie
0
350
Kaigi on Rails 2024 - Rails APIモードのためのシンプルで効果的なCSRF対策 / kaigionrails-2024-csrf
corocn
5
3.4k
CSC305 Lecture 13
javiergs
PRO
0
130
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
16
4.1k
Identifying User Idenity
moro
6
7.9k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Rails Girls Zürich Keynote
gr2m
93
13k
The Cost Of JavaScript in 2023
addyosmani
45
6.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
A Tale of Four Properties
chriscoyier
156
23k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
YesSQL, Process and Tooling at Scale
rocio
167
14k
For a Future-Friendly Web
brad_frost
175
9.4k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
32
1.8k
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։ൃΛͬͱָ͘͠
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ