
ããŒãžã§ã³1.0ã®ãªãªãŒã¹ãããããæ°å¹Žãçµéãããã®èšèªã¯å€ãã®å€§äŒæ¥ãéçºè
ã«æ¡çšãããŸããã èšèªã®äœæè
ããã¹ã®æåã«èšå®ããç®æšãéæããããšãã§ãããšããäºå®ã«æè¬ããŸã-Javaãã䟿å©ã§å®å
šã§ããããScalaããè€éã§ã¯ãªãããŒã«ãéçºããããã
AndroidéçºéšéGeekUniversityã®ããã°ã©ã ã§ãæè¿KotlinãåŠç¿ããããã®ã³ãŒã¹ãè¿œå ããŸããã ä»æ¥ã¯ããã®æ©èœãšããã®èšèªãå°æ¥ã®Androidã¢ããªã±ãŒã·ã§ã³éçºã®æ±ã®1ã€ãšèŠãªãããçç±ã«ã€ããŠèª¬æããããšããå§ãããŸãã ã¡ãªã¿ã«ã3æ14æ¥ã«ãŠã§ãããŒã
Androidéçºã«ãããKotlinã®å±æãšå¯èœæ§ ããéå¬ããŸããããããã¯ã«èå³ãããã°ãããããã§ãã¯ããŠãã ããã ãããŸã§ã®éãKotlinã®å¯èœæ§ãšå±æã«å¯ŸåŠããŸãããã
ãããã£ãŠãèšèªèªäœã¯ãåå¿è
ããã°ã©ããŒãšçµéšã®ããéçºè
ã®äž¡æ¹ã«ãšã£ãŠäŸ¿å©ãªããŒã«ã§ãã éåžžã«ç°¡æœã§ãã³ã³ãã¯ãã§ç解ããããã§ãïŒã»ãšãã©ã®å Žå-çŽæçã§ãã£ãŠãïŒã æéãçµã€ã«ã€ããŠãèšèªã¯æ¹åãããŸãã
ææ°ããŒãžã§ã³ã¯1.3ã§ãã³ã«ãŒãã³ããµããŒãããŠããããããã³ããããã³ã°éåæã³ãŒããåé¡ãªãèªã¿æžãã§ããŸãã ã¹ã±ãŒã©ããªãã£ãå©çšå¯èœã«ãªããKotlin / Nativeã®ããŒã¿çãç»å ŽããŸãããããã«ãããKotlinã³ãŒããçŽæ¥ãã·ã³ã«ã³ã³ãã€ã«ã§ããŸãã ããã«ãããããšãã°ãã¯ãã¹ãã©ãããã©ãŒã ã§ããžãã¹ããžãã¯ãèšè¿°ã§ããŸãã
Kotlinã¯ãäžèšã®ãã¹ãŠã®ãããã§ããŸã第äžã«ãä»æ¥ãããé¢é£æ§ãé«ããªã£ãŠããŸãã 第äºã«ã2017幎ã«GoogleãKotlinãã家æã®äžã«ãé£ããŠè¡ããAndroidã¢ããªã±ãŒã·ã§ã³ãéçºããããã®å
¬çšèªãšããŠèªããããã§ãã GoogleãKotlinãèªèããåŸãå
ã
Javaã§æžãããå€ãã®ã¢ããªã±ãŒã·ã§ã³ã¯ãã¡ãããJavaã§æžãããå€ãã®ã¢ããªã±ãŒã·ã§ã³ãKotlinã§æžãçŽãããŸããã
å€ãã®éçºè
ãKotlinã«Androidéçºã®æªæ¥ããããšèããã®ã¯ãªãã§ããïŒ
ç°¡æœã
ããã¯ãéçºè
ãã§ããã ãæ©ãKotlinã«åãæ¿ããããšãä¿é²ããèŠå ã®1ã€ã§ãã åãJavaã¯ããã®æ±çšæ§ã«ããããããããã®èšèªã«æ¯ã¹ãŠéåžžã«åé·ã«èŠããŸãã ãŸããæžãå¿
èŠãå°ãªãã»ã©ãééããç¯ãå¯èœæ§ã¯äœããªããŸãã ãŸããé床ã®åäžãæå³ããŸãã ãã¡ãããäŸåé¢ä¿ã¯åžžã«çŽæ¥çãªãã®ã§ã¯ãªããä»ã®èŠå ããããŸãããå€ãã®å ŽåãKotlinã§ã®åãã¿ã¹ã¯ã¯Javaãããéã解決ãããŸãã
ãªãŒãã³ãœãŒã¹
ã¯ãã2012幎以éãèšèªã¯å
¬éãããŠããŸãã ããã¯ãèšèªã®æ¹åãæ¯æŽããéçºè
ã®åºç¯ãªã³ãã¥ããã£ãæå³ããŸãã ã³ãã¥ããã£ã¯ã³ããªã³ã®åŸæ¥å¡ãšã€ãªãããããããã£ãŒãããã¯ã¯éåžžã«ä¿¡é Œã§ããŸãã ããã¯äž»ã«ã
Kotlin SlackããŒã ã®æ¯æŽã«ãããã®ã§ãã Kotlinã®ä»£è¡šè
ã¯ããµãŒãããŒãã£ã®éçºè
ã®æèŠã«è³ãåŸããèšèªãæ¹åã§ããå Žåã¯ããã°ãã°ææ¡ãå®æœããŸãã
ã³ããªã³ã¯é·ãéãçããã
æ°ããããã°ã©ãã³ã°èšèªã«åºæã®åé¡ã®ã»ãšãã©ãä¿®æ£ãããŠãããšããæå³ã§ã çŸåšã§ã¯ããã¹ãŠã®ã«ãŒã«ã«åŸã£ãŠèšè¿°ããããã³ã³ãã€ã©ãŸãã¯ã¢ããªã±ãŒã·ã§ã³èªäœã®å¥åŠãªåäœãšãã圢ã§ãã£ãããæåŸ
ã§ããªãä¿¡é Œæ§ã®é«ãããŒã«ã§ãã ããã«ãKotlinã¯åªããIDEãµããŒããåããŠããŸãã åè«ãããªããæ¬åœã«çŽ æŽãããã IDEãã©ã°ã€ã³ã¯åé¡ãªãæ©èœããJavaåºæã®äŸ¿å©ãªæ©èœãããã€ãè¿œå ãããŸãã
åŸè
ã®å ŽåãKottlinã«ä»å±ã®IntelliJã䜿çšããããšããå§ãããŸãã ã¡ãªã¿ã«ãIntelliJã¯ãã§ã«Habrã§è³è³ãããŠããŸãããããã¯äž»ã«ãéçºè
ãéåžžã«æèœã«äœæã«è¿ã¥ããããã§ãã ããšãã°ãIntelliJã¯ãJavaã³ãŒããKotlinãã¡ã€ã«ã«æ¿å
¥ããããããKotlinã«ãããŒããã£ã¹ããããã©ããããç解ãããŸãã
å
šäœãšããŠãKotlinã¯éåžžã«ä¿¡é Œæ§ã®é«ãããã°ã©ãã³ã°èšèªã§ãããå€ãã®æ©èœãåããŠããŸãã åæã«ã圌ã¯åžžã«æ¹åããŠããŸãã

