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
DroidKaigi公式アプリOSS成功要因
Search
konifar
July 02, 2016
Programming
5
1.3k
DroidKaigi公式アプリOSS成功要因
YAPC::Asia Hachioji 2016
http://yapcasia8oji-2016mid.hachiojipm.org/time_table_7_2/
konifar
July 02, 2016
Tweet
Share
More Decks by konifar
See All by konifar
Android開発以外のAndroid開発経験の活かしどころ
konifar
3
2.2k
初めてのiOS関連GitHub ActionsをMarketplaceに公開するまでの実録
konifar
3
290
オーナーシップを持つ領域を明確にする
konifar
15
4.7k
雑に思考を整理する技術と効能
konifar
74
36k
何のための個人目標設定?
konifar
28
14k
30点で打席に立つ
konifar
79
51k
Linterでチョット安心 iOS多言語化対応 / ios-i18n-linter
konifar
2
1.2k
VPoEとして1年 もっとこうすればよかった3選 / VPoE Retrospective
konifar
13
6.3k
Introduction to API Testing Automation by Postman
konifar
1
3.7k
Other Decks in Programming
See All in Programming
良いユニットテストを書こう
mototakatsu
8
3.1k
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
350
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
980
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
Haze - Real time background blurring
chrisbanes
1
520
情報漏洩させないための設計
kubotak
4
850
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
200
MCP with Cloudflare Workers
yusukebe
2
230
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
570
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
410
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
1
270
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
130
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Agile that works and the tools we love
rasmusluckow
328
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Fireside Chat
paigeccino
34
3.1k
A better future with KSS
kneath
238
17k
Practical Orchestrator
shlominoach
186
10k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
1
110
Documentation Writing (for coders)
carmenintech
67
4.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
910
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Speed Design
sergeychernyshev
25
680
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Transcript
%SPJE,BJHJެࣜΞϓϦ 044ޭཁҼ !LPOJGBS :"1$"TJB)BDIJPKJ
͜ʹ;͊ʔ !LPOJGBS
͜ʹ;͊ʔ !LPOJGBS ESPJELBJHJ
"OESPJEΛͬͯΔਓʁ
044ʹڵຯ͕͋Δਓʁ
%SPJE,BJHJ w "OESPJEٕज़ใͷڞ༗ͱίϛϡχέʔγϣϯ͕తͷ "OESPJE։ൃऀͷͨΊͷΧϯϑΝϨϯε w ʢʣɺʢۚʣʹ։࠵
ެࣜΞϓϦ࡞Γ·ͨ͠ ΦʔϓϯιʔεͰ%SPJE,BJHJͷΧϯϑΝϨϯεΞ ϓϦ࡞ͬͯΔ IUUQLPOJGBSIBUFOBCMPHDPNFOUSZ
લࡇͷΑ͏ͳੌ·͍͡Γ্͕Γ
None
None
(PPHMF*0ͷΞϓϦʹෛ͚ͯͳ͍
(JU)VCͷ1VODIDBSE
None
ϲ݄ܦͬͨࠓͰଓ͍͍ͯΔ
ؖࠃޠαϙʔτ 5IBOLT!1MVV
ܧଓతͳϥΠϒϥϦΞοϓσʔτ 5IBOLT!TIBVOLBXBOP
ͳͥ͜ΜͳʹΓ্͕ͬͨͷ͔
ʮࠓࢥ͑͋Ε͕Α͔ͬͨͳ͊ʯ ͱࢥ͑Δ͜ͱΛ͍͔ͭ͘ཧͨ͠ͷͰ ͦͷΛ͠·͢
%SPJE,BJHJެࣜΞϓϦ 044ޭཁҼ ʢ͔ͩͬͨ͠Εͳ͍ʣ
-BCFMͱ.JMFTUPOFΛ׆༻͢Δ $POUSJCVUFͷෑډΛԼ͛Δ ӳޠͰΓͱΓ͢Δ ϨϏϡʔΛߴʹճ͢ ༷ʑͳखஈͰͬͯΒ͏
-BCFMͱ.JMFTUPOFΛ׆༻͢Δ
*TTVF͕͋ͬͯͲΕΛΕ͍͍͔ Θ͔Βͳ͍ͱखΛ͚ͭʹ͍͘ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ
༏ઌͷΘ͔Δ-BCFM -BCFMͱ.JMFTUPOFΛ׆༻͢Δ
༏ઌͷΘ͔Δ-BCFM -BCFMͱ.JMFTUPOFΛ׆༻͢Δ छྨͰͳ͘ ༏ઌΛද͢ϥϕϧ ೱ͍৭ʹ͍ͯ͠Δ
༏ઌͷΘ͔Δ-BCFM -BCFMͱ.JMFTUPOFΛ׆༻͢Δ XFMDPNFDPOUSJCVUFMBCFM
XFMDPNFDPOUSJCVUFMBCFM -BCFMͱ.JMFTUPOFΛ׆༻͢Δ w DPOUSJCVUFͯ͠΄͍͠*TTVFʹ͜ͷϥϕϧΛ͚͓ͭͯ͘ w ݟͨਓ͕ͲΕΛͬͨΒ͍͍͔ͻͱͰΘ͔Δ w XFMDPNFײ͕ग़ͯऔΓ͍͢
XFMDPNFDPOUSJCVUFMBCFM -BCFMͱ.JMFTUPOFΛ׆༻͢Δ
XB⒐FJPʢΧϯόϯʣ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ w (JU)VCͱ࿈ܞͯ͠*TTVFͱ1VMMSFRVFTUΛΧϯόϯԽ IUUQTXB⒐FJPLPOJGBSESPJELBJHJ w ;FO)VCͰ͍͍͕ɺXB⒐FJPແྉͩ͠ϦϯΫΛͬ ͍ͯΕ͙͑͢Δͱ͍͏ख͕ܰ͋͞Δ
XB⒐FJPʢΧϯόϯʣ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ
XB⒐FJPʢΧϯόϯʣ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ *TTVFΛ্͛ͨΒ #BDLMPHʹೖΔ
XB⒐FJPʢΧϯόϯʣ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ ΔͧͱܾΊͨΒ 3FBEZ υϥοάυϩοϓ
XB⒐FJPʢΧϯόϯʣ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ ୭͔͕Γ࢝ΊͨΒ *O1SPHSFTT
XB⒐FJPʢΧϯόϯʣ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ Ϋϩʔζͨ͠Β %POFʹೖΔ
XB⒐FJPʢΧϯόϯʣ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ .JMFTUPOFՄࢹԽ
.JMFTUPOF -BCFMͱ.JMFTUPOFΛ׆༻͢Δ
.JMFTUPOF -BCFMͱ.JMFTUPOFΛ׆༻͢Δ όʔδϣϯ͝ͱʹͬͯ ʹͪೖΕ͓ͯ͘͜ͱͰ కΛՄࢹԽͰ͖Δ
-BCFMͱ.JMFTUPOFΛ׆༻͢Δ͜ͱͰ ԿΛ͍ͭ·ͰʹΕ͍͍͔͕໌֬ʹͳΓ ͱ͖ͬͭ͘͢ͳΔ -BCFMͱ.JMFTUPOFΛ׆༻͢Δ
$POUSJCVUFͷෑډΛԼ͛Δ
$POUSJCVUFʹ༐ؾ͕͍Δ $POUSJCVUFͷෑډΛԼ͛Δ w ʮͳΜ͔ͦ͠͏ʜʯ w ʮ͜ΜͳγϣϘ͍ͷ্͛ͯେৎ͔ͳʜʯ w ʮϨϏϡʔͰ໎͔͚ͨΒͲ͏͠Α͏ʜʯ w ʮࣗͳΜ͔͕ΔΑΓଞͷਓ͕ͬͨํ͕ʜʯ
*TTVFͷཻΛখ͘͞ $POUSJCVUFͷෑډΛԼ͛Δ w ͘Β͍ͰͰ͖ͦ͏ͳϨϕϧͷͷॻ͍͓ͯ͘ w ʮ͜Ε͘Β͍ͳΒࣗͰͰ͖ͦ͏ͩʯͱࢥͬͯΒ͏
༨നͷௐͱ͔ $POUSJCVUFͷෑډΛԼ͛Δ IUUQTHJUIVCDPNLPOJGBSESPJELBJHJJTTVFT
ఆظతͳ*TTVFͷ୨Է͠ $POUSJCVUFͷෑډΛԼ͛Δ w ݹ͍*TTVFΛΫϩʔζ͢Δ w ৽ͨʹग़͖ͯͨ*TTVFΛҰؾʹॻ͖ग़͢ w XFMDPNFDPOUSJCVUFϥϕϧΛషΓ͢ w ৗʹ࠷৽ʹอͭ͜ͱͰ$POUSJCVUPSͷࠞཚΛগͳ͘͢Δ
,PUMJOԽͷΫϩʔζ $POUSJCVUFͷෑډΛԼ͛Δ IUUQTHJUIVCDPNLPOJGBSESPJELBJHJQVMM
ࣗͰͰ͖ͳ͍͜ͱॻ͍͓ͯ͘ $POUSJCVUFͷෑډΛԼ͛Δ w ʮ͜͏͍͏͜ͱ͍ͨ͠ʯͱ͍͏*TTVFॻ͍͓͖ͯ͘ w "OESPJEͷ߹ɺਓʹΑͬͯৄ͍͕͠ҧ͏͜ͱ͋Δ ͷͰɺͦͷํ͕$POUSJCVUF͘͢͠ͳΔ
ϥΠϒϥϦ࡞ऀ͔Βͷ$POUSJCVUF $POUSJCVUFͷෑډΛԼ͛Δ
$POUSJCVUFͷෑډΛԼ͛Δ $POUSJCVUPSTΫϨδοτ $POUSJCVUPSTͷօ͞ΜͷѹతײँΛܗʹͨͯ͘͠ *TTVFʹͨ͠Βɺ!HPUPLBUTVZB͕࡞ͬͯ͘Εͨ IUUQTHJUIVCDPNLPOJGBSESPJELBJHJJTTVFT $POUSJCVUF͢ΔࡍͷϞνϕʔγϣϯʹͳΔ
$POUSJCVUFʹ༐ؾ͕͍ΔͷͰ ʮࢲͰͰ͖ͦ͏ʯ ʮͳΜָ͔ͦ͠͏ʯ ʮ$POUSJCVUFͯ͠ΈΑ͏͔ͳʯ ͱࢥͬͯΒ͑ΔΑ͏ʹ͠·͠ΐ͏ $POUSJCVUFͷෑډΛԼ͛Δ
ӳޠͰΓͱΓ͢Δ
2ෑډΛԼ͛Δͱ͔ݴ͓͖ͬͯͳ͕Β ͳΜͰӳޠͳͷʁ ӳޠͰΓͱΓ͢Δ
"ւ֎͔Βͷ$POUSJCVUF͋Δ͔ͳͱ ࢥ͍ͬͯͨʢͳ͔ͬͨʣ ӳޠͰΓͱΓ͢Δ
ӳޠͷํ͕ςϯγϣϯ্͕͕Δ ӳޠͰΓͱΓ͢Δ IUUQTHJUIVCDPNLPOJGBSBOESPJE NBUFSJBMEFTJHOJDPOHFOFSBUPS QMVHJOJTTVFT
ӳޠͰΓͱΓ͢Δ
ӳޠͰΓͱΓ͢Δ IUUQTHJUIVCDPNLPOJGBSESPJELBJHJQVMM
ӳޠͰΓͱΓ͢Δ
ӳޠͰΓͱΓ͢Δ ຊޠͷ࣌ΑΓΈΜͳ༏͍͠ؾ͕͢Δ ʢ݁ՌతʹͬͯΑ͔ͬͨʣ
ͪΖΜຊޠͰશવͳ͠ ӳޠͰΓͱΓ͢Δ IUUQTHJUIVCDPNLPOJGBSZBQDBTJBTDFOBSJPJTTVFT JTTVFDPNNFOU
ւ֎͔Βڹ͋ͬͨ ӳޠͰΓͱΓ͢Δ w ؖࠃޠͷ༁αϙʔτ w ΠϯυͷΧϯϑΝϨϯεͷެࣜΞϓϦͱ͍͍͔ͯͨ͠ Β'PSLͤͯ͘͞Εͱͷ࿈བྷ w %SPJEDPO5VOJTJBͷΧϯϑΝϨϯεΞϓϦӨڹΛड͚ ͍ͯΔΒ͍͠
IUUQTHJUIVCDPN/JMIDFNESPJEDPOUO
࠷ߴͷײ*TTVF ӳޠͰΓͱΓ͢Δ
ϨϏϡʔΛߴʹճ͢
$POUSJCVUPSʹͱͬͯҰ൪ͭΒ͍ͷ ࣗͷ*TTVF13͕์ஔ͞ΕΔ͜ͱ ϨϏϡʔΛߴʹճ͢
͍ͭͰݟͯΔײΛग़͢ ϨϏϡʔΛߴʹճ͢
͍ͭͰݟͯΔײΛग़͢ ϨϏϡʔΛߴʹճ͢ 13͕དྷͨΒ͙͢ʹʮݟͯΔΑʯ ͷFZFTίϝϯτ
͍ͭͰݟͯΔײΛग़͢ ϨϏϡʔΛߴʹճ͢ ؆୯ͳͷͩͬͨΒ͙͢ʹ֬ೝ ͯ͠ײँͷϦΞΫγϣϯ
͍ͭͰݟͯΔײΛग़͢ ϨϏϡʔΛߴʹճ͢ 0,ͳΒ߈ͰϚʔδ ૣ͍ͱ13དྷ͔ͯΒ͘Β͍
அʹ໎͏13ΛͲ͏ѻ͍͍͔͑ ϨϏϡʔΛߴʹճ͢
அʹ໎͏ϨϏϡʔͰͷࣦഊ ϨϏϡʔΛߴʹճ͢
அʹ໎ͬͯ์ஔμϝ ϨϏϡʔΛߴʹճ͢ w அʹ໎ͬͨͱͯ͠ɺԿϦΞΫγϣϯͳ͍ͷμϝ w 1VMMSFRVFTUͳΒɺͱΓ͋͑ͣϚʔδ͔ΫϩʔζͷͲͪΒ ͔ͷҙࢥΛࣔ͢͜ͱ w Ͳ͏͙ͯ͢͠ʹஅͰ͖ͳ͚ΕͦͷࢫΛίϝϯτʹ ͖͢
ࡉ͔͍ͱ͜Ζؾʹ͠ͳ͍ ϨϏϡʔΛߴʹճ͢ w ࡉ͔͍ม໊ϑΥʔϚοτ่ΕؾʹͤͣϚʔδ͢Δ w ؾʹͳͬͨΒޙͰࣗͰͨ͠ํ͕ૣ͍ w ৗʹεϐʔυ༏ઌɺԿ͔͋ΕޙͰ͢ͱ͍͏ҙࣝ
໎Θͳ͍ύοέʔδߏ ϨϏϡʔΛߴʹճ͢ w "OESPJEͰϕετͳύοέʔδߏ͕ܾ·͍ͬͯͳ͍ɻ .77.ɺ.71ɺͨ·ͨ%%%ͳͲɺઃܭʹΑͬͯ·ͪ ·ͪ w ਖ਼ղͳ͍͕ɺ$POUSJCVUPS͕ΫϥεΛ୳࣌͢৽ͨʹ࡞ Γ͍ͨ࣌ʹ໎Θͳ͍ߏΛҙࣝͨ͠
໎Θͳ͍ύοέʔδߏ ϨϏϡʔΛߴʹճ͢
໎Θͳ͍ύοέʔδߏ ϨϏϡʔΛߴʹճ͢ ʮ"DUJWJUZશ෦͜͜ʹ͍ͬͯΔͷͶʯ ʮ.PEFMՃ͍ͨ࣌͜͜͠ʹೖΕΔͷͶʯ
$POUSJCVUPS͔ΒͷΞΫγϣϯʹ ѹతײँΛ࣋ͬͯ߈ϨϏϡʔ͢Δ 044ͰظؒͷϞνϕʔγϣϯΛอͭͷ ΘΓͱ͍͠ͷͰεϐʔυײେࣄ ϨϏϡʔΛߴʹճ͢
༷ʑͳखஈͰͬͯΒ͏
प͠ͳ͚Ε ୭ʹ͞Εͣ$POUSJCVUFͳ͍ ༷ʑͳखஈͰͬͯΒ͏
༷ʑͳखஈΛͬͯ ·ͣͬͯΒ͏͜ͱ͕େࣄ ༷ʑͳखஈͰͬͯΒ͏
%SPJE,BJHJެࣜΞϓϦͷ߹ ༷ʑͳखஈͰͬͯΒ͏ "OESPJE"STFOBM "OESPJEͷϥΠϒϥϦΞϓϦΛհͯ͠ΔαʔϏε (PPHMF "OESPJE͔ͩΒ͔͠Εͳ͍͕ɺ"OESPJEؔ࿈άϧʔϓʹϙετ͢Δͱ ւ֎ͷਓʹͨ͘͞ΜݟͯΒ͑Δ
5XJUUFSɺ'BDFCPPLɺϒϩά %SPJE,BJHJͷެࣜ5XJUUFSͰपͯ͠Β͑ͨͷେ͖͔ͬͨɻ ຊͩͱ5XJUUFSϒϩάͰ݁ߏΊΒΕΔ
"OESPJEͷ߹ͷपͷํ๏ ԼهεϥΠυʹ·ͱΊͯ͋Γ·͢ ʮ#FBTUBSHB[FSʯCZLPOJGBS IUUQTTQFBLFSEFDLDPNLPOJGBSCFBTUBSHB[FS ༷ʑͳखஈͰͬͯΒ͏
ΊΔͷා͍Μ͚ͩͲʜ ༷ʑͳखஈͰͬͯΒ͏ w ʮίʔυݟΒΕΔͷஏ͔͍ͣ͠ʜʯ w ʮΊͬͪΌୟ͔ΕΔΜ͡Όͳ͍͔ͳʜʯ w ʮා͍ਓʹϚαΧϦ͛ΒΕͨΒͲ͏͠Α͏ʜʯ
༷ʑͳखஈͰͬͯΒ͏ ҆৺͍ͯͩ͘͠͞ օͦΜͳʹͪΌΜͱݟͯ·ͤΜ
ͪΌΜͱݟͯ͘ΕͯΔਓେମ༏͍͠ ༷ʑͳखஈͰͬͯΒ͏ w ܦݧ্ɺ13ૹͬͯ͘ΕΔΑ͏ͳਓ༏͍͠ w Կ͔ݴΘΕͨΒ͍͍ͤͱ͍͏ࡶ͞େࣄ
ࣗͷख͕ճΒͳ͍࣮ΛͿͬ͜·ΕΔޣຯ ༷ʑͳखஈͰͬͯΒ͏
༷ʑͳखஈͰͬͯΒ͏ ίʔυΛެ։͢Δෆ҆Θ͔Δ͕ ެ։ͯ͠ΈΔͱҙ֎ͱͳ͍ͷͰ ΨϯΨϯΊ͍͖ͯ·͠ΐ͏
Α͋͘Δ࣭
2͍ͭࣄʢຊۀʣͯͨ͠ͷʁ
"ຖͯ͠·ͨ͠
ʁ
13͚ͩ߈Ͱݟ͍ͯͨ w ৗʹσΟεϓϨΠʹө͓͍ͯͯ͠ɺ13͚ͩࣄதͰ ͙͢ʹݟͯϦΞΫγϣϯΛฦ͍ͯͨ͠ w ϏϧυͪͳͲͷεΩϚ࣌ؒʹνϥνϥݟ͍ͯͨ
ͻͨ͢Β࣮ w Ոʹؼͬͯ࣌ʙ࣌͘Β͍ʹ࣮͍ͯͨ͠ ʢָ࣌ͯ͘͠ϋΠʹͳ͍ͬͯͨͷͰฏؾͩͬͨʣ w Շʹएׯന͍ͰݟΒΕ͕ͨɺ%SPJE,BJHJొஃ४උͰ ͋Δͱ͍͏͜ͱͰҰԠڐՄΛಘ͍ͯͨ
ਭͪΌΜͱऔͬͨํ͕͍͍ w $POUSJCVUPSͷํʑʹͬͱ͓ͤ͢ΕΑ͔͔ͬͨ w ָ͍͍ͯͭͭ͘͠ݟͯ͠·͍ͬͯͨͷͰۤͰͳ͔ͬͨ
·ͱΊ
-BCFMͱ.JMFTUPOFΛ׆༻͢Δ $POUSJCVUFͷෑډΛԼ͛Δ ӳޠͰΓͱΓ͢Δ ϨϏϡʔΛߴʹճ͢ ༷ʑͳखஈͰͬͯΒ͏
࠷ॳΘΓͱదͰ Γͳ͕Βࢼߦࡨޡ͖ͯͨ͠෦ଟ͍
044Ͱ͍ΖΜͳਓͱͷΛ࡞Δͷ ֶָ͍͠͠ͼଟ͍
ίʔυެ։͢Δͷ͕ෆ҆Ͱ ͱΓ͋͑ͣެ։ͯ͠ΈΔͱ͍͍͔
͋Γ͕ͱ͏͍͟͝·ͨ͠
%SPJE,BJHJ ʢʣʙʢۚʣ