Event Top Page

Kotlin Fest 2019 セッション一覧 /
List of sessions

Time Table

Hall A

Hall B

Hall C

Time

5F大ホールA /
5F Hall A

5F大ホールB /
5F Hall B

402N

10:00-11:00

受付開始

11:00-12:00

オープニング・セッション / Opening Session

長澤太郎

Svetlana Isakova

12:00-13:30

休憩 / Rest time(90min)

※ランチの提供はありません。 / No lunch is offered

13:30-14:15

Kotlin コルーチンを 理解しよう 2019

八木俊広

Server-side Kotlin by Ktor

清水 顕

Kotlinの型実践入門

佐藤 隼

14:15-14:30

休憩 / Rest time(15min)

14:30-15:15

[招待講演]
今からはじめる Android Kotlin

あんざいゆき

Coroutinesから紐解くKtorの仕組み

小谷野 雄史

改めて学ぶContracts

富田健二

15:15-15:30

休憩 / Rest time(15min)

15:30-16:15

Kotlin Multiplatform Project入門

荒谷光

[EN]

Code Generation in Kotlin with Annotation and KotlinPoet

Malvin Sutanto

サーバサイドKotlinでGraphQLをやってみよう

磯貝佳典

16:15-16:45

休憩 / Rest time(30min)

16:45-17:30

もっと Kotlin × Spring

木原 快

[EN]

Deep Dive into Kotlin DSL

Jumpei Matsuda

フロントエンドもKotlinで書きたい! -WebページをKotlin/JSで作った軌跡-

Subroh Nishikori

17:30-17:45

休憩 / Rest time(15min)

17:45-18:30

Kotlin/Nativeはなぜ動くのか?

荻野陽太

[EN]

Future of Jira Software powered by Kotlin

Martin Varga

公募によるLT大会

18:30-19:00

クロージング / Closing

19:00-21:00

懇親会 / After party

オープニングセッション / Opening Session

What's new in Kotlin?

 EN  JA  Hall A, B 11:45 - 12:00

 Slide

Speaker : Svetlana Isakova

Twitter: @sveta_isakova

45分セッション / 45min sessions

Kotlin コルーチンを 理解しよう 2019

 JA  Hall A 13:30 - 14:15 言語機能

 Slide

Kotlin コルーチンは2017年3月にexperimentalな機能としてKotlin 1.1とともに登場しました。その後2018年10月に正式版の1.0.0がリリースされるまでに、様々な変更がありました。

特に2018年9月に加えられた並行性の構造化に関する変更は、それ以前のコルーチンのコードが利用できなくなるなど、とても影響が大きいものでした。ある時点より以前の情報が誤りになってしまう状況は、学習者にとって混乱のもととなります。

本セッションではKotlinコルーチンの簡単な歴史をおさらいしつつ、コルーチンとはなにか、コルーチンの簡単な利用方法、コルーチンスコープと並行性の構造化がなぜ生まれたのか、アプリケーションでコルーチンを利用する時の考え方、コルーチンのテスト方法などについて解説します。本セッションがKotlin コルーチンの適切な知識へのガイドになれば幸いです。

スピーカー:八木俊広

Ubie, Inc. ソフトウェアエンジニア。

AndroidでKotlinやってましたが最近はSpring BootやKtorでKotlinやってます。

趣味は個人サービス開発と徒歩でソロキャンプ。

Twitter: @sys1yagi

Server-side Kotlin by Ktor

 JA  Hall B 13:30 - 14:15 Server-side Kotlin

 Slide

2018年11月に1.0がリリースされたJetBrains製のWebフレームワーク、Ktor。

Server-side Kotlinの注目度が上がるにつれ、本フレームワークへの注目も高まっています。

本セッションではKtorを国内で初めてプロダクション用途で採用した(と根拠もなく勝手に信じている)スピーカーが、Ktorの機能や使い方の紹介に加えて、Ktorを実際に使う中で感じた良い点・悪い点、ハマりやすいポイント、Spring bootとの比較など、実体験に基づく生の情報をお伝えします。

スピーカー:清水 顕

