24
Kotlin 可愛いよ Kotlin 2014.3.15 長岡 IT 開発者勉強会 36 @Nkzn

NDS36 Kotlin Cute

Embed Size (px)

DESCRIPTION

http://nagaoka.techtalk.jp/no36

Citation preview

Page 1: NDS36 Kotlin Cute

Kotlin可愛いよKotlin2014.3.15 長岡IT開発者勉強会36 @Nkzn

Page 2: NDS36 Kotlin Cute

自己紹介

@Nkzn

今期はキルラキルくらいしかアニメ見てない

ジョジョ3部アニメはよ

Page 3: NDS36 Kotlin Cute

What is Kotlin?Kotlin is KAWAII!!!!!!!!!

Page 4: NDS36 Kotlin Cute

ラブラ○ブの あの子では ありません。

Page 5: NDS36 Kotlin Cute

旧ソ連海軍の コトリン型駆逐艦とも

関係無いです by公式

http://en.wikipedia.org/wiki/Kotlin_class_destroyer

Page 6: NDS36 Kotlin Cute

Kotlin Language

2011年登場

JetBrains社がJavaをもっと使いやすくするために生み出した、産業利用向けの汎用言語

最新バージョンはM6.2(まだ1.0になっていない)

強い静的型付け(Javaと一緒)

JVM向けのバイトコードを生成できる

何故かJavaScriptへコンパイルすることもできるよ

そのため、AltJSの一種としても数えられるよ

Java, Scala, Groovyのいいとこ取り言語

Page 7: NDS36 Kotlin Cute

What “Kotlin”?

R&D拠点の一つ、サンクトペテルブルクの近くにある「コトリン島」から命名

Kotlinはフィンランド語でヤカンを表す

コーヒーカップがロゴマークのJava(コーヒーの名産地・ジャワ島に由来)と色々関連付けた形になっている

Page 8: NDS36 Kotlin Cute
Page 9: NDS36 Kotlin Cute

そんなことはどうでもいいが、日本語では

「ことりん」

と書くと大変かわいい(重要)

Page 10: NDS36 Kotlin Cute

JetBrains?

2000年創業

チェコのプラハに本社を置く企業

露サンクトペテルブルク、独ミュンヘン、米マサチューセッツ州フラミンガムにR&D拠点を置く

Page 11: NDS36 Kotlin Cute

この名前聞いたことある人

Intellij IDEA

PhpStorm

PyCharm

RubyMine

WebStorm

AppCode

全てJetBrains製です

Page 12: NDS36 Kotlin Cute

Kotlin Overview

Hardware

Operating System (Windows, OS X, Linux, others)

Java Virtual Machine(JVM)

Kotlin Code (.kt)

Byte Code (.class)

compiler (kotlinc-jvm)

Page 13: NDS36 Kotlin Cute

見た目の特徴

名前空間(package)

クラスベース

後置の型宣言

型推論

セミコロン不要

型付きのコンテナ(Generics)

valによる定数宣言

ラムダ記法による関数の宣言

Page 14: NDS36 Kotlin Cute

Kotlin版とJava版

Page 15: NDS36 Kotlin Cute

初期値ぶち込み用コンストラクタ書かなくていいのたいへん楽

getter/setter書かなくていいのたいへん楽

Javaだとgetter/setterはprivateなフィールドの数だけ肥大化していく

メソッド本体(3行)+javadocコメント(Eclipseの自動生成で4行)

+空行(1行) × 2(getter+setter) = 8

フィールド数×8行が使われるので、O/Rマッパーで15カラムの

テーブルを読み込むときに用意するクラスの場合、120行が

getter/setterに費やされます。JavaマジF○ck。

Page 16: NDS36 Kotlin Cute

ScalaとかGroovyの真似して作っただけあって、ところどころそのまんまの構文があるみたいです。

Page 17: NDS36 Kotlin Cute

Kotlin Showcaseいろいろあるでよ

Page 18: NDS36 Kotlin Cute

1行で書けるクラス

Page 19: NDS36 Kotlin Cute

Null-safety

これがnullだったらどうするの?

Javaの永遠の宿敵、NullPointerException

非Null型なので 絶対にnullは入ってきません

Page 20: NDS36 Kotlin Cute

Null-safety

Null安全という仕組みがある

型の後ろに「?」を付けるとNull許容型、付けていないものは非Null型となる。

Hoge型の変数は絶対にnullを代入できない

Hoge?型の変数はnullを代入できる

Hoge型の変数にHoge?型の値は代入できない

Hoge?型の変数にHoge型の値を代入できる

安全呼び出し:Hoge?を返すメソッド呼び出しの後ろに「?」を付ける

?を付けたメソッドからnullが返ってきた場合、メソッドチェーンの途中でも実行を止めて、nullを式の結果として返す。

Page 21: NDS36 Kotlin Cute

Null-safetyこれだけだめ。

代入するとき

呼び出すとき

second()がnullの場合、メソッドチェーンの実行を

そこで止めて、即座にnullを返します

Page 22: NDS36 Kotlin Cute

Javaとの相互利用

Person.kt

Main.java

なんか生えてる

null安全にしておいたほうが無難

Page 23: NDS36 Kotlin Cute

Android meets Kotlin

KotlinはJetBrains製の言語

JetBrains製のIDEから良い感じに使えるようにできてる!!!!

Intellij IDEA

Android Studio

Page 24: NDS36 Kotlin Cute

まとめ

Scalaとかよりも既存のJavaコードとの互換性のほうに気を使った感じの設計になってるっぽい

世界有数のIDEメーカーがドッグフーディングしながら作ってくれてる言語なので、信頼していいと思う

モジュール単位くらいでアグリノートのAndroidアプリにもじわじわと導入していきたい気持ちある