「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がとても遅いようです、、、 自分はiOSとAndroid両方書くのでこれから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の勉強会に積極的に参加しようと思います。