ステルスで活動するFintechスタートアップ、UPSIDERのLead Software Engineer。

移住したい系エンジニアとして、2022年までに長野への移住をすべく画策中。

Twitter: @kaonash_

Kotlinの型実践入門

 JA  Hall C 13:30 - 14:15 言語機能

 Slide

Kotlinには様々な型に関する便利な機能があります。本セッションでは網羅的にそれらの機能について解説していきます。

本セッションでは、大きく以下のことを話す予定です。


fun
 sample(): Nothing {

    while (true) {

        println("test")

    }

}

Kotlinの型について、一緒に詳しくなりましょう!

スピーカー:佐藤 隼(さとう しゅん)

Android Developer

Twitter: @stsn_jp

[招待講演] 今からはじめる Android Kotlin

 JA  Hall A 14:30 - 15:15 Android Kotlin

 Slide

この講演は Kotlin で Android 開発をはじめたいと思っている方や、はじめて日が浅いという方を対象に、Android 開発に特化した Kotlin の情報、ツール、知見を紹介します。

Android 開発の知識を持っている方を対象としています。

講演内で Android フレームワークに関する話をしますが、Android フレームワーク自体の詳しい解説はしません。

Kotlin が Android 開発にどう役立つかという話もしますが、Kotlin の利点は Android 開発に限った話ではないため、Kotlin の言語機能としての優れた点の詳しい解説はしません。

Kotlin で Android 開発を行うための first step を最新情報を含めて一通り紹介します。

この講演をきけば、Kotlin で Android 開発したくなるでしょう。

スピーカー:あんざいゆき

株式会社ウフィカ代表取締役社長。Google Developer Expert for Android。

「Y.A.Mの雑記帳」というブログで Android の tips を多数紹介しています。

 「Android Pattern Cookbook」「Master of Fragment」「わかる!ドメイン駆動設計」などの本を執筆しています。

Twitter: @yanzm

Coroutinesから紐解くKtorの仕組み

 JA  Hall B 14:30 - 15:15 Server-side Kotlin

 Slide

JetBrains社によって開発されているKtorはUnopinionated, Asynchronous, Testableを原則とするWebアプリケーションフレームワークです。

サーバーサイドKtorは、一般的なWebアプリケーションにおける主要機能をプラガバブルなFeatureというコンポーネントとしてコアコンポーネントから分離することで、マイクロフレームワークを実現しています。

認証やルーティングなどといった基本的な機能からVelocity TemplatesやWebjars supportといった機能までもがFeatureとして提供されており、

Coroutinesを用いた非同期な計算実行パイプラインを利用することでFeatureをKtorに組み込むことができます。

開発者は、Featureを用いて任意の機能をKtorに導入することで、自身のユースケースに応じた必要最小限の機能からのアプリケーション開発が可能です。

本セッションでは、Ktorの軽量さや柔軟な機能の拡張性がCoroutinesやFeatureを用いてどのように実現されているかを理解することで、より自由なKtorアプリケーション開発ができるようになることを目的として、以下のトピックについて発表します。

スピーカー:小谷野 雄史

Android application engineer, Recruit Lifestyle

Twitter: @bandwagondagon

改めて学ぶContracts

 JA  Hall C 14:30 - 15:15 言語機能

 Slide

2018年にKotlin1.3として様々な新機能が登場しました。新たに追加された機能の中にはCoroutineを筆頭に、Inline class、Unsigned integers、Parameterless mainなどがあり、利用されている機能もたくさんあるのではないでしょうか。様々な機能があった中でコンパイラに対して暗黙的に振る舞いを伝えることができるContractsというユニークな機能の追加もありました。スコープ関数でよく利用するrun、let、with、applyからisNullOrEmpty、isNullOrBlankなどの標準関数にも内部ではContractsが利用されています。

あまり意識はしていないけれど、意外とContractsを利用していると思います。本セッションでは、なぜ生まれたのか、他に実装の代替案はあったのか、基本的な利用方法、そして今後の展開などについて解説します。リリースされて半年以上経過したContractsを改めて学ぶきっかけとなれば幸いです。

