Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初めてのKotlinコントリビュート
Search
tommykw
February 17, 2018
Programming
1
720
初めてのKotlinコントリビュート
tommykw
February 17, 2018
Tweet
Share
More Decks by tommykw
See All by tommykw
ポートフォリオを作る
tommykw
0
150
Kotlin Compiler Plugin 入門
tommykw
0
91
Kotlin Compiler Plugin のワークフローを知る
tommykw
1
2.2k
コネヒトの健全性を支えるGithub Actionsの事例紹介
tommykw
0
1.9k
スクラムガイドの理解を深めるためのeduScrumガイド
tommykw
0
1.7k
改めて学ぶContracts
tommykw
10
7k
Kotlinの短絡評価について
tommykw
0
470
Kotlin Issueを投げてみよう!
tommykw
0
3.4k
AndroidのタグView作り
tommykw
0
3k
Other Decks in Programming
See All in Programming
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.7k
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
220
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
170
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
400
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
130
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
420
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
710
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
220
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
2.5k
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
Statistics for Hackers
jakevdp
799
230k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Done Done
chrislema
186
16k
Typedesign – Prime Four
hannesfritz
42
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
4 Signs Your Business is Dying
shpigford
186
22k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
GraphQLとの向き合い方2022年版
quramy
50
14k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Transcript
$POOFIJUP*OD ϚϚͷҰาΛࢧ͑Δ ॳΊͯͷ,PUMJOίϯτϦϏϡʔτ
ࣗݾհ ా݈ೋ !UPNNZLX !UPNNZLX ίωώτגࣜձࣾ"OESPJE&OHJOFFS
,POUSJCVUF͠·ͨ͠ ࡢ݄ʹॳΊͯ,POUSJCVUF͠·ͨ͠ʂʂ
,POUSJCVUF͠·ͨ͠ ॳ,POUSJCVUFͨ͠ࢫͷϒϩάॻ͖·ͨ͠ʂ IUUQUFDIDPOOFIJUPDPNFOUSZ
,POUSJCVUF͠·ͨ͠ ͍͔ͭ͘,POUSJCVUF͍ͯ͠·͢ʂ
,POUSJCVUFखॱ ,POUSJCVUFखॱΛ͓͍͚ͨ͠͠Ͳɺ΄΅ TIJSBKJ͞Μͷʮ)PXUP,POUSJCVUFʯͱඃͬ ͍ͯΔʂʂ
TIJSBKJ͞Μͷ,POUSJCVUFखॱ IUUQTQIPUPTHPPHMFDPNTIBSF "'2JQ.&J5[2CK'YG[RQ'O,0LX,6-YUU6Z,9S KR(QM:&)0$JDO3/3#VPYX/DX LFZ-8E;/'3IEY3K3+D8Q:CT[/6I7N6B637 E'+O
͓͍ͨ͜͠͠ͱ ͚ͩͷใΛఏڙͨ͠ํ͕Ձ͕͋Γͦ͏
͓͍ͨ͜͠͠ͱ ͱ͍͏͜ͱͰࠓճͷ͓͠ʂ
w αϯϓϧίʔυͷ,POUSJCVUF w ,POUSJCVUF͢ΔͨΊͷܧଓతͳڥ࡞Γ ΞδΣϯμ w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ
ڥߏஙׂѪ ڥߏஙׂѪ͍͖ͤͯͨͩ͞·͢ʂ TIJSBKJ͞Μͷʮ)PXUP,POUSJCVUFʯΛ֬͝ೝԼ͍͞ʂ
w αϯϓϧίʔυͷ,POUSJCVUF w ,POUSJCVUF͢ΔͨΊͷܧଓతͳڥ࡞Γ ΞδΣϯμ w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ
,POUSJCVUFͰ͖ͳ͔ͬͨ ॳ,POUSJCVUF͢Δͧʂͱ࢝Ί͍ͯͨͷͰ͕͢ɺ ͳ͔ͳ͔,POUJSVCVUFͰ͖ͳ͍ʜ
w "OESPJE4UVEJPͰͳ͘ɺ*OUFMMJ+*%&"Λ ͏ ͜Εϋʔυϧͱ͍͏ఔͰͳ͍ͣ w ͦͦݴޠʹίϯτϦϏϡʔτͰϏϏΔ w ,PUMJO*%&1MVHJO։ൃͩͱ"OESPJE։ൃͱͷ ؔੑ͕ബͪ͘ΐͬͱڵຯ͕ബΕΔ͔ʁ w
ۀͱؔΘΓ͕͋Δ༁Ͱͳ͍ͷͰۀ࣌ ؒʹΔ͜ͱ͕Ͱ͖ͳ͍ ϋʔυϧʁʁ ,POUSJCVUFͰײͨ͡ϋʔυϧʁʁ
ϋϚΔͱ͜Ζ ͦΕʹՃ͑ͯϋϚͬͨͱ͜Ζ͕͋ͬͨ
w ࣝऀͷํʑ͕*TTVFΛͲΜͲΜରԠ͍ͯ͘͠ w ରԠͰ͖ͦ͏ͳ*TTVF͕ͳ͍ ϋϚΔͱ͜Ζ ,POUSJCVUFͷϋϚΔͱ͜Ζ w *TTVFʹΑͬͯϨϏϡʔͯ͠Β͏·Ͱʹ࣌ ֻ͕͔ؒΔ
ϋϚΔͱ͜Ζ ൺֱతऔΓΈ͍͢*TTVF͕ͳ͍͔ͳʜ
αϯϓϧίʔυͷ,POUSJCVUF ඪ४ϥΠϒϥϦͷαϯϓϧίʔυఏڙʂ
w αϯϓϧίʔυͷ,POUSJCVUF w ,POUSJCVUF͢ΔͨΊͷܧଓతͳڥ࡞Γ ΞδΣϯμ w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ
αϯϓϧίʔυͷ,POUSJCVUF αϯϓϧίʔυ w αϯϓϧίʔυཱͳ,POUSJCVUFʂ w 3FBE.F͋Δʂ w IUUQTHJUIVCDPN+FU#SBJOTLPUMJOCMPC NBTUFSMJCSBSJFTTUEMJCTBNQMFT3FBE.FNE w
ඪ४ϥΠϒϥϦͷαϯϓϧίʔυఏڙ
αϯϓϧίʔυͷ,POUSJCVUF αϯϓϧίʔυΛఏڙ͢Δࡍʹར ༻͢ΔΞαʔγϣϯ͕͋Δ
αϯϓϧίʔυͷ,POUSJCVUF αϯϓϧίʔυͷΞαʔγϣϯ w BTTFSU1SJOUT w BTTFSU5SVFBTTFSU'BMTF w BTTFSU'BJMTBTTFSU'BJMT8JUI
αϯϓϧίʔυͷ,POUSJCVUF αϯϓϧίʔυͷ13Λ͍͔ͭ͛ͯ͘Έ·ͨ͠ʂ
αϯϓϧίʔυͷ,POUSJCVUF MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTJUFSBCMFTLU MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT*UFSBCMFTLU
αϯϓϧίʔυͷ,POUSJCVUF MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTSFWFSTFE7JFXTLU MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT3FWFSTFE7JFXTLU
αϯϓϧίʔυͷ,POUSJCVUF MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTSBOHFTSBOHFTLU MJCSBSJFTTUEMJCTSDLPUMJOSBOHFT3BOHFTLU
αϯϓϧίʔυͷ,POUSJCVUF MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTJUFSBUPSTLU MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT*UFSBUPSTLU
αϯϓϧίʔυͷ,POUSJCVUF MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTJUFSBUPSTLU MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT*UFSBUPSTLU ඞͣ͠ΞαʔγϣϯΛΘͳ͘ ͯ0,ʂ͜͜QSJOUMO
αϯϓϧίʔυͷ,POUSJCVUF αϯϓϧίʔυެࣜαΠτͰӾཡɺ࣮ߦͰ͖Δʂ
αϯϓϧίʔυͷ,POUSJCVUF IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC LPUMJODPMMFDUJPOTGMBUUFOIUNM
αϯϓϧίʔυͷ,POUSJCVUF IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC LPUMJODPMMFDUJPOTBTSFWFSTFEIUNM
αϯϓϧίʔυͷ,POUSJCVUF IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC LPUMJOSBOHFTSBOHFUPIUNM
αϯϓϧίʔυͷ,POUSJCVUF IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC LPUMJODPMMFDUJPOTXJUIJOEFYIUNM
αϯϓϧίʔυͷ,POUSJCVUF ൺֱతૣ͘ϨϏϡʔͯ͠Β͑Δʂ͜ΕͰ͔͍ʂ
αϯϓϧίʔυͷ,POUSJCVUF ,PUMJO*%&1MVHJOܥ*TTVFͩͱ͋·Γ׳Εͯ ͍ͳ͍͚ͲɺαϯϓϧίʔυͳΒΓ͍͢ʂ
αϯϓϧίʔυͷ,POUSJCVUF %SPJE,BJHJͷ݁ՌΛड͚ͯ:PV5SBDLͰૣʂʂʂ
αϯϓϧίʔυͷ,POUSJCVUF αϯϓϧ͘͠ͳͦ͞͏ͩʂ͜ΕͳΒ Ͱ͖ͦ͏͚ͩͲʜͳ͔ͳ͔ΔλΠϛ ϯά͕ݟ͔ͭΒͳ͍
w αϯϓϧίʔυͷ,POUSJCVUF w ,POUSJCVUF͢ΔͨΊͷܧଓతͳڥ࡞Γ ΞδΣϯμ w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ
ܧଓతͳڥ࡞Γ αϯϓϧίʔυ؆୯ͦ͏͚ͩͲɺͳ͔ͳ ͔Ұา౿Έग़ͤͳͯ͘ணखͰ͖ͳ͍ʂ
w ձࣾͷݸਓඪʹ͋͛Δ w ձࣾͷϝϯόʔʹप͢Δ w ձࣾͰษڧ͢ΔͨΊͷڥΛ࡞Δ Ұา౿Έग़͢ Ұา౿Έग़ͯ͠ΈΔ
ձࣾͷݸਓඪʹ͋͛Δ ʮࡢ݄·Ͱʹ13Ϛʔδ͞ΕΔʂʯ ͱ͍͏ͷΛձࣾͷݸਓඪʹܝ͍͛ͯͨʂ
ձࣾͷݸਓඪʹ͋͛Δ ݁Ռμϝ͚ͩͬͨͲɺ $50͕ϝϯλϦϯάͯ͘͠Εͨʂ
ձࣾͷϝϯόʔʹप͢Δ ٕज़͕Θ͔Βͳͯ͘αϙʔτͰ͖Δʂ ͜Μͳͷ͋ΔΑʂͱڭ͑ͯΒͬͨʂ
ձࣾͰษڧ͢ΔͨΊͷڥΛ࡞Δ ࣾ͘͘ձΛिճ։࠵͍ͯ͠Δʂ
w TIJSBKJ͞ΜͷϞνϕʔγϣϯ w ͷϞνϕʔγϣϯ Ϟνϕʔγϣϯ ,POUSJCVUFͷϞνϕʔγϣϯ
w ,PUMJO͕େ͖ʂ w ࣗͷ࣮ͨ͠,PUMJO*%&1MVHJOػೳΛྡͰ୭ ͔͕ͬͯ͘Ε͍ͯΔͱΊͬͪΌخ͍͠ʂʂ Ϟνϕʔγϣϯ TIJSBKJ͞ΜͷϞνϕʔγϣϯ
w ,PUMJO͖ʂ Ϟνϕʔγϣϯ ͷϞνϕʔγϣϯ w (JU)VCͷ$POUSJCVUPSTʹ໊લ͕ࡌΔ w ,PUMJO#MPHʹ໊લ͕ࡌΔ
Ϟνϕʔγϣϯ ,PUMJO#MPHʹͷ໊લ͕ʜʂʁ
Ϟνϕʔγϣϯ ,PUMJO#MPHʹͷ໊લ͕ʜʂʁ ࣍ظόʔδϣϯͰ໊લ͕ࡌΓͦ͏ʜʂ
Ϟνϕʔγϣϯ ,POUSJCVUPSTʹ͕ʜʂʁ
Ϟνϕʔγϣϯ ,PUMJOͷϦϙδτϦʹػೳ͕͍ͬͺ͍٧·͍ͬͯΔʂ
Ϟνϕʔγϣϯ خ͍͜͠ͱʹ TIJSBKJ͞Μ͔ΒKLɺLBQUʹ,POUSJCVUF ͯ͠ΈͯʔʂͱԹ͔͍͓ݴ༿Λ͍ͨͩ͘ʂ
·ͱΊ ·ͱΊ
w KLɺLBQUͳͲ͞ΒʹͬͯΈ͍ͨͱ͍͏ ͕૿͑Δ͔ʂ w ͨͩܧଓతͳ,POUSJCVUFͷͨΊͷΈԽ͕ ͋ͬͨํ͕ྑ͍͔ʂ ·ͱΊ w ,PUMJO͕͖ɺߩݙ͍ͨ͠ͱ͍͏ؾ͕࣋ͪ͋Ε τϥΠʂͯ͠ΈΔՁ͋Γ·͢ʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ͓͠·͍