Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Kotlin != GOOD 성배
Search
pluulove (노현석)
September 07, 2018
Technology
93
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kotlin != GOOD 성배
Emocon 2017 F/W
pluulove (노현석)
September 07, 2018
More Decks by pluulove (노현석)
See All by pluulove (노현석)
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
300
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
600
N.E.X.T LEVEL
pluu
3
640
안드로이드 기술 이력서의 최소 조건
pluu
1
4.7k
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
810
Android Studio와 좀 더 친해지기
pluu
0
270
우리모두 삽질한다
pluu
0
1.5k
Re:Android Studio 설정 살펴보기 및 생산성 올리기
pluu
0
1.8k
What's new in Android development tools
pluu
1
980
Other Decks in Technology
See All in Technology
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
200
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
190
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
USB PDを使ってスマホを労わりたい
raspython3
0
180
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
420
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
130
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
490
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
6.1k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Everyday Curiosity
cassininazir
0
350
Transcript
&.0$0/ '8 ,PUMJO(00%ࢿߓ !QMVVMPWF
None
None
#BTJD fun main(args: Array<String>): Unit { println("Hello, Emocon 2017 F/W!”)
}
#BTJD fun main(args: Array<String>): Unit { println("Hello, Emocon 2017 F/W!”)
} Function Definition
/VMM4BGF if (data != null && data.value != null) {
data.value.toString() }
/VMM4BGF data?.value?.toString()
*GXIFOUSZ_DBUI /P3FUVSO7BMVF TUBUFNFOU FYQSFTTJPO 3FUVSO7BMVF
*G&YQSFTTJPO JOUB 4USJOHWBMVF JG B \ WBMVF0WFS ^FMTF\ WBMVF6OEFS ^
WBMB WBMWBMVF4USJOH JG B \ WBMVF0WFS ^FMTF\ WBMVF6OEFS ^ +BWB ,PUMJO
WBMB WBMWBMVFJG B \ 0WFS ^FMTF\ 6OEFS ^ *G&YQSFTTJPO JOUB
4USJOHWBMVF JG B \ WBMVF0WFS ^FMTF\ WBMVF6OEFS ^ +BWB ,PUMJO
B*OU XIFO Y \ QBSTF*OU T QSJOU TFODPEFTY JOQSJOU
YJTJOUIFSBOHF JOWBMJE/VNCFSTQSJOU YJTWBMJE JOQSJOU YJTPVUTJEFUIFSBOHF FMTFQSJOU OPOFPGUIFBCPWF ^ XIFO Y*OU WBMWBMVFXIFO Y \ POF UXP UISFF FMTFBOPUIFS ^ $BTF $BTF
1BSBNFUFS%FGBVMU7BMVF QVCMJD4USJOHGPP 4USJOHOBNF JOUOVNCFS CPPMFBOUP6QQFS$BTF \ SFUVSO UP6QQFS$BTF OBNFUP6QQFS$BTF OBNF
OVNCFS ^ QVCMJD4USJOHGPP 4USJOHOBNF JOUOVNCFS \ SFUVSOGPP OBNF OVNCFS GBMTF ^ QVCMJD4USJOHGPP 4USJOHOBNF CPPMFBOUP6QQFS$BTF \ SFUVSOGPP OBNF UP6QQFS$BTF ^ QVCMJD4USJOHGPP 4USJOHOBNF \ SFUVSOGPP OBNF ^
1BSBNFUFS%FGBVMU7BMVF GVOGPP OBNF4USJOH OVNCFS*OU UP6QQFS$BTF#PPMFBOGBMTF JG UP6QQFS$BTF OBNFUP6QQFS$BTF
FMTFOBNF OVNCFS Default Default
&YBNQMF DMBTT*UFN\ QSJWBUF4USJOHUZQF QSJWBUFJOUUZQF QSJWBUFGMPBUUZQF QSJWBUFGMPBUUZQF ^ TFUUFSHFUUFS IBTI$PEF FRVBMT
UP4USJOH
&YBNQMF DMBTT*UFN\ QSJWBUF4USJOHUZQF QSJWBUFJOUUZQF QSJWBUFGMPBUUZQF QSJWBUFGMPBUUZQF QVCMJD*UFN 4USJOHUZQF JOUUZQF GMPBUUZQF
GMPBUUZQF \ UIJTUZQFUZQF UIJTUZQFUZQF UIJTUZQFUZQF UIJTUZQFUZQF ^ QVCMJD4USJOHHFU5ZQF \ SFUVSOUZQF ^ QVCMJDWPJETFU5ZQF 4USJOHUZQF \ UIJTUZQFUZQF ^ QVCMJDJOUHFU5ZQF \ SFUVSOUZQF ^ QVCMJDWPJETFU5ZQF JOUUZQF \ UIJTUZQFUZQF ^ QVCMJDGMPBUHFU5ZQF \ SFUVSOUZQF ^ QVCMJDWPJETFU5ZQF GMPBUUZQF \ UIJTUZQFUZQF ^ QVCMJDGMPBUHFU5ZQF \ SFUVSOUZQF ^ QVCMJDWPJETFU5ZQF GMPBUUZQF \ UIJTUZQFUZQF ^ !0WFSSJEF QVCMJDCPPMFBOFRVBMT 0CKFDUP \ JG UIJTP SFUVSOUSVF JG POVMM]]HFU$MBTT PHFU$MBTT SFUVSOGBMTF *UFNJUFN *UFN P JG UZQFJUFNUZQF SFUVSOGBMTF JG 'MPBUDPNQBSF JUFNUZQF UZQF SFUVSOGBMTF JG 'MPBUDPNQBSF JUFNUZQF UZQF SFUVSOGBMTF SFUVSOUZQFOVMM UZQFFRVBMT JUFNUZQF JUFNUZQFOVMM ^ !0WFSSJEF QVCMJDJOUIBTI$PEF \ JOUSFTVMUUZQFOVMM UZQFIBTI$PEF SFTVMU SFTVMU UZQF SFTVMU SFTVMU UZQF G 'MPBUGMPBU5P*OU#JUT UZQF SFTVMU SFTVMU UZQF G 'MPBUGMPBU5P*OU#JUT UZQF SFUVSOSFTVMU ^ !0WFSSJEF QVCMJD4USJOHUP4USJOH \ SFUVSO*UFN\ UZQF UZQF = UZQF UZQF UZQF UZQF UZQF UZQF ^ ^ ^
%BUB$MBTT EBUBDMBTT*UFN WBSUZQF4USJOH WBSUZQF*OU WBSUZQF'MPBU WBSUZQF'MPBU
&YUFOTJPO'VODUJPO ઓೞחېझীਗೞחӝמਸ୶ооמ FY ݽٚंܳޙt&NPDPO'8uਵ۽߄Լࠅө Ӓؘ۠QMVVۄחܴਵ۽ࠗܰ
&YUFOTJPO'VODUJPO
&YUFOTJPO'VODUJPO GVO*OUUP1MVV &NPDPO'8 QSJOUMO UP1MVV 3FTVMU &NPDPO'8
&YUFOTJPO'VODUJPO GVO*OUUP1MVV &NPDPO'8 QSJOUMO UP1MVV 3FTVMU &NPDPO'8 Function
&YUFOTJPO'VODUJPO GVO*OUUP1MVV &NPDPO'8 QSJOUMO UP1MVV 3FTVMU &NPDPO'8 Receiver Type
&YUFOTJPO'VODUJPO GVO*OUUP1MVV &NPDPO'8 QSJOUMO UP1MVV 3FTVMU &NPDPO'8 Function Name
&YUFOTJPO'VODUJPO GVO*OUUP1MVV &NPDPO'8 QSJOUMO UP1MVV 3FTVMU &NPDPO'8 Function Body
ౣܽѮೢӝযٸਃ
ഐ___
ࢿߓ ࢿߓܳਵݶݽٚѱੜಽܽ ةٚࢿߓ 1PJTPOFE$IBMJDF
ࢿߓ ᔭ ᚥ
,PUMJO • ࢜۽ যۄח Ѣࠗх / ۞ ழ࠳ /
ࠛউх / ৈ۞ ޙٜ … • Functional Programming • Hybrid Language о оח ޙઁٜ • ই ೠӖ۽ ػ ޙࢲ / ଼ٜ • Kotlin Compiler ী ೧ ࢤࢿغח ٘ • ࢤпೞח Ѫࠁ ؊ ݆ ٘о ࢤࢿ
QVCMJDTUBUJDGJOBMWPJEUFTU !/PU/VMM0CKFDUY \ *OUSJOTJDTDIFDL1BSBNFUFS*T/PU/VMM Y Y JG YJOTUBODFPG4USJOH \
JOUWBS 4USJOH Y MFOHUI 4ZTUFNPVUQSJOUMO WBS WBS 4USJOH Y MFOHUI 4ZTUFNPVUQSJOUMO WBS WBS 4USJOH Y MFOHUI 4ZTUFNPVUQSJOUMO WBS WBS 4USJOH Y MFOHUI 4ZTUFNPVUQSJOUMO WBS ^ ^ ,PUMJOWT%FDPNJMF GVOUFTU Y"OZ \ JG YJT4USJOH \ QSJOUMO YMFOHUI QSJOUMO YMFOHUI QSJOUMO YMFOHUI QSJOUMO YMFOHUI ^ ^ ,PMUJO %FDPNQJMF
৷ݽܰѷ݅ "OOPUBUJPOҗחj • Clean Build ೧ঠ ઁ۽ زೞӝب ೣ
• ঌ ࣻ হח ী۞
ઁ߄উ೧بغաਃ
/0
None
ઁ߄উ೧بغաਃ • Framework Ú Java • Library Ú Java /
Kotlin • Your Code Ú Java / Kotlin • Kotlin Compilerо Java Class Codeܳ ݅ٞ • Java to Kotlin, non-null ёী null ਸ ࠁյ ҃ …. ী۞ ߊࢤ
None
IUUQUFDIMF[IJODPNUIFDBTFBHBJOTULPUMJO
,PUMJO JNQPSULPUMJOYBOESPJETZOUIFUJDNBJOBDUJWJUZ@NBJO DMBTT.Z"DUJWJUZ"DUJWJUZ \ PWFSSJEFGVOPO$SFBUF TBWFE*OTUBODF4UBUF#VOEMF \ TVQFSPO$SFBUF
TBWFE*OTUBODF4UBUF TFU$POUFOU7JFX 3MBZPVUBDUJWJUZ@NBJO UFYU7JFXTFU5FYU )FMMP XPSME ^ ^ <TextView android:id="@+id/textView" ... /> ,PUMJO"OESPJE&YUFOTJPOT
טযաח,PUMJO (JU)VCഛੋ ӝળ 4UBSTਤ -BOHVBHFਤ
טযաח,PUMJO ࠶۽ӒߊҳӖࢠী,PUMJOࢎਊૐо ӝઓ+BWBÜ+BWB / ,PUMJO . ೯ ೠӖ۽ࢿغחӖٜࢤӝҊ
٘٣য ೠӖ۽ػ଼ӂद
4JNQMFJT#FTU %FMFHBUJPO %BUB$MBTT 4JOHMFUPO /VMM4BGFUZ &YQSFTTJPO %FTUSVDUVSJOH%FDMBSBUJPOT 5ZQF$IFDLTBOE$BTUT
*OUFMMJ+4VQQPSU 4IPX,PUMJO#ZUFDPEFÜ%FDPNQJMF %FDPNQJMFػ+BWB٘۽оמ
None
None
QMVVMPWF QMVVMPWFUFTU!HNBJMDPN