スピーカー:富田健二

コネヒトでAndroidエンジニアをやっています。

Twitter: @tommykw

Kotlin Multiplatform Project入門

 JA  Hall A 15:30 - 16:15 Kotlin Multiplatform

 Slide

# 概要

本セッションは、これからKotlin Multiplatform Project(以下mpp)に入門する方向けの発表になります。

これまでもJetBrainsからはmppが提唱されていましたが、Preview版ということもあり本番環境で利用するには不十分なところがいくつかありました。

しかし、Kotlin/Nativeがベータ版になったことにより2019年になって本番プロダクトでのmppが現実味を帯びてきました。

本セッションでは、これからmppを始める人にとって、どのようなメリットがあって、どのようなデメリットがあるのか、どのように始めていくのかをステップバイステップで解説していきます。

# 目次案

1. Kotlin Multiplatform Projectとは

  1.1 Kotlin Multiplatform Projectについて

   - Kotlin/Native, Kotlin/JSの解説含む

   (他セッションの採択状況で解説の量を変更予定)

  1.2 どのような設計が良いのか

2. Kotlin Multiplatform Projectの作り方

  2.1 構成図

  2.2 step by step解説

  - 簡単なKotlin server(ktor), Android, iOS, Webのプロジェクトを作りながら、躓 きやすいポイントを解説

3. まとめ

スピーカー:荒谷光

2015年に新卒でサイバーエージェントに入社後

新規サービスの立ち上げプロジェクトに配属

Kotlin M13の頃からフルKotlinでAndroidアプリを開発

2018年10月頃からKotlin Multiplatform Projectでの新規サービスの開発をしていたが諸事情により無くなってしまった

2019年7月からM3にてAndroidアプリの開発を行っている

Twitter: @_a_akira

Code Generation in Kotlin with Annotation and KotlinPoet

 EN  JA  Hall B 15:30 - 16:15 Features of Kotlin language

 Slide

Kotlin is a highly concise programming language that aims to minimize unnecessary code. However, we sometimes still have to write more than what we'd like. When it comes to Java, annotation processing is widely popular because it allows you to add compile time checks and processing to your project. In addition, it is often paired with code generation tools like JavaPoet to easily write and eliminate boilerplate code.

In this session, I will talk about how we can take this approach and introduce it to your Kotlin project together with KotlinPoet to generate some of this code. I will then present some strategies to test and validate the generated code. Discuss the benefits and limitations of this approach and when the appropriate time to use it is. Finally, I will provide some sample implementation of annotation processing which you can use to increase your productivity.


※ 本セッションは日本語での同時通訳が提供されます

Speaker:Malvin Sutanto

Software Engineer @Wantedly. Always passionate about Android and Kotlin.

Twitter: @MalvinSutanto

サーバサイドKotlinでGraphQLをやってみよう

 JA  Hall C 15:30 - 16:15 Server-side Kotlin

 Slide

GraphQLってJavaScriptやRubyやGoのものと考えていませんか? Everywhereと謳っているKotlin、当然GraphQLを利用してAPIを作ることが出来ます。

このセッションでは、https://github.com/ubie-inc/kotlin-graphql-sample を使い、GraphQLのAPIをKotlinを説明していきたいと思います。

以下の方が聴くことを想定しています。

以下の話をする想定です。

スピーカー:磯貝佳典

様々な企業を経てUbieに入社。国内外のカンファレンス登壇やOSS活動に取り組みつつ、家事育児にも注力。Kotlin3兄弟の次男です。

Twitter: @shiraj_i

もっと Kotlin × Spring

 JA  Hall A 16:45 - 17:30 Server-side Kotlin

 Slide

Spring FrameworkはKotlinを積極的にサポートしており、サーバサイド開発においてKotlin × Springの組み合わせを用いるプロジェクトはどんどん増えています。

本セッションではこれからKotlinでSpringを使用したい人や、もっとKotlinらしくSpringを書きたい人を対象に、以下の項目についてお話します。

スピーカー:木原 快

