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
Kotlin != GOOD 성배
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
240
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
570
N.E.X.T LEVEL
pluu
3
630
안드로이드 기술 이력서의 최소 조건
pluu
1
4.4k
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
790
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
970
Other Decks in Technology
See All in Technology
Claude Teamプランの コスト最適化を考える
rfdnxbro
0
750
紙 to デジタル
ichien178
0
220
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
130
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
21
8k
MCPを待つな、パスキーを拡げよう(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
320
Digital Credentials API × OpenID4VP ブラウザ完結型本人確認の実装知見(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
300
AI時代のデータ基盤を考える問い
pacocat
0
700
コミュニティから始まった農業IoTとの7年間 ——人との関わりが教えてくれたこと
peacemaker07
0
120
GopherCon @シアトル に行ってきました
logica0419
0
310
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
190
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
490
For a Future-Friendly Web
brad_frost
183
10k
Exploring anti-patterns in Rails
aemeredith
3
470
Building Adaptive Systems
keathley
44
3.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
360
Marketing to machines
jonoalderson
1
5.7k
Ethics towards AI in product and experience design
skipperchong
2
350
Evolving SEO for Evolving Search Engines
ryanjones
0
260
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Amusing Abliteration
ianozsvald
1
260
Building Applications with DynamoDB
mza
96
7.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
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