どちらでも

Java未経験者のためのKotlin入門

yy_yank yy_yank

正直に言います。KotlinはJavaでの業務開発経験などがあれば、数日で身につくプログラミング言語です。
一方、Javaに全く触れたことがないプログラマにとっては少し学ぶ量が増えるのも事実です。

本セッションでは、Javaを使ったことのないプログラマを想定し、Kotlinを使うために最低限知っておきたいJavaのこと、そしてKotlinの学び方を考えます。

2
どちらでも

ComposeとKotlin Multiplatformを用いたクロスプラットフォーム開発

yt8492 マヤミト

Composeは、もはやAndroidアプリ開発のためだけのものではありません。Compose Multiplatformの登場により、iOSアプリやデスクトップアプリ、WebアプリなどもComposeを用いることでAndroidと共通化して実装することができるようになりました。

このセッションでは、Android, iOS, Desktop, WebをターゲットにしたKotlin Multiplatformのプロジェクトで実際にJetpack Composeを用いてクロスプラットフォーム開発する方法と、将来的にCompose Multiplatformを導入することを見据えたAndroid開発について発表します。

1
ショート(25分)

KotlinでエレガントなDDDの値オブジェクトを作る

secret_key_base tanida kazuki

Kotlinはドメイン駆動開発、その中でも特に値オブジェクトを作る際にも優れた実装が可能です。

本セッションではKotlinでDDDの値オブジェクトを作成する際に遭遇した、公式でも議論されているdata classの問題点と、
それをKotlin独自のvalue classやinvokeなどの機能を組み合わせて実際に解決した経験を元にTipsを共有します。

Kotlinで楽しいDDDライフの一助となれば幸いです!

ショート(25分)

KotlinでE2Eテストを書いてみないか

m_takehara m_takehara

Gaugeというテスト自動化フレームワークをご存知でしょうか?
弊社ではフロントエンドもバックエンドもGaugeを使ってE2Eテストを実装しています。
Gaugeは色々なプログラミング言語を使ってテストを実装でき、Javaも使用可能なので、つまりKotlinも使用可能です。
GaugeでE2Eテストを書くためにどんな環境が必要なのか、どんなコードを書けば良いのか、具体的にご紹介します。

1
ショート(25分)

Kotlin DataframeとKotlin Jupyter Kernelを用いたデータ分析入門

oboenikui oboenikui

近年JetBrains社は、Kotlin Jupyter KernelやDeep Learningライブラリ (KotlinDL) などを発表し、データサイエンス分野向けのサポートを強化してきました。その中で2022年には、Pythonのpandasに相当する、Kotlin Dataframeを発表しました。
本セッションでは、このKotlin Dataframeについて実際の画面表示を交えて解説し、Pythonなどに馴染みの薄い方でもKotlinだけで簡単なデータ処理とその可視化を行えるようになることを目指します。

話すこと

  • Kotlin Dataframeの主要機能紹介とpandasとの比較
  • Kotlin Jupyter Kernelの使用方法
  • Kotlin DataframeのJupyter Notebook上での動作
1
どちらでも

Kotlin/JSとTitaniumで構築するクロスプラットフォームの世界

coffeegyunyu 日向強

Kotlinでクロスプラットフォームを構築するとなると、真っ先にKotlin Multiplatform Mobileが思い浮かぶ人もいるかもしれません。しかし、JavaScriptでネイティブアプリケーションが開発できるTitaniumは2022年9月にもSDKのバージョンアップが今もリリースされています。

このセッションはTitaniumの現状やセットアップ方法などを中心に、Kotlin/JSを用いてどのようにTitaniumでの開発を行うかを検討していくセッションとなります。

ショート(25分)

Kotlinだけで作るFlutterプラグイン

azihsoyn ふそやん

Flutterのネイティブプラグインを作成するにはiOSではSwift, Object-C、AndroidではJavaやKotlinで書くのが通例です。
しかし両方の言語に精通している人は多くはなく、両プラットフォームに対応したプラグインを作成するのはコストがかかります。

1つのコードで両プラットフォームに対応したライブラリが作れればコスト削減に大きく貢献できるはずです。
幸いにもKotlin Multiplatformは、アプリケーションの作成だけでなくライブラリの作成もサポートしています。

今回、Kotlin Multiplatformを使ってKotlinだけでFlutterのネイティブプラグイン作成に挑戦します。

1
どちらでも

KotlinによるIntelliJ Plugin開発で、道具箱に磨きをかけよう!

itohiro73 いとひろ

Kotlinで開発をしている皆さんは、IntelliJ IDEAあるいはAndroid StudioをIDEとして利用している方が多いのではないでしょうか。

これらのIDEのベースとなっているThe IntelliJ Platformは、実はKotlinを用いてPlugin開発をすることができます。なんせIntelliJもKotlinもJetBrains社が開発したものですからね。

普段IDEで開発をしていて、あれができたらいいのに、これができたらもっと便利なのにと思ったこと、ありませんか?