ヤフー株式会社 ソフトウェアエンジニア。社内でサーバサイドKotlinの導入・推進をしている。

シェアフル株式会社でもサーバサイドKotlinの開発業務に携わっている。

趣味はかわいいTシャツをあつめること。

Twitter: @gumimin_

Deep Dive into Kotlin DSL

 EN  JA  Hall B 16:45 - 17:30 Others

 Slide

この発表では DSL の基礎から Kotlin DSL における拡張表現や開発方法まで踏み込んで発表します。

また Kotlin DSL の実例として

あたりを取り上げて、どのように Kotlin DSL が作用し、Java/Groovy ではなぜ出来ないのかについても触れたいと思います。

Topics (予定)


※ 本セッションは日本語での同時通訳が提供されます

Speaker:Jumpei Matsuda

A software architect of backend/android platforms at DeployGate Inc. One of Kotlin and sake lovers.

Twitter: @red_fat_daruma

フロントエンドもKotlinで書きたい! -WebページをKotlin/JSで作った軌跡-

 JA  Hall C 16:45 - 17:30 Kotlin/JS (Multiplatformを除く)

 Slide

Androidアプリの開発言語として公式に採用されてから早2年、言語としての成長を続けるKotlinは、クロスプラットフォームの領域にも進出しつつあります。KotlinからJavascriptへのトランスパイルの機能を提供するKotlin/JSは、その取り組みの1つです。

Kotlinのモダンな文法、更に型安全な世界でのフロントエンド開発は、多くの技術者に魅力的に映ることでしょう。ですが、正式版リリースから2年たった現在でも、Kotlin/JSに関するまとまった知見は数少ないのが現状です。

このセッションでは発表者がReact.js用UIフレームワーク「Material-UI」のラッパーライブラリをリリース、また自らのポートフォリオサイトをKotlin/JSを用いて制作・公開した経験を踏まえ、「Kotlin/JSの概要」から「Kotlin/JS製Webサービスのリリース」までの一貫した知見を共有します。

最終的に、聴講者がフロントエンド開発における新たな選択肢を得ること、そしてこのセッションが「真のフルスタック言語となることを目指す」Kotlinの次の成長の一助になることを目指します。

# アジェンダ

スピーカー:Subroh Nishikori

1995年生まれ

株式会社BearTail Androidリードエンジニア

Twitter: @subroh_0508

Kotlin/Nativeはなぜ動くのか?

 JA  Hall A 17:45 - 18:30 Kotlin/Native (Multiplatformを除く)

 Slide

Kotlin/NativeはKotlinのコードをネイティブバイナリにコンパイルする技術です。

私はKotlin/Nativeの技術的側面に興味があり、Kotlin/Nativeのソースコードリーディングをしています。

本セッションではKotlin/Nativeのソースコードリーディングをした過程で得られた知見について話します。

トピックス(予定)

参考:

https://youta1119.github.io/post/2018/12/24/about-kotlin-native-stdlib/

スピーカー:荻野陽太

新卒のサーバーサイドエンジニア

Twitter: @youta1119

Future of Jira Software powered by Kotlin

 EN  JA  Hall B 17:45 - 18:30 Server-side Kotlin

 Slide

Atlassian is on a decomposition journey. We split our monoliths in microservices and we build our microservices in Kotlin. Our services are reactive and resilient and working on them is kool.

This is a story of Jira Software services that we built in Kotlin with Spring Boot and Project Reactor, our success in interoperability with Java and how we solved issues when crossing the boundary between the reactive and non-reactive world.

※ 本セッションは日本語での同時通訳が提供されます

Speaker:Martin Varga

Martin works at Atlassian as a Senior Developer, implementing new features within Jira Software and decomposing the Jira monolith. He is a big fan of Kotlin and ramen and has experience presenting at Atlassian User Groups in Australia and Japan.

Twitter: @MartinTeeVarga

5分LT / 5min LTs

 JA  Hall C 17:45 - 18:30

Kotlin Serialization ことはじめ

Android Kotlin

 Slide

