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
CustomView in Kotlin @ potatotips #42
Search
Yoshihiro WADA
July 25, 2017
Programming
2
1.2k
CustomView in Kotlin @ potatotips #42
potatotips #42にて発表したKotlinでCustomViewを作る話のスライドです。
Yoshihiro WADA
July 25, 2017
Tweet
Share
More Decks by Yoshihiro WADA
See All by Yoshihiro WADA
AndroidデバイスにFTPサーバを建立する
e10dokup
0
250
Gradleの実行環境設定を見直す
e10dokup
0
850
Firebase App Distributionのテストアプリ配信を試しやすくする
e10dokup
0
560
アプリに署名する 〜GitHub ActionsでのCIも見据えて〜
e10dokup
0
1.1k
Profileable buildでより正確なパフォーマンスを掴む
e10dokup
0
710
[DroidKaigi 2021] メディアアクセス古今東西 / Now and Future of Media Access
e10dokup
0
3.4k
今更「dp」を考える / Let's think about "dp" now
e10dokup
0
5.5k
1から学ぶAndroidアプリデバッグ - アプリの動作を追いかけよう / Learn Android application debugging from the scratch - track apps' behaviors
e10dokup
10
3.1k
Guide to background processingを読んでみる / Reading "Guide to background processing"
e10dokup
0
250
Other Decks in Programming
See All in Programming
Open source software: how to live long and go far
gaelvaroquaux
0
640
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1k
Formの複雑さに立ち向かう
bmthd
1
860
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
7
770
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
140
Introduction to kotlinx.rpc
arawn
0
710
Software Architecture
hschwentner
6
2.1k
WebDriver BiDiとは何なのか
yotahada3
1
140
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
38
14k
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
2
330
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
5
390
『品質』という言葉が嫌いな理由
korimu
0
160
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
13k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Optimizing for Happiness
mojombo
376
70k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
The Cult of Friendly URLs
andyhume
78
6.2k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Scaling GitHub
holman
459
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Site-Speed That Sticks
csswizardry
4
380
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
Designing Experiences People Love
moore
140
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Transcript
$VTUPN7JFXJO,PUMJO :PTIJIJSP8BEBBLB!FEPLVQ QPUBUPUJQT!$PPLQBE *OD
୭ͶΜ͓લ :PTIJIJSP8BEB Ɠ $ZCFS"HFOU *OD "EUFDI4UVEJP"*.FTTFOHFS !FEPLVQ ȍ
FEPLVQ FEPLVQ ,PUMJO ྺ ϲ݄
,PUMJO ྺ ϲ݄ ୭ͶΜ͓લ :PTIJIJSP8BEB Ɠ $ZCFS"HFOU *OD
"EUFDI4UVEJP"*.FTTFOHFS !FEPLVQ ȍ FEPLVQ FEPLVQ
ࠓճ͢͜ͱ ⋆ ,PUMJO Ͱ $VTUPN7JFX Λ࡞͢Δ ? ίϯετϥΫλͲ͏ͳΔʜʁ ?
+BWB ͔ΒݺͿࡍʹʜʁ ? $BMMCBDL Ͳ͏͢Εʜʁ
$POTUSVDUPS QVCMJDDMBTT$VTUPN7JFXFYUFOET7JFX\ QVCMJD$VTUPN7JFX $POUFYUDPOUFYU \ TVQFS DPOUFYU JOJU
^ QVCMJD$VTUPN7JFX $POUFYUDPOUFYU !/VMMBCMF"UUSJCVUF4FUBUUST \ TVQFS DPOUFYU BUUST JOJU ^ QVCMJD$VTUPN7JFX $POUFYUDPOUFYU !/VMMBCMF"UUSJCVUF4FUBUUST JOUEFG4UZMF"UUS \ TVQFS DPOUFYU BUUST EFG4UZMF"UUS JOJU ^ QSJWBUFWPJEJOJU \ JOJUJBMJ[F ^ NFUIPET ^ ⋆ ී௨ͷ $POTUSVDUPS
$POTUSVDUPS DMBTT$VTUPN7JFX7JFX\ DPOTUSVDUPS DPOUFYU$POUFYU TVQFS DPOUFYU DPOTUSVDUPS
DPOUFYU$POUFYU BUUST"UUSJCVUF4FU TVQFS DPOUFYU BUUST DPOTUSVDUPS DPOUFYU$POUFYU BUUST"UUSJCVUF4FU EFG4UZMF"UUS*OU TVQFS DPOUFYU BUUST EFG4UZMF"UUS JOJU\ JOJUJBMJ[F ^ NFUIPET ^ ⋆ ,PUMJO Ͱ JOJU ϒϩοΫΛͬͯΈΔ TFDPOEFSZ DPOTUSVDUPST
$POTUSVDUPS DMBTT$VTUPN7JFX!+WN0WFSMPBETDPOTUSVDUPS DPOUFYU$POUFYU BUUST"UUSJCVUF4FU OVMM EFG4UZMF"UUS*OU 7JFX DPOUFYU
BUUST EFG4UZMF"UUS \ JOJU\ JOJUJBMJ[F ^ NFUIPET ^ ⋆ σϑΥϧτҾΛͬͯΈΔ QSJNBSZ DPOTUSVDUPS
$POTUSVDUPS DMBTT$VTUPN7JFX!+WN0WFSMPBETDPOTUSVDUPS DPOUFYU$POUFYU BUUST"UUSJCVUF4FU OVMM EFG4UZMF"UUS*OU 7JFX DPOUFYU
BUUST EFG4UZMF"UUS \ JOJU\ JOJUJBMJ[F ^ NFUIPET ^ ⋆ σϑΥϧτҾΛͬͯΈΔ QSJNBSZ DPOTUSVDUPS
!+WN0WFSMPBET Ξϊςʔγϣϯ ⋆ +BWB ༻ͷ 0WFSMPBENFUIPE Λ࡞ͬͯ͘ΕΔ +BWB ͔ΒσϑΥϧτҾࢀরͰ͖ͳ͍ɻ
/P4VDI.FUIPE&YDFQUJPO Λు͔ΕΔ !+WN0WFSMPBETΞϊςʔγϣϯΛՃ͢Δͱ +BWB ͔Βݟͨͱ͖ʹϝιου͕ଟॏఆٛ͞ΕΔ ,PUMJO ͔Β "OESPJE4UVEJP ͷ *OUFOTJPO Ͱ !+WN0WFSMPBET ͳίϯετϥΫλΛ ࡞ͬͯ͘ΕΔΑ͏ʹ "EE"OESPJE7JFXDPOTUSVDUPSTVTJOH!+WN0WFSMPBET
$BMMCBDL QVCMJDDMBTT-JTUFOFS4BNQMF7JFXFYUFOET7JFX\ QSJWBUF$BMMCBDLDBMMCBDL QVCMJDWPJEIPHF \ JG DBMMCBDLOVMM SFUVSO DBMMCBDLPO)PHF
^ QVCMJDJOUFSGBDF$BMMCBDL\ QVCMJDWPJEPO)PHF ^ ^ QVCMJDDMBTT.BJO"DUJWJUZFYUFOET"QQ$PNQBU"DUJWJUZ JNQMFNFOUT-JTUFOFS4BNQMF7JFX$BMM#BDL\ !0WFSSJEF QVCMJDWPJEPO)PHF \ DBMMCBDLT ^ ^ ⋆ ී௨ͷϦεφʔύλʔϯ
$BMMCBDL DMBTT-JTUFOFS4BNQMF7JFX7JFX\ QSJWBUFWBSDBMMCBDL$BMMCBDL OVMM QSJWBUFGVOIPHF \ DBMMCBDL PO)PHF TBGFDBMM
^ JOUFSGBDF$BMMCBDL\ GVOPO)PHF ^ ^ DMBTT.BJO"DUJWJUZ"QQ$PNQBU"DUJWJUZ -JTUFOFS4BNQMF7JFX$BMMCBDL\ PWFSSJEFGVOPO)PHF \ DBMMCBDLT ^ ^ ⋆ ͦͷ·· ,PUMJO ʹͯ͠ΈΔ
$BMMCBDL DMBTT-JTUFOFS4BNQMF7JFX7JFX\ 㕉ᡔә◌क✖ԒԾԠԏԗӔӘӑӇӘӨӨՉ՛ԸӕᛝӉӅӳӶӵ WBSPO)PHF 6OJU OVMM QSJWBUFGVOIPHF \
PO)PHF JOWPLF ^ ^ DMBTT.BJO"DUJWJUZ"QQ$PNQBU"DUJWJUZ \ PWFSSJEFGVOPO$SFBUF TBWFE*OTUBODF4UBUF#VOEMF \ MJTUFOFS4BNQMF7JFXPO)PHF\ DBMMCBDLT ^ ^ ^ ⋆ ؔϦςϥϧͱ JOWPLF Ͱ -JTUFOFS ͕ෆཁʹ
$BMMCBDL QVCMJDDMBTT+BWB.BJO"DUJWJUZFYUFOET"QQ$PNQBU"DUJWJUZ\ !0WFSSJEF QSPUFDUFEWPJEPO$SFBUF !/VMMBCMF#VOEMFTBWFE*OTUBODF4UBUF \
MJTUFOFS4BNQMF7JFXTFU0O)PHF OFX'VODUJPO6OJU \ !0WFSSJEF QVCMJD6OJUJOWPLF \ DBMMCBDLT SFUVSOOVMM ^ ^ ^ ^ ⋆ +BWB Ͱѻ͏ͱ͖ 'VODUJPO/ ΛҾʹ༩͑Δ 'VODUJPO/ 㮢/ әᐠᡔӘંᡔ㮣 ә ,PUMJO Ә㕉ᡔѭ 6OJU ӔӴ OVMM Ӽ㈘Ӄ
$BMMCBDL ⋆ Ҿ͕ଟ͘ͳͬͨͱ͖Λߟ͑Δ ⋆ ֦େɾॖখɾεΫϩʔϧͰ͖Δ *NBHF7JFX Ͱഒ࠲ඪɺΈग़͠Λ௨ͯ͠΄͍͠ WBSPO$IBOHF4UBUF
TDBMF'MPBU Y'MPBU Z'MPBU PWFS9*OU PWFS:*OU 6OJU OVMM
$BMMCBDL ⋆ +BWB ίʔυͰඇৗʹ͍ 'VODUJPO ʹͳΔ ⋆ ิͰࣗಈੜ͢ΔͱҾ໊͕Ṗ IPHF7JFXTFU0O$IBOHF4UBUF
OFX'VODUJPO'MPBU 'MPBU 'MPBU *OUFHFS *OUFHFS 6OJU \ !0WFSSJEF QVCMJD6OJUJOWPLF 'MPBUB'MPBU 'MPBUB'MPBU 'MPBUB'MPBU *OUFHFSJOUFHFS *OUFHFSJOUFHFS \ SFUVSOOVMM ^ ^ ⧞ӑᥨҷᝪҲӵӘәǘ
$BMMCBDL IPHF7JFXPO$IBOHF4UBUF\ 䖕 GM'MPBU GM'MPBU GM'MPBU
J*OU J*OU\⧞ಌ⇰ᘻҿӶӉᐠᡔൻ GVODUJPOT ^ ^ ⋆ ,PUMJO Ͱ *OUFOTJPO ͨ࣌͠ͷҾ໊͕ʜ +BWB ӘӒҷӲӴ㗾ӕӔӍӉǘ㮹
$BMMCBDL ʹ͍ͭͯࢥ͏͜ͱ ⋆ ؔϦςϥϧͰϦεφʔύλʔϯഉআͰ͖Δ ⋆ ϦεφʔύλʔϯΛͬͨ΄͏͕ϝϯςφϯε ͍͢͠έʔε͍ͬͺ͍͋Γͦ͏ ෳͷҾ͕ଘࡏ͢Δͱ͖ ଟͷίʔϧόοΫؔΛ࣋ͭͱ͖
⋆ ٯʹར༻ͨ͠ํ͕ྑͦ͞͏ͳέʔε͋Γͦ͏ ඞͣఆٛ͢Δඞཁͷͳ͍ίʔϧόοΫ͕͋Δ࣌ FH(FTUVSF%FUFDUPS(FTUVSF-JTUFOFS ͷ μϒϧλοϓͷݕ͚ͩར༻͍ͨ͠ɺͱ͔
ࢀߟจݙ ⋆ +BWB ͔Βͷར༻ΛࢹʹೖΕͨ ,PUMJO ίʔυͰ ԿΛ͢Δ͖͔2JJUB IUUQRJJUBDPNKNBUTVJUFNTDCBBDCDCG ⋆
+BWB,PUMJO ࠞ߹ϓϩδΣΫτͰؾΛ͚͍ͭͯΔ͜ͱɻ IUUQMWMBIBUFOBCMPHDPNFOUSZ ⋆ ,PUMJO ͰίʔϧόοΫ2JJUB IUUQRJJUBDPN""LJSB!HJUIVCJUFNTFCBBFFECED