本セッションではKotlinを用いたIntelliJ Plugin開発の基本解説から、ちょっとした開発者体験を向上するためのサンプル実装をいくつか紹介します。

これを機に、みなさんが普段使っている道具箱(IDE)をKotlinを用いて拡張し、開発者体験を向上してみてください!

2
どちらでも

JavaとKotlinのコードをバイトコードレベルで比較して気づいたKoltinの良さ

baseballyama_ Yuichiro Yamashita

Kotlin は better Java と呼ばれることがあります。しかし本当にそうなのか私は気になりました。
2022年の時点で本当にKotlinを選ぶべきなのか。実はJavaで十分なのでは、という疑問がありました。
これを解消するために、KotlinとJavaで同等のコードを記述して、バイトコードの比較をしてみました。

[アジェンダ]

  1. 前提知識
  2. 何をしたのか
    • 定量 : コンパイル速度 / 実行速度 / 実装量
    • 定性 : バイトコードを見て気づいたこと
  3. 具体的な比較結果 (例)
    • Hello World
    • companion object
    • 拡張関数
    • 中置記法
    • ラッパークラス (例 : Integer)
    • インライン関数
    • ラムダ式
    • Coroutine
      .. など
  4. 全体を通して感じたこと
1
ショート(25分)

コード自動生成初学者のためのKSP

RyuNen344 RyuNen344

javaにはannotation processorというものがあります。
kotlin開発者は普段kaptとbuild.gradleに宣言を行うことで機能を使用してきました。

kotlinからannotation processorを使用する際には無駄になる処理が多く、ボトルネックが存在しています。
それらの問題を解決すべく、pure kotlinなsymbol processingを提供するkspが開発されました。

今までは雰囲気でkaptを使用していた方、単純に自動生成処理を作りたい方!kspが発表を機会に自動生成の世界に一緒に飛び込みましょう!

ショート(25分)

Kotlin NativeでiOSアプリのUIはどこまで書けるのか

at_sushi_at Mori Atsushi

Kotlin Multiplatform Mobile(KMM)の登場により、Androidアプリ / iOSアプリの一部をKotlinで記述することができるようになりました。
その際、ロジックのみをKotlinで記述し、UIはAndroid / iOS向けにそれぞれ別で実装することが多いと思います。
とはいえ、iOSアプリのUIをKotlinで構築する方法が全く無いわけではありません。
例えば、iOS向けのUIフレームワークであるUIKitをKotlinから呼び出してUIを構築することができます。
Jetbrainsは、Android向けのUIフレームワークであるJetpack ComposeをiOSにも提供できるよう開発を進めています。
このセッションではKotlin NativeでiOSアプリのUIを構築する方法と、現在の課題について紹介します。

1
ショート(25分)

KEEPから読み解くValue Classの今と未来

at_sushi_at Mori Atsushi

Kotlin 1.5から追加されたValue Classは、特定の型のラッパーを効率的に作成することができ、ドメインモデルを型で厳格に表現したいとき等によく使われます。
現在Value Classは単一のプロパティしか持つことができませんが、複数のプロパティを持つアイディアが存在することは知っていますか?
Kotlinの言語仕様が議論されるKEEPには、Value Classが複数プロパティを保持し、完全な不変性を実現するデザインノートが存在します。
これが実現すると、Kotlinにとって大きな変更になることは間違いないでしょう。
このセッションでは、KEEPやその周辺情報を元にValue Classの今と未来について考えます。

1
ショート(25分)

新規WebアプリケーションでArrow-ktを使った関数型プログラミングを導入してみた話

Dimitrov Chavdar

Kotlinでも関数型プログラミングを実現しやすくするためのライブラリ、Arrow-ktを利用して既存の一部のサービスのリニューアルとなる新規Webアプリケーションを構築することになりました。今回のアプリケーション開発を通じて、Arrow-ktの簡単な紹介と関数型のKotlinの事例の紹介、感じたメリットと課題などを紹介しようと思っています。

ショート(25分)

Javaでも使えるKotlin OSSを目指すためのkotlin.jvmの利用とインターフェース設計

mako_makok 小林 允

私が所属している株式会社ログラスでは、経営管理クラウド「Loglass」をKotlin + Spring Bootで開発しています。
LoglassにはExcel・スプレッドシート出力をする機能が数多く存在するのですが、メンテナンス性に課題があります。
そこで、単一のシートの定義から出力を可能にするライブラリをOSSとして公開することを目標に開発を進めています。
ライブラリはJavaでの利用も想定していますが、ただKotlinで利用しやすいインターフェース設計や実装をすると、いざJavaで見た時に難のあるインターフェースになります。
今回は
・JavaアプリケーションにKotlinを導入することを考えている方
・Kotlinを入れたが、Java利用時のインターフェースに困っている方
を対象に、ライブラリ開発を経て得たkotlin.jvmの利用とインターフェース設計の知見を共有します。

1
ショート(25分)

計算式を型で堅牢にする

