Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.9k
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
140
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
130
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.2k
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
740
Go コードベースの構成と AI コンテキスト定義
andpad
0
130
AWS CDKの推しポイントN選
akihisaikeda
1
240
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
110
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
4
870
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.4k
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
140
Featured
See All Featured
It's Worth the Effort
3n
187
29k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
GraphQLとの向き合い方2022年版
quramy
50
14k
Rails Girls Zürich Keynote
gr2m
95
14k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Writing Fast Ruby
sferik
630
62k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Invisible Side of Design
smashingmag
302
51k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
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ΤϯδχΞੵۃ࠾༻தͰ͢ɻ ਓͷΤϯδχΞΛ୳͍ͯ͠·͢ʂ ΤϯδχΞਓͰ͕Μ͍ͬͯ·͢ɻ ৽͍͠ͷେ͖ ࠊ͕ॏ͍