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
1年ぶりにやりなおすKotlinアプリ開発
Search
Kazuya Kitahara
July 12, 2017
Programming
0
1.7k
1年ぶりにやりなおすKotlinアプリ開発
Kazuya Kitahara
July 12, 2017
Tweet
Share
More Decks by Kazuya Kitahara
See All by Kazuya Kitahara
位置情報を用いて映画や漫画を可視化する方法.pdf
kkitahara
0
300
Other Decks in Programming
See All in Programming
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
240
チームのテスト力を鍛える
goyoki
3
720
Testing Trophyは叫ばない
toms74209200
0
890
Reading Rails 1.0 Source Code
okuramasafumi
0
250
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
560
Cache Me If You Can
ryunen344
2
3k
今から始めるClaude Code入門〜AIコーディングエージェントの歴史と導入〜
nokomoro3
0
210
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
400
AIと私たちの学習の変化を考える - Claude Codeの学習モードを例に
azukiazusa1
10
4.3k
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
710
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
私の後悔をAWS DMSで解決した話
hiramax
4
210
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Fireside Chat
paigeccino
39
3.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Bash Introduction
62gerente
615
210k
Making Projects Easy
brettharned
117
6.4k
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ΤϯδχΞੵۃ࠾༻தͰ͢ɻ ਓͷΤϯδχΞΛ୳͍ͯ͠·͢ʂ ΤϯδχΞਓͰ͕Μ͍ͬͯ·͢ɻ ৽͍͠ͷେ͖ ࠊ͕ॏ͍