とりあえずやってみればいいじゃん

とりあえずやってみればいいじゃん

エンジニア関連のことについてつらつら書くブログ

CA.kt #4 (Kotlin Conf報告会)に参加してきました #ca_kt

今年初開催されたKotlin Confに興味があったので参加してきました。

cyberagent.connpass.com

『Kotlin Conf Keynote』 / 森 洋之さん

  • 今年のKotlin Confは一言で言うと「Kotlin/Anywhere」
    • 様々なプラットフォームでKotlinが利用できる
  • サーバサイド:KtorというWebフレームワークが存在
  • ブラウザ:KotlinJSが存在
  • プラットフォーム間のコードシェアについてはcommon moduleという仕組みを使えばできる
  • KotlinでiOSアプリ(ネイティブアプリ)も書ける

『Kotlin Conf Overview』 / 藤原 聖さん

  • 規模感
    • 1200枚のチケットが販売され、売り切れている
    • 44 sessions, 3 tracks
  • GoogleやJetBrainsが著名な開発者を連れてきて質問に答えるブースを出していた
  • Android Kotlin GuidesでKotlinらしいコードが紹介されている
  • セッション
    • 当日までセッション内容が秘密だったものがあり、蓋を開けてみたらそれはKotlin開発者のセッションだった
    • KotlinConfの動画はこちらから
    • Androidってかんじのセッションはほぼなかった
  • kategory.ioにKotlinのライブラリがまとまっている
  • 会場の様子
    • セッションに対して投票することができる(会場に設置されている箱orアプリから)
    • 名札についているQRコードで名刺交換的なことができた
    • 登壇中に手を挙げて質問し始める人がいるほどアットホーム

おまけ

『Spring and Kotlin』 / 長澤 太郎さん

  • サーバサイドKotlinがキテいる
    • Bootiful Kotlinというセッションはライブコーディング形式で良かった
  • Spring Framework 5.0がリリースされた
    • リアクティブなWebフレームワークのSpring WebFluxが入った
    • ラムダでルーティング、Bean登録ができるようになった
  • Exposed
    • KotlinのSQLライブラリ
    • テーブル定義1対多なども書ける

『Kotlin Types』 / 荒谷 光さん

  • 基本的にKotlinからJavaへの変換はできるが、Stringだけは素直に変換できない
  • Unit, Nothing, void
    • Unit:Javaのvoidに相当。意味のない値という意味。
    • Nothing:全てのクラスの子クラス。インスタンスが存在しない->値を返さない時の戻り値として指定するなど。
      • これによって、正常な値(Int型)かexceptionを投げる変数の型をAny(JavaのObjectに相当。全てのクラスの親クラス)ではなくIntにできる
  • Collection
    • KotlinにはListとMutableListがある
    • ListはReadOnlyだがImmutableではない

『Kotlin Puzzlers』 / 仙波 拓さん

  • Puzzlers
    • 短いコードで「なんでこんな動きをするんだろう」と思わせるコード群
    • KotlinのPuzzlers
  • 1問目
    • 正解はa
    • whenに入った時にIntにキャストされるため
  • 2問目
    • 正解はc
    • nameをsetした時にNamedのfieldにsetされているわけではない
  • 3問目
    • 正解はd
    • else ifのifから.letまでが()で囲まれた状態と同じだとして解釈されるから
    • if else続くならwhen使った方がいい

『React app in Kotlin』 / 二階堂 遍さん

  • JUnitからSpekに移行
  • テストケースのメソッド名が長くなることはよくあるが、Spekを使うと構造的に書ける
  • 11月末に2.x系がリリース予定(が、結構厳しそう?)

『Testing Kotlin』 / 廣瀬 幸一郎さん

  • 今はAltJSが100種類くらいある
  • KotlinでReactやるならKotlin-wrappersを見ると良い
  • ReactアプリもKotlinで書ける