NDS36 Kotlin Cute

Post on 31-May-2015

2.015 views 6 download

description

http://nagaoka.techtalk.jp/no36

Transcript of NDS36 Kotlin Cute

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アプリにもじわじわと導入していきたい気持ちある