どこでもKotlin #3に参加してきました!

m3-engineer.connpass.com

今回はどこことに初参戦してきました! 会場はSpeeeさんのおしゃれなオフィスです。

f:id:sasamihoo:20171025152735j:plain

Kotlin(Deeplearning4j)で機械学習:VGG16モデルで犬猫判断

エムスリー Lukas Prasuhnさん

最初はLukasさんの発表でした! Deeplearning4jを用いて、画像から犬猫の判定をするという実装をKotlinを用いてやってみたというお話でした!

Kotlinでやるメリットとしてはsortmapが使える点・JavaであるとMapperを作って...という面倒なリストの操作が簡単にできるという点です。

そして今回Twitterを使用してProfile画像を判定し、Userごとの犬猫の割合をハッシュタグ付きでつぶやくものを作っており、とても楽しめました! 私はもちろん1位でしたw(猫なので)

special guest

今回special guestとして『Deep Learning』著者の方がいらっしゃっていました! じゃんけんで一人に本がプレゼントされました。羨ましいです...

Kotlin(Deeplearning4j)で機械学習:日本語でもKotlin

エムスリーキャリア 寺田 将規さん

次は寺田さんの発表で、これもDeeplearning4jを使用した機械学習のお話でした! kuromojiを使用して形態素解析を行なっていたとのことで、mecabしか使ったことがなかったので非常に気になりました!

実際のデータでやる際に、やはりデータベースがきれいでないとそもそも学習する部分が難しいというお話もありました。実際のデータで機械学習をしようするとなるとその部分は大変ですよね。

ことりんでAndroid ThingsかIoT系(仮)

FiNC Matthew Vernさん 3人目はMattewさんで、IoT×Kotlinについての発表でした!

まずkotlinのdataクラスで自己紹介を書いているのがいいですね! 家の電気のスイッチが遠いため、何とかしてベットから操作できないかという問題をIoTで解決しようとするものでした。

実装はFirebaseのRealtimeDatabase×architecture component×Android thingsでしたが、ちょっと大変?ということで、2つ目のtryはKtorで! でしたが、KtorはJava 8をdefaultでサポートしているので、Androidとはそのままでは使えず。。。

自分で指定してあげると、使用できるようになりました!

他にはActionsOnGoogleというものがあり、HTTPなどをtriggerとしてgoogle homeにfunctionを追加できるもので実装していました。

最後にデモの動画と、「寝るぞ!」で締めくくられました。

speakerdeck.com

Kotlin x SendGridでメール送信してみた

構造計画研究所 菊田 洋一さん

4人目は菊田さんのお話で、タイトルの通りSendGridでメール送信するというものでした。

kotlinでサポートしているkotlin-mailというものはありましたが、現在imapの機能しかなく... そこでJavaMail(Java EE 8リリース)をkotlinから呼び出せ..ました!

またメールサーバーを立てるのが大変..ということでインフラ周りの構築を簡単にしてくれるSendGridというものがあるそうです! SendGridではSendGrid Java SDKがあるそうなので、それを利用し、Web APIの方はFuelを使用し、良い感じに実装されていました。

サンプルコードもあるということなので後で見てみようと思います。

github.com

Kotlinで型安全なSQLを書こう

Retty 石田 憲幸さん 次は石田さんで、型安全なSQLについてでした!

Kotlinでアプリ用のAPIを書いているそうで、今回はdbからデータを取ってくるときにkotlinの恩恵を受けつつ(型安全で)呼び出したい!というお話でした。 Kotlin標準のパッケージJDBCを使えば柔軟にクエリは書けるが型安全ではない。

JPAやORMを使えばいいのでは?という話がありましたがテーブルが多い(992個?!)・小分けされたテーブル達・indexが謎/ない環境だと難しい... ということでQueryDSLを使用し、きれいにsqlがかけていました。 Expressionに拡張関数を使用することができる・infixでsqlっぽく補完できる点でKotlinで書くと良さそうです!

infix後で調べて見ます..(知らなかった) サンプルコードはこちら!

github.com

運用中のJavaプロジェクトにKotlinを導入した話

サイバーエージェント 木村 正弘さん 最後は木村さんで社内でのKotlin導入のお話でした!

それぞれの言語のメリット・デメリットを洗い出し、勉強会を開き、最終的にKotlinに決まったそうです。 議論だけでなく実習課題などで使ってみるというアプローチがすごいなと思いました。

サンプルコードを見てもKotlinはやはりスッキリ書ける印象がありますね!

導入にあたって決めたこととしては、

  • サブシステムとして独立させない
  • 既存JavaコードをKotlinに置き換えるということはしない
  • Gradleの導入はしない が挙げられます。

テスト書き換えのコストなどを考えると大変ですよね。。

developers.cyberagent.co.jp

懇親会

懇親会はお寿司でした!!!

いろいろな方とお話できてとても楽しかったです。話しかけるのが苦手なので話しかけていただいた方ありがとうございましたっ!

どここと初参戦でしたが、Android開発におけるKotlinの話が多いのかなーと思いきや機械学習・IoT・サーバーサイドなどにも運用されていてとても驚きました。

すてきな会場・ビール&お寿司をご提供くださりありがとうございました! 次回もぜひ参加したいと思っております。

最後に

参加ブログを書くということでもらっちゃいました! たろーさんありがとうございます!!