æŽæ°å¯èœæ§ãšéçº
å®ç§ã«ã¯æ¬åœã«å¶éã¯ãããŸããã JetBrainsã¯ãKotlinã®æ©èœãæ¹åããã³æ¡åŒµããéåžžã«è¯ãä»äºãããŠããŸãã å·çæç¹ã®ææ°ããŒãžã§ã³ïŒ1.3.21ïŒã§ã¯ããã«ããã©ãããã©ãŒã ãããžã§ã¯ãã«é¢é£ãããã®ãå«ããGradleã®ãã©ã°ã€ã³ã«å€ãã®æ¹åãå ããããŸããã
ã¡ãªã¿ã«ãKotlinã¯ä»¥åã®ããŒãžã§ã³ã®Android APIã«å¯ŸããŠãæ°ããããŒãžã§ã³ã®Javaãšåæ§ã®æ©èœãæäŸããŸãã åžæãã-ktor Webãã¬ãŒã ã¯ãŒã¯ãã¢ã«ãã¡ããåºãŠå€§ããªã³ãã¥ããã£ã«æé·ããKotlinãfullstackããŒã«ã«ããã«è¿ã¥ãããããã®ã«ãšæããŸãã
ãã«ã»ãã¥ãªãã£
ããã¯ä»¥åã®ãã¹ãŠã®ãã®ãããæè¡çãªãã€ã³ãã§ãããèšããŸã§ããããŸããã äºå®ãJavaèªäœã¯ãStringåã®å€æ°ã«nullã§ã¯ãªãæååãå«ãŸããŠããããšãä¿èšŒã§ããªããšããããšã§ãã ã¯ããéçºè
ã¯é·ãéé©å¿ããŠãããããã¯å€§éšåã¯åé¡ã§ã¯ãããŸããããéçåä»ãã«ãã£ãŠæäŸãããã»ãã¥ãªãã£ã¯ãããæžãããŸãã ãã®çµæãJavaéçºè
ã¯Null Pointer Exceptionsã«ã€ããŠæºåããå¿
èŠããããŸãã
Kotlinã«ã¯ãã®ãããªåé¡ã¯ãããŸãããããã§ã¯ãã¿ã€ãã¯éãã«ïŒãããã®ã¿ã€ãã®å€ãnullã«ããããšã¯ã§ããŸããïŒãšnullå¯èœïŒnullã«ããããšãã§ããŸãïŒã«åããããŸãã
Kotlinã«æžãã®ã¯ç°¡åã§ã
ãã¹ãŠãå¹³çã§ãããããKotlinã§æžãã®ã¯JavaãScalaã§æžããããç°¡åã§ãã Kotlin Androidã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªã©ã€ãã©ãªã¯å°ãããéçºè
ã®ç掻ãè€éã«ããããšã¯ãããŸããã
ããã«ãKotlinãšAndroid Studioã¯ãéçºããã»ã¹ãé«éåããçŽ æŽãããçµã¿åããã§ãã ãããžã§ã¯ãã®æ§ç¯ã«ã¯æ°åããããããŸããããã·ã¹ãã ã¯ãæ¬ èœããŠããã³ã³ããŒãã³ããåã€ã³ã¹ããŒã«ããå¿
èŠããããšããèŠåãåºãããšããããŸãã
ãã€ã§ããã³ãŒããããŒã¿ããŒã¹ãã³ãã³ãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ãããã³ãã®ä»ã®å Žæã§æ€çŽ¢ã§ããŸãã å€ãã®å Žåãããã¯éåžžã«äŸ¿å©ã§ãã ããšãã°ãããçš®ã®IDEã³ãã³ããå¿ããå Žåã ãããã°ãåé¡ãªãå®è¡ãããŸãã
Kotlinã¯ç°¡åã«ç¿åŸã§ããŸã
ããã¯è«ççãªèšèªã§ãããåŠã¶ã®ã¯æ¥œããããšã§ãã ããã«ãèšè¿°ãããã³ãŒãã¯ãã¢ããªã±ãŒã·ã§ã³ã®äœæè
ã ãã§ãªããKotlinã«ç²ŸéããŠããªããµãŒãããŒãã£ã®ããã°ã©ããŒã§ãèªã¿ãããã§ãã
ããã¯ãã¹ãŠãKotlinã®éçºè
ã§ããJetBrains瀟ãå
ã
ããã®èšèªãJavaã«ä»£ãããã®ãšããŠèããŠãããããã§å®çŸããŸããã Kotlinã䜿çšãããšãããã°ã©ããŒã¯ããŸããŸãªæ¹æ³ã§åé¡ã解決ã§ããããããã¬ãŒãã³ã°ã ãã§ãªãäœæ¥ãé¢çœããªããŸãã
éçºè
ã«ãšã£ãŠãäžçæ倧ã®äŒæ¥ãåŸã
ã«Kotlinãšååãå§ããŠããããšãéèŠã§ãã ãšãããããããã¯PreziãBasecampãAmazon Web ServicesãPinterestãCourseraãNetflixãUberããã³ä»ã®å€ãã®äŒæ¥ã§ãã ã€ãŸããKotlinãç¥ã£ãŠããããã°ã©ããŒã¯ãåªããè·å Žãšã圌ãåæ¥ãã没é ã§ããèå³æ·±ãã¿ã¹ã¯ãæåŸ
ã§ããŸãã ãŸããKotlinã䜿çšããäŒæ¥ã®æ°ãåŸã
ã«å¢ããŠãããããKotlinã¹ãã·ã£ãªã¹ãã®éèŠãé«ãŸã£ãŠããŸãã
äžè¬ã«ãKotlinã¯éçºè
ã«ãšã£ãŠäœ¿ããããèšèªã§ãããéåžžã«å¹
åºãã¿ã¹ã¯ãå®è¡ã§ããŸãã ã³ãã¥ããã£ã®æé·çãšãã°ãŒã°ã«èªèº«ãããã¥ã¡ã³ãã®ãµã³ãã«ãåŸã
ã«Kotlinã«ç¿»èš³ããŠãããšããäºå®ãèæ
®ãããšãAndroidã®éçºã®èŠ³ç¹ããèšèªã®èŠéãã«ã€ããŠã¯ãŸã£ããçãã®äœå°ã¯ãããŸããã 圌ã¯ãŸããä»ã®éçºåéã«ãå±æãæã£ãŠããŸãã
ãã®èšäºã¯ãKotlinã³ãŒã¹ã®æåž«ã§ããStanislav Khizhnyakãšå
±åã§äœæãããŸããã