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
1.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
1年ぶりにやりなおすKotlinアプリ開発
Kazuya Kitahara
July 12, 2017
More Decks by Kazuya Kitahara
See All by Kazuya Kitahara
位置情報を用いて映画や漫画を可視化する方法.pdf
kkitahara
0
310
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
170
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
130
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
120
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
250
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.4k
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
510
関数型プログラミングのメリットって何だろう?
wanko_it
0
200
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
190
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
200
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
200
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
410
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
460
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
Prompt Engineering for Job Search
mfonobong
0
380
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
250
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
390
The Language of Interfaces
destraynor
162
27k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
We Are The Robots
honzajavorek
0
290
Faster Mobile Websites
deanohume
310
32k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
510
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ΤϯδχΞੵۃ࠾༻தͰ͢ɻ ਓͷΤϯδχΞΛ୳͍ͯ͠·͢ʂ ΤϯδχΞਓͰ͕Μ͍ͬͯ·͢ɻ ৽͍͠ͷେ͖ ࠊ͕ॏ͍