Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
1年ぶりにやりなおすKotlinアプリ開発
Kazuya Kitahara
July 12, 2017
Programming
0
1.1k
1年ぶりにやりなおすKotlinアプリ開発
Kazuya Kitahara
July 12, 2017
Tweet
Share
More Decks by Kazuya Kitahara
See All by Kazuya Kitahara
位置情報を用いて映画や漫画を可視化する方法.pdf
kkitahara
0
200
Other Decks in Programming
See All in Programming
Beyond Micro Frontends: Frontend Moduliths for the Enterprise @wad2022
manfredsteyer
PRO
0
130
大規模プロダクトにLinterを導入し運用している話
hirokiotsuka
0
210
GitHubのユーザー名を変更した後のあれこれ
tahia910
0
130
Haskellでオブジェクト指向プログラミング
koheisakata
0
110
Licences open source : entre guerre de clochers et radicalité
pylapp
2
500
無限スクロールビューライブラリ 二つの設計思想比較
harumak
0
250
The strategies behind ddd – AdeoDevSummit 2022
lilobase
PRO
4
250
Value and Record Types
hschwentner
0
550
git on intellij
hiroto_kitamura
0
170
BASE BANKチームの技術選定と歴史 / how to decide technology selection for startup
budougumi0617
0
1.1k
こそこそアジャイル導入しようぜ!
ichimichi
0
1.2k
JSのウェブフレームワークで高速なルーターを実装する方法
usualoma
1
1.8k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
324
55k
Debugging Ruby Performance
tmm1
65
10k
Gamification - CAS2011
davidbonilla
75
3.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
498
130k
Docker and Python
trallard
27
1.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Stop Working from a Prison Cell
hatefulcrawdad
261
17k
Thoughts on Productivity
jonyablonski
43
2.3k
The Mythical Team-Month
searls
209
39k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
What's in a price? How to price your products and services
michaelherold
229
9.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
Transcript
1ͿΓʹΓͳ͓͢KotlinΞϓϦ։ൃ .HSBN*OD ݪ
ࣗݾհ w ݪ w גࣜձࣾNHSBNʢچגࣜձࣾ-JQʣΤϯδχΞ w ۀϝϯόʔͷ̍ਓͰ͢ɻ w લʹϛΫγΟ͔Βస৬͠·ͨ͠ɻ w
"OESPJEϝΠϯɻ8FCɾJ04ঢ়گʹԠͯ͡։ൃ w झຯөըɾອը
γϯɾΰδϥͷҠಈܦ࿏Λਤ্ͰΞχϝʔγϣϯ w U (&0(3"1)*$0'(0%;*--" IUUQHFPHPE[JMMBUL
ΤϜάϥϜੑ֨அ w ͷ࣭Ͱੑ֨Λਖ਼֬அ w ΩϟονʔͳΞτϓοτ w ແྉ w ϲ݄Ͱສਓͷํ͕அ
1ͿΓʹΓͳ͓͢KotlinΞϓϦ։ൃ
͢ࣄ w ͿΓʹ,PUMJOΛ৮ͬͯࢥͬͨࣄ w ,PUMJOͱҰॹʹར༻ՄೳͳϥΠϒϥϦ
ͿΓʹ,PUMJOΛ৮ͬͯࢥͬͨࣄ
͑ΔϥΠϒϥϦ͕૿͑ͯΔ w "OOPUBUJPOϓϩηοαʔΛར༻͍ͯ͠ΔϥΠϒϥϦ ͑ͨΓ͑ͳ͔ͬͨΓ͍ͯͨ͠ w %BHHFS%BUB#JOEJOH͏·͘ಈ͔ͳ͔ͬͨΑ͏ʹه Ա w ৭ΜͳϥΠϒϥϦ͕͑ΔΑ͏ʹͳͬͯΔʂ
,PUMJOͷهࣄ͕૿͑ͯΔ w 8FC্Ͱ,PUMJOͷղઆΛͯ͠Δهࣄ͕૿͑ͯͯ͘͢͝ॿ͔ Γ·ͨ͠ɻ w 2JJUBͰ,PUMJOΛݕࡧͯ͠ΈΔͱɺݱࡏߘఔ͋Γ·͢ ͕ɺd·Ͱʹͯ͠ΈΔͱߘ͙Β͍ͩͬͨͷ Ͱɺ͜͜ͰഒҎ্ʹ૿͍͑ͯ·͢ɻ
ͬͺΓ,PUMJO͍͍͢ w FOVN w ԆϓϩύςΟ w HFUUFSTFUUFS w ֦ுؔ ಛʹ͖͢ͳػೳ
FOVN (FOEFSLU FOVNDMBTT(FOEFS WBMKQ4USJOH \ NBMF உੑ GFNBMF ঁੑ
PUIFS ͦͷଞ ^ w ྻڍܕ w ,PUMJOͷFOVN؆୯ʹΛ࣋ͨͤΔࣄ͕Ͱ͖ͯศར w 'SBHNFOU1BHFS"EBQUFSͷදࣔॱΛFOVNͰཧͯ͠·͢
FOVN .BJO1BHFLU FOVNDMBTT.BJO1BHF\ 1"(&\ PWFSSJEFGVOGSBHNFOU 'SBHNFOU\ SFUVSO1"(&'SBHNFOUOFX*OTUBODF ^ ^
1"(&\ PWFSSJEFGVOGSBHNFOU 'SBHNFOU\ SFUVSO1"(&'SBHNFOUOFX*OTUBODF ^ ^ BCTUSBDUGVOGSBHNFOU 'SBHNFOU ^
FOVN .BJO1BHFS"EBQUFSLU DMBTT.BJO1BHFS"EBQUFS GN'SBHNFOU.BOBHFS 'SBHNFOU4UBUF1BHFS"EBQUFS GN \ PWFSSJEFGVOHFU*UFN QPTJUJPO*OU
'SBHNFOU \ SFUVSO.BJO1BHFWBMVFT <QPTJUJPO>GSBHNFOU ^ PWFSSJEFGVOHFU$PVOU *OU\ SFUVSO.BJO1BHFWBMVFT TJ[F ^ PWFSSJEFGVOHFU1BHF5JUMF QPTJUJPO*OU $IBS4FRVFODF\ SFUVSO.BJO1BHFWBMVFT <QPTJUJPO>TDSFFO/BNF ^ ^
ԆϓϩύςΟ WBMHSBNCZMB[Z\lNHSBNz^ w ͡ΊͯΞΫηε͞Εͨͱ͖ʹܭࢉ͞ΕΔϓϩύςΟ w ฐࣾͰɺ'SBHNFOUʹ͢ͱ͖ʹ1BSDFMBSͱ߹Θͤͯ ͬͯ·͢ɻ
ԆϓϩύςΟ 'SBHNFOUͰͷར༻ྫ DPNQBOJPOPCKFDU\ GVOOFX*OTUBODF VTFS6TFS 6TFS%JBMPH'SBHNFOU\ WBMBSHT#VOEMF BQQMZ\ QVU1BSDFMBCMF 4FSJBMJ[F,FZ64&3OBNF
1BSDFMTXSBQ VTFS ^ SFUVSO6TFS%JBMPH'SBHNFOU BQQMZ\ BSHVNFOUTBSHT ^ ^ ^
ԆϓϩύςΟ ԆϓϩύςΟͰWBMʹͰ͖Δ QSJWBUFWBMVTFS6TFSCZMB[Z\ 1BSDFMTVOXSBQ6TFS BSHVNFOUTHFU1BSDFMBCMF 4FSJBMJ[F,FZ64&3OBNF
^ ԆϓϩύςΟΛར༻͠ͳ͍߹ QSJWBUFMBUFJOJUWBSVTFS6TFS PWFSSJEFGVOPO$SFBUF TBWFE*OTUBODF4UBUF#VOEMF \ TVQFSPO$SFBUF TBWFE*OTUBODF4UBUF VTFS1BSDFMTVOXSBQ6TFS BSHVNFOUTHFU1BSDFMBCMF 4FSJBMJ[F,FZ64&3OBNF ^
HFUUFSTFUUFS w ,PUMJOͰHFUUFSTFUUFSͷఆָ͕ٛ͘͢͝Ͱ͢ɻ w ฐࣾͰɺ%BUBCJOEJOHʹ͢0CTFSWBCMFͳ.PEFM 7JFX.PEFMΛ࡞͢ΔࡍʹΑ͍ͬͯ͘·͢ɻ
HFUUFSTFUUFS 7JFX.PEFM DMBTT6TFS7JFX.PEFM #BTF0CTFSWBCMF \ !#JOEBCMF WBSNBJM4USJOH TFU NBJM \
pFMENBJM OPUJGZ1SPQFSUZ$IBOHFE #3NBJM OPUJGZ1SPQFSUZ$IBOHFE #3WBMJE ^ !HFU#JOEBCMF WBSWBMJE#PPMFBOGBMTF HFU \ JG UIJTNBJMJT/VMM0S&NQUZ SFUVSOGBMTF WBMNBUDIFS1BUUFSOT&."*-@"%%3&44NBUDIFS UIJTNBJM SFUVSONBUDIFSNBUDIFT ^ ^
֦ுؔ w طଘͷΫϥεʹରͯ͠ޙ͔ΒϝιουΛՃ͢Δࣄ͕Ͱ͖ Δػೳ w #JOEJOH"EBQUFSΛՃ͢Δͱ͖ʹΑͬͯ͘·͢ɻ
֦ுؔར༻͠ͳ͍߹ 1JDBTTPͷMPBE*NBHF PCKFDU*NBHF7JFX#JOEJOH"EBQUFS\ !#JOEJOH"EBQUFS CJOEJNBHF6SM !+WN4UBUJD GVOMPBE*NBHF WJFX*NBHF7JFX VSM4USJOH
\ 1JDBTTPXJUI WJFXDPOUFYU MPBE JNBHF6SM JOUP WJFX ^ ^
֦ுؔར༻ͨ͠߹ 1JDBTTPͷMPBE*NBHF !#JOEJOH"EBQUFS CJOEJNBHF6SM GVO*NBHF7JFXMPBE*NBHF JNBHF6SM4USJOH \ 1JDBTTPXJUI UIJTDPOUFYU
MPBE JNBHF6SM JOUP UIJT ^
ඍົͩͬͨॴɿMJOU w લMJOUͷ݁Ռ͕͍·͍ͪͩͬͨ w ,PUMJO͔Βࢀর͞Ε͍ͯΔSFTPVSDF6OVTFE3FTPVSDFͷ XBSOJOH͕ग़Δࣄ w मਖ਼͞Ε͍ͯΔࣄΛظͯ͠·͕ͨ͠ɺΫϥεʹΑͬͯXBSOJOH ग़ͨΓग़ͳ͔ͬͨΓͯͯ͠·ͩ͑ͳ͍༷Ͱ͢ɻ
,PUMJOͱҰॹʹར༻ՄೳͳϥΠϒϥϦ
௨৴ɾඇಉظॲཧपΓ w 3FUSPpU w 0L)UUQ w 3Y+BWB
௨৴ɾඇಉظॲཧपΓ .BJO"DUJWJUZ7JFX.PEFMLU UIJTDMJFOUHFU"DDPVOU CJOE5P-JGFDZDMF BDUJWJUZ TVCTDSJCF0O 4DIFEVMFSTOFX5ISFBE
PCTFSWF0O "OESPJE4DIFEVMFSTNBJO5ISFBE TVCTDSJCF \TVDDFTT %PTPNFUIJOH ^ \GBJMVSF %PTPNFUIJOH ^ "QJLU JOUFSGBDF"QJ\ !(&5 BDDPVOU GVOHFU"DDPVOU 0CTFSWBCMF"DDPVOU ^
1BSDFMFS 6TFS1SPpMFLU !1BSDFM EBUBDMBTT6TFS1SPpMF!1BSDFM$POTUSVDUPS DPOTUSVDUPS !1BSDFM1SPQFSUZ JDPO WBMJDPO4USJOH
!1BSDFM1SPQFSUZ OBNF WBMOBNF4USJOH \ ^ w 1BSDFMBCMFͷ࣮Λָʹ͢ΔϥΠϒϥϦ
1BSDFMFS 6TFS'SBHNFOULU 1BSDFMTVOXSBQ6TFS1SPpMF BSHVNFOUTHFU1BSDFMBCMF 4FSJBMJ[F,FZ64&3@130'*-&OBNF 6TFS'SBHNFOULU WBMBSHT#VOEMF BQQMZ\
QVU1BSDFMBCMF 4FSJBMJ[F,FZ64&3@1SPpMFOBNF 1BSDFMTXSBQ VTFS1SPpMF ^
(40/ 6TFS1SPpMFLU EBUBDMBTT6TFS1SPpMF !4FSJBMJ[FE/BNF JDPO WBMJDPO4USJOH !4FSJBMJ[FE/BNF OBNF
WBMOBNF4USJOH \ ^ w KTPOͷύʔεΛࣗಈԽ͢ΔϥΠϒϥϦ w ฐࣾͰQSPHVBSEରԠʹΞϊςʔγϣϯΛར༻ͯ͠ର Ԡ͍ͯ͠·͢ɻ
%BSU w *OUFOUʹσʔλΛ͢ͷΛָʹ͢ΔϥΠϒϥϦ w ,&:ͷࢦఆ͕ෆཁʹͳΔ
%BSU 6TFS"DUJWJUZLU DMBTT6TFS"DUJWJUZ"QQ$PNQBU"DUJWJUZ \ !*OKFDU&YUSB MBUFJOJUWBSVTFS6TFS PWFSSJEFGVOPO$SFBUF TBWFE*OTUBODF4UBUF#VOEMF \ TVQFSPO$SFBUF
TBWFE*OTUBODF4UBUF %BSUJOKFDU UIJT ^ DPNQBOJPOPCKFDU\ GVODSFBUF*OUFOU DPOUFYU$POUFYU VTFS6TFS *OUFOU\ SFUVSO)FOTPOXJUI DPOUFYU HPUP6TFS"DUJWJUZ VTFS VTFS CVJME ^ ^ ^
%BSUΛ'SBHNFOUͰར༻͢Δʁ 6TFS'SBHNFOULU HFU*OUFOU QVU&YUSBT )FOTPOXJUI UIJT HPUP.Z'SBHNFOU BSH
BSH CVJME HFU4VQQPSU'SBHNFOU.BOBHFS CFHJO5SBOTBDUJPO SFQMBDF 3JEDPOUBJOFS OFX.Z'SBHNFOU DPNNJU w IUUQTHJUIVCDPNGQSBUFFLEBSUJTTVFTʮ୭͔པΉʯ w ࡌ͍ͬͯΔํ๏ඍົͳͷͰɺ'SBHNFOUͰར༻͍ͯ͠·ͤΜɻ
BOESPJETUBUF w *DF1JDLͷ,PUMJOରԠ൛ʢFWFSOPUF͕։ൃʣ w PO4BWF*OTUBODF4UBUFͷॲཧΛࣗಈԽͯ͘͠ΕΔ w IUUQTHJUIVCDPNFWFSOPUFBOESPJETUBUF
BOESPJETUBUF .BJO"DUJWJUZLU PWFSSJEFGVOPO$SFBUF TBWFE*OTUBODF4UBUF#VOEMF \ TVQFSPO$SFBUF TBWFE*OTUBODF4UBUF 4UBUF4BWFSSFTUPSF*OTUBODF4UBUF UIJT
TBWFE*OTUBODF4UBUF ^ .BJO"DUJWJUZLU !4UBUF WBSOBNF4USJOH OVMM
·ͱΊ w ͿΓʹ,PUMJOΛͬͯΈͨΒ͑ΔϥΠϒϥϦ͕͢͝ ͘૿͑ͯͯศརͩͬͨ w ,PUMJOͷجຊػೳ૬มΘΒͣૉఢ w ͜Ε͔Βͷ։ൃ,PUMJOͰ࢝ΊΔͷ͕ྑͦ͞͏ ͿΓʹͬͨΒͬͺΓ,PUMJOྑ͔ͬͨ
גࣜձࣾNHSBNΤϯδχΞੵۃ࠾༻தͰ͢ɻ ਓͷΤϯδχΞΛ୳͍ͯ͠·͢ʂ ΤϯδχΞਓͰ͕Μ͍ͬͯ·͢ɻ ৽͍͠ͷେ͖ ࠊ͕ॏ͍