「kotlin & Android Studio3.0」に参加してきました!

参加してきました。

https://japan-android-group.connpass.com/event/61779/

発表テーマで個人的に気になったとこを書いていきます。

広く浅く語るkolinの魅力

Extension

kotlinでは既存のクラスを変更せずにメソッドや、プロパティを追加するExtensionという機能があります。

package com.mrstar.android_with_kotlin
// 略
import com.mrstar.extensions.findById // <- 注目

public class MainActivity() : FragmentActivity() {
    protected override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val imageView: ImageView = findById (R.id.image_view) // <- 注目
        // 略
    }
}

Qiitaで同じことをまとめていたのでそのまま転用します。

詳しくは下記をごらんください。 http://qiita.com/RyotaMurohoshi/items/4b958af1d23da6d91a61

これは個人的に知らなかったです。 Javaでは書けない機能で便利だなあと思いました。

kotlin界隈の未来

「kotlinに対する過度な期待から導入を試みる企業が増えるかもしれないが、Javaとの互換が聞かなかったりして失敗することもあるかもしれない」

とのことおっしゃっていました。

確かに現在(2017/07/24)はGoogleがkotlinを発表し、世の中kotlinブームが巻き起こっていますが結局の新しいコードの書き方に対応できず読みづらいコードになる可能性もあります。

ですが、

「ブームから、定番になっていくと思う」

ともおっしゃっていました。

これからJavaがkotlinに置き代わり、基幹システムにも採用されたりする定番の言語になる日もそう遠くないかも???

Android Studio 3.0 と kotlinについて

Android Studio 3.0 から繋いでる端末内部のデータがみれるようになる

これは正直驚きました、、、、 SharedPreferencesに保存されているデータをれるようになるのはデバックしやすいな〜と思いました。

SQLiteで保存したデータも覗くことができるのですかね〜

kotlinのit文について

newArticle.setOnClickListener { it -> print("kotlin") }
        

暗黙すぎるので分からなくなる可能性がありそうですが、慣れればいい感じですね

kotlinのコンパイルについて

kotlinのコンパイルはそれなりにはやいみたいです。 そもそもSwiftがとても遅いようです、、、 自分はiOSAndroid両方書くのでこれからkotlin導入したらコンパイルはええーーーってなるのですかね?

kotlinの良くないところ

kotlinのよくないところも紹介されていました - 暗黙が多すぎること - Javaは型を書くことが必須なので型情報があるので便利

プラットホーム型について ~Kotlinだって間違えるとnullでハマるよ!~

基本的には Javaの変数や、メソッドをkotlinから呼ぶとNullPointerExceptionになる可能性があるよ!! とのことでした。

public String javaMethod(){
    if(isValid()){
          return //なんか返す
      }else{
          return null;
     }
}
            

上記のメソッドをkotlinで読んだ時

var javaClass = JavaClass()

//普通だったら「?」をつけなければいけない箇所だが、つけなくてもコンパイルエラーにならない
var javaMethod = javaClass.javaMethod
            

FRESH! Kotlin Style Guideline

社内でkotlinを使う際のコード規約などの紹介でした。

個人的に印象に残ったのは

!!は使わない

Swift書いている時に!でアンラップしたりとかしていしまっていてこれももうやらないようにしよう、、、って思いました。

総括

kotlinについて少し理解が深まったきがします。 これからもkotlinの勉強会に積極的に参加しようと思います。