最近ではJackson, Moshi, GsonなどたくさんのJSONライブラリが使われていると思います。その中でKotlin1.3以降ではexperimentalではありますがKotlin Serializationが導入されました。Kotlin SerializationはJSONなどのserializeができるほかprotobufや有志によってyamlなどにも対応しています。ここでは今後のメジャーリリースに備えてKotlin Serializationの概要や入門部分、他のライブラリとの差異、Retrofitとの連携などについて解説します。

スピーカー:石井 和馬

今年新卒のエンジニアです。Kotlinが好きです。

Twitter: @slme_not_found

Jetpack Composeことはじめ

Android Kotlin

 Slide

Google I/O 2019で発表されたJetpack Composeに関して、いくつかのコードとUIを照らし合わせながら、どのようにコンポーネントを宣言し、複数のコンポーネントからレイアウトを組み立てるまでの流れについて発表します。

スピーカー:高橋健太

2015年にSIerに営業として新卒入社。営業として従事しながらプライベートでプログラミングスキルを習得し、約1年後にエンジニアへとジョブチェンジ。

約2年間でAndroid/iOS/Webアプリの開発をはじめ、要件定義などの上流工程にも従事した後、2018年より株式会社Gunosyに入社。

現在は「グノシー」のAndroid開発を担当している。

Twitter: @tkhs0604

静的解析ツール detekt で任意の条件で警告させる

Testing

 Slide

静的解析は開発をサポートする強力な仕組みですが、Continuous Integration (CI) において警告を行う条件を変えたい場面もあります。

Kotlin の静的解析ツール detekt は非常にカスタマイズ性が高い作りになっており、警告を行う条件などもハンドリングすることができます。

本発表では detekt のプラグインの仕組みについて解説し、警告条件をハンドリングできるプラグインの作成方法を紹介したいと思います。

スピーカー:前田隼輔

アクアとパソコンが好き。ゲームとアニメとオカルトも好き。

Twitter: @duck8823

Kotlin/JS の仕組み

Kotlin Multiplatform

 Slide

Kotlin/JSを用いたフロントエンド開発に入門します。Server-side Kotlinなどとのドメインオブジェクト共有にも触れます。

スピーカー:小谷優空

Ubie株式会社インターン 筑波大学情報科学類1年

Twitter: @MonchiFC

GraphQLサーバーを作って味わった天国と地獄

Server-side Kotlin

 Slide

アプリエンジニアの喜ぶ顔が見たくてサーバーサイドエンジニアがKotlinでGraphQLサーバーを作って本番環境に導入してみて味わった天国と地獄を共有します。

スピーカー:早坂 涼

株式会社ビデオマーケットのサーバーサイドエンジニア。アプリエンジニアと仲良くなりたくてサーバーサイドKotlinを導入して、すっかりKotlinのトリコになってしまいました。

KotlinTest で始める Property-based Testing

Testing

 Slide

OSSとして開発されているテスト用ライブラリである KotlinTest(https://github.com/kotlintest/kotlintest)は、「テーブル駆動テスト(Table-driven Testing)」や「Property-based Testing」といったテストの記述もサポートしています。

テーブル駆動テストは、ある意味では通常のユニットテストと比べてコードスタイルが変わったものと考えられるため、それほど難しくはありません。しかし、Property-based Testing はテストデータをランダムに生成させてテストするという、通常のユニットテストとは異なる考え方が求められます。

このLTでは KotlinTest の紹介から始め、Property-based Testing の考え方、KotlinTest での記述方法について、5分という短時間で解説したいと思います。

スピーカー:細沼 祐介

DeNAのSWETグループで、iOS / Go のテスト自動化に取り組むエンジニア。

プライベートでは「ペンギン村」という技術コミュニティに所属する。

赤ワインが好きなんだとか。

Twitter: @tobi462

try-catchからrunCatchingへ移行した話

Android Kotlin

 Slide

Javaの時からお世話になってきたtry-catchからKotlin 1.3で追加されたrunCatchingに移行し、エラーハンドリングをしたときのお話です。

スピーカー:安齋祐紀

株式会社ディー・エヌ・エーでAndroidアプリを開発してます。

Twitter: @off2white