お首が長いのよお首が長いのよ

チラシの裏よりお届けするソフトウェアエンジニアとして成長したい人のためのブログ

2019-01-22

「集まれ!Kotlin好き!Kotlin愛好会 vol7」に参加し、登壇してきました

KotlinでAndroidアプリ開発を初めて大体1ヶ月ぐらい経ち、 少しKotlinのことも深く知りたいと思ったので勉強会に飛び込んできました。

今年の目標通り、登壇回数を増やす為に談義枠で参加し、登壇してきました。

Kotlinの事についてなんでも自由にトークする会です。 基本は平日に開催しているようですが、3ヶ月に1会ぐらいは もくもく会+談義という形だそうです。 ちなみに、来月、もくもく会と談義やるらしい。

質問はいつでもOK 談義の中でアピールしたいプロダクトがあれば、 スター・ストック大歓迎だぜ!ってアピールするのもあり。 とにかくお酒を飲みながらゆったりKotlinに浸かれる場。

談義

談義: Kotlin serializationの色々な使い方 by たるさん

(え、OS何使ってるんだろう?) 完全リモートワーク勤務の人らしい

Kotlin Serialization 3つのフォーマットを使える。(身近な所だとJSON? また、yamlとかもアドオンで追加できる

リフレクションを使用しないので、json parserとかと比べて速度が早い

使い方はbuild.gradledependenciesに書くだけ。

  • ていうか値に変数使えるのかこれ

@serializable(@から始まるのはアノテーション) か もしくはoptionalをつけてあげると動く。

拡張変数がついているのでアノテーションつけなくてもいける

便利

  • unquoted ダブルクォテーションを外す。 JSONの二重引用符を外すのに便利!

気をつける

Nullになる可能性があるものはOptionalをつけましょう

その他

SerialInfo 謎なアノテーションらしいw アノテーションを自作することができるっぽい? 玄人向け?

談義: KotlinTest with Spring Boot by NaotoTakehataさん

所見:すげえ!SoftwareDesignで短期連載出してる人が出てきた!

Takehataさんが実業務のサーバサイドで使っている 主要技術は6種類も! そのうちKotlinTestについて話すよ

KotlinTestはAndroidアプリ開発でも使える

使い方は、gradleに一行かけば使える。

継承するクラスを変えると違う構文で書く事が出来る。 3種類のクラスが存在する。 StringSpec シンプルで割と自由にかける。 基本的なSpecらしく、初心者の私はここから着手するのがよさそうだ。

ちなみにSpecによって完成度や思想も全然違う

データ駆動テスト

  • forall 設定したレコード分テストが実行される 一つのテストコードに対して複数のデータのテストケースを実行できる とても便利そう。

  • focus 名前の戦闘にf:をつけたコードのみ実行される

  • Bang !をつけると実行されない

Spling

KotlinもSpling対応したけど gradleに依存関係追加してあげる必要がある パッケージとクラスの名前が違うだけで動かない点に注意。 まだまだ日本語の情報が少ないので、もっと活発化したい。

談義: Kotlin歴0ヶ月がRecyclerViewに挑戦しました! by 首無しキリンさん

私です。エモい内容にしかならなかったな・・・。 唯一会場ウケする出だしで柔らかい雰囲気を作り出せたのはよかった。

談義: Paging Libraryの基本について理解してみた by ichi-katoさん

**[Paging Libraryの基本的な使い方について](//www.slideshare.net/ichirokato5/paging-library-128667289 "Paging Libraryの基本的な使い方について")**from **[ichirokato5](https://www.slideshare.net/ichirokato5)**

大体APIから100件ほどのデータを取得したとき、 RecyclerViewで表示させていると、ユーザがみてない範囲は無駄になる。 ユーザがスクロールした時に、表示された範囲のみ取得してくるライブラリ。

使い方諸々のレクチャー

談義: Kotlin導入 5つのステップ by D_R_1009さん

Androidアプリエンジニアにmin SDKを投げつけると悲しくなるw

RxJava

RxJavaは必要?  そんなに必要じゃないのがD_R_1009さん個人の答え 強力すぎて本当に必要かどうかがわからなくなる

EnumとKotlin Extention

enum と Kotlin Extentionの相性がいい 要素の追加、削除が多い時に利用しやすい

DataClass

使いたい用途毎にオブジェクトのクラスは違う。 オブジェクトの特徴によって異なるからちゃんと分けて使うの大事 内部で使うオブジェクトはそれ用に作り込むし、外部に面しているオブジェクトは 柔軟な変更を受けやすく作る特徴がある。

通信状態

アプリの現在の状態をユーザに表示させるってすごい辛い。 Kotlin1.3で新しいのが生えたresult は便利

全体での気づき

  • 自分が発表する時にターゲットをちゃんと意識出来てなかったかも? 途中で話題になっていたけど、Androidアプリ開発者よりも サーバサイドKotlinの人が多い会だったらしく、 自分の話した内容って刺さらない度高かったのでは…という気持ちになりました。

  • 初心者相手でも、使えるシーンをイメージさせてあげる 知らないライブラリの話を聞いていて、まだ理解が追いつかない点が とても多かったけど、「こんなシーンで使うライブラリなんだ」というのは よく分かる話が出来る人は強いなって感じました。

Todo

今日の話にあったSerializerやKotlin Testは 今作っているアプリでも実装できそうなので試してみよう!

感想

懇親会で印象に残ったのは、 「Javaメインで使ってるけど、現場で飽きた空気が出てるから Kotlin推していきたい」という方が何人か見受けられました。

まだまだ若い言語なのてアーキテクチャ設計に裁量がある人が 実際のコードに落とし込むまでの苦労はきっとあるんだろうなと思いました。

一方で、まだまだ情報収集ってスタンスの人もいましたし、 そこから一歩出てKotlin人口増やす事ができれば 実績も増えて、日本での利用実績も増えるのかなってエモいこと考えました。

Java、Node、PHP、Pythonと触ってきましたが、 書いてて面白いなって思うのはKotlinとNodeが群を抜いています! Kotlin触ったおかげでNode率がかなり低くなりました。

触っててとても楽しい言語なので、自分も初心者のハードル下げられるように 勉強会を主催したい! いろいろと頭を整理している段階なので、力を貸してくれる方、お待ちしています。

/以上

よかったらシェアしてください!