duck8823 前田隼輔

我々が提供しているシステムの多くには例えば、単価や個数、割引額など様々な数値が存在しており、それらを組み合わせた計算式が記述されています。
これらの数値をすべて同じ「数値型」としてしまうと、単価に対して割引額を掛けてしまうなどの思わぬバグを生み出してしまうこともあります。

インラインクラス や 演算子オーバーロードを活用することで、
計算式である可読性はそのまま、型で堅牢なプログラムにすることができると考えています。

どちらでも

OpenAPIスキーマ駆動開発による快適な外部連携API開発を実現するための道のり

shenyu_cyan 張沈宇

背景

スキーマ駆動開発が既に多く採用されてきている一方、サーバーサイドKotlinでのノウハウはまだそれ程なく、多くの公開資料はチュートリアルに留まっています。よって、具体的な登り方や実務で受けられる恩恵、そして直面するチャレンジが広く伝わっていないとの実感があります。

概要

弊社はContract-first思想の元OpenAPI Generatorを使った外部向け連携APIの開発を実践しています。我々の応用例をベースに、採用に至った理由や実際の使用感、業務上のユースケースへの対処法をご紹介します。

目次

  • 複数の選択肢からOpenAPIを選んだ理由
  • スキーマ駆動開発の為の守破離
    • 守:OpenAPI Generatorの設定
    • 破:複数API定義の対応やテンプレカスタマイズ実例
    • 離:ジェネレータ自作
  • まとめ
3
どちらでも

専門性の高い領域をいかに開発し、テストするか / ドメインエキスパートとのテストケース共同作成を支える技術

agatan_ Agata Naomichi

株式会社ヘンリーでは、診療報酬制度を取り扱うソフトウェアを開発しています。
ソフトウェア開発者として、開発対象のドメイン知識を獲得する必要があることは改めて言うまでもありませんが、診療報酬制度のような専門性の高い領域においては、ドメインエキスパートと力を合わせることで、より良いシステムをより速くデリバリーできると考えています。
特に、高度に専門的な要件の場合、ドメインエキスパート自身の手によってテストケースが作られることが、開発速度やサービスの信頼性・安定性の向上に大きく寄与します。

このセッションでは、Server-side Kotlin で記述されたロジックを、ドメインエキスパートの知識をもとにいかにテストするかについてお話しします。
また、それを可能にするシステムアーキテクチャや、Kotlin 上でいかにドメインを表現し単体テストするか、についてもご紹介します。

3
ショート(25分)

Kotlin Fest 2019から2022でのKotlinバージョンアップで増えた便利機能100選

ke__kyukyun1828 ke__kyukyun1828

前回のKotlin Festから、早3年の月日が経ちました。

2019年、Kotlin初学者だった方もすっかりKotlinに慣れてきたのではないかと思います。
慣れてくると新しい機能が追加されていること、それを使うことはなかなかできなかったり、気づかないものです。

しかし、Kotlinはこの3年間で多くのバージョンアップをし、多くの機能が追加されてきました。

2019年のKotlinバージョン1.3から現在の1.7に至るまでに追加された便利な機能や変更について話したいと思います。

1
ショート(25分)

KotlinをJavaっぽく書いてしまっていませんか?~kotlin初学者へのすゝめ~

ke__kyukyun1828 ke__kyukyun1828

新卒研修などでJavaでの研修を会社でしている方は多いと思います。

しかし、Javaの研修後に配属されたAndroidチームではすっかりKotlinを使ったチームへとここ数年は変貌していると思います。

研修でJavaにようやく慣れてきたのに・・・というとき、Javaで書いていたものをKotlinを使った場合、戸惑いつつもその使いやすさに驚く人も多いのではないでしょうか。
しかし、あなたが書いてるそのコード、ちょっとJavaっぽくなっていませんか?
Kotlinではもっとキレイに書くことができるんです。

初学者ならではのやりがちなJavaっぽいKotlinの書き方を脱却して、これからのKotlinライフを一緒に楽しみましょう!

2
ショート(25分)

プロポーザルを出す技術 〜エンジニアでなくてもできるKotlinから始めるコントリビューション〜

luccafort luccafort

本セッションではKotlinコミュニティがもっと活性化し、技術的コミュニティとして成熟するために「プロポーザルを書く技術」にフォーカスして話します。

皆さん、Kotlinしてますか?
私は「Hello, World」をKotlin Playgroundで書いたことがある程度です。

なぜこのような初心者がトークのプロポーザルを出したのか?
それは私がマネーフォワードで技術広報をしているからです。

本セッションをお聞きになっている方はきっと

「どうやったら社内の素晴らしい取り組みをカンファレンスで発表してくれるだろう?」
「プロポーザルを出してみたいがなにを話せばいいかわからない。」

とお悩みの方ではないでしょうか?

本セッションではほんの少しのやる気があればプロポーザルを出せる技術を紹介します。
初めてのKotlin Festのコントリビューションになることを祈っています。

3