Upload
yukiya-nakagawa
View
2.015
Download
6
Embed Size (px)
DESCRIPTION
http://nagaoka.techtalk.jp/no36
Citation preview
Kotlin可愛いよKotlin2014.3.15 長岡IT開発者勉強会36 @Nkzn
自己紹介
@Nkzn
今期はキルラキルくらいしかアニメ見てない
ジョジョ3部アニメはよ
What is Kotlin?Kotlin is KAWAII!!!!!!!!!
ラブラ○ブの あの子では ありません。
旧ソ連海軍の コトリン型駆逐艦とも
関係無いです by公式
http://en.wikipedia.org/wiki/Kotlin_class_destroyer
Kotlin Language
2011年登場
JetBrains社がJavaをもっと使いやすくするために生み出した、産業利用向けの汎用言語
最新バージョンはM6.2(まだ1.0になっていない)
強い静的型付け(Javaと一緒)
JVM向けのバイトコードを生成できる
何故かJavaScriptへコンパイルすることもできるよ
そのため、AltJSの一種としても数えられるよ
Java, Scala, Groovyのいいとこ取り言語
What “Kotlin”?
R&D拠点の一つ、サンクトペテルブルクの近くにある「コトリン島」から命名
Kotlinはフィンランド語でヤカンを表す
コーヒーカップがロゴマークのJava(コーヒーの名産地・ジャワ島に由来)と色々関連付けた形になっている
そんなことはどうでもいいが、日本語では
「ことりん」
と書くと大変かわいい(重要)
JetBrains?
2000年創業
チェコのプラハに本社を置く企業
露サンクトペテルブルク、独ミュンヘン、米マサチューセッツ州フラミンガムにR&D拠点を置く
この名前聞いたことある人
Intellij IDEA
PhpStorm
PyCharm
RubyMine
WebStorm
AppCode
全てJetBrains製です
Kotlin Overview
Hardware
Operating System (Windows, OS X, Linux, others)
Java Virtual Machine(JVM)
Kotlin Code (.kt)
Byte Code (.class)
compiler (kotlinc-jvm)
見た目の特徴
名前空間(package)
クラスベース
後置の型宣言
型推論
セミコロン不要
型付きのコンテナ(Generics)
valによる定数宣言
ラムダ記法による関数の宣言
Kotlin版とJava版
初期値ぶち込み用コンストラクタ書かなくていいのたいへん楽
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。
ScalaとかGroovyの真似して作っただけあって、ところどころそのまんまの構文があるみたいです。
Kotlin Showcaseいろいろあるでよ
1行で書けるクラス
Null-safety
これがnullだったらどうするの?
Javaの永遠の宿敵、NullPointerException
非Null型なので 絶対にnullは入ってきません
Null-safety
Null安全という仕組みがある
型の後ろに「?」を付けるとNull許容型、付けていないものは非Null型となる。
Hoge型の変数は絶対にnullを代入できない
Hoge?型の変数はnullを代入できる
Hoge型の変数にHoge?型の値は代入できない
Hoge?型の変数にHoge型の値を代入できる
安全呼び出し:Hoge?を返すメソッド呼び出しの後ろに「?」を付ける
?を付けたメソッドからnullが返ってきた場合、メソッドチェーンの途中でも実行を止めて、nullを式の結果として返す。
Null-safetyこれだけだめ。
代入するとき
呼び出すとき
second()がnullの場合、メソッドチェーンの実行を
そこで止めて、即座にnullを返します
Javaとの相互利用
Person.kt
Main.java
なんか生えてる
null安全にしておいたほうが無難
Android meets Kotlin
KotlinはJetBrains製の言語
JetBrains製のIDEから良い感じに使えるようにできてる!!!!
Intellij IDEA
Android Studio
まとめ
Scalaとかよりも既存のJavaコードとの互換性のほうに気を使った感じの設計になってるっぽい
世界有数のIDEメーカーがドッグフーディングしながら作ってくれてる言語なので、信頼していいと思う
モジュール単位くらいでアグリノートのAndroidアプリにもじわじわと導入していきたい気持ちある