Kotlinが誕生してから11年が経過しました。たくさんの方に愛されているプログラミング言語なだけあって、多数のブログや勉強会にて最新情報をキャッチアップできます。しかし、ブログや勉強会で発表してる人のように自分からKotlinの情報を取りに行きたいですよね?
本セッションでは、Kotlinの1次ソースの活用方法を知って、あなたのお悩みを解決します!
・Kotlinの標準ライブラリを使いこなしたい
・Kotlin関連の最新情報をキャッチアップしたい
・ググって問題解決より突っ込んだ情報を得たい
セッション内容
・標準ライブラリの関数編
・公式ドキュメントの歩き方
・ソースコードの歩き方
・Kotlin+周辺ライブラリの最新情報編
・Release notesの歩き方
・PR/Issueの歩き方
Android のモダンな UI ツールキットである Jetpack Compose では、State の持つ値に Delegated properties でアクセスすることがよくあります。
このセッションでは Kotlin の Delegated properties について解説し、Android のライブラリでどのように利用されているかを紹介します。
Gradle Kotlin DSL の stable リリース(Gradle 5.0)からそろそろ丸4年が経ちます。しかし、Groovy による記述が Deprecated になったわけではありません。これは利用者側が2つの言語を理解できることを依然として要求しますし、Gradle Plugin を提供するなら2つの言語に対して頑強でストレスフリーなインターフェースを提供し続ける必要があります。
そこで本トークでは Gradle Kotlin DSL の仕組みを通して Groovy との対応といった具体例を紹介して理解を深めるとともに、Gradle Plugin を制作する上で Groovy/Kotlin DSL の相互運用性のポイントをいくつか紹介します。Kotlin DSL が絡まない Gradle Plugin 開発の Tips は特に紹介しません。
contracts や genericsなど Kotlinは静的型付け言語トップレベルの型機能を有しています。
しかし我々はそれらのリッチな型機能を上手に使いこなせているのでしょうか?
本セッションではKotlinの型機能を使ってコンパイルで検出できる実装ミスを増やしアプリケーションの品質を高める方法を説明します。
Kotlinの機能紹介のみに終始せず、具体的な実装ミス・バグを例にとりながら具体的な実装パターンを紹介していきます。
以下目次
Compose MultiplatformではDesktopとAndroidのUIは共有できる部分が多く、コードも共通化することができます。しかしCompose for Webではそれができません。なぜなら通常のCompose UIと違い、web-coreモジュールによってDomでUIを作らないとならないためです。
10月にリリースされたCompose Multiplatform 1.2では、experimentalながらもDomではなく共通のUIをブラウザでも利用できます。
本セッションではSkia+WebAssemblyで実現されているこの機能が、現状どういったことができるのか紹介します。
株式会社ヘンリーではサーバサイドをKotlin(gRPC, Ktor, Koin etc.)で書いています。サービスの品質を高めるため、また拡大期にあるチームへのボーディングを簡単にするため、Detekt拡張を実装して利用しています。
このセッションではどのような課題を解決するためにDetektを利用したか、その結果どのようにコーディング体験が改善されたかをご紹介します。
書いているコードが処理に最適化されているか心配になったご経験がある方はいませんか?
そんな不安を解消できるライブラリが公式からkotlinx benchmarkとして発表されています
kotlinx benchmarkを使用して処理速度を計測し、無駄なマシンリソースを消費しないコードを書きましょう!
話すこと
私は主にRailsでサーバーサイド、Reactでフロントエンドを実装する開発者でした。
しかしある日「Kotlinやらない?」の一言から初めてKotlinと出会い、新規プロダクトのサーバーサイド開発をKotlin、GraphQLで始めることになるのでした。(*ExpediaのGraphQL Kotlinを使用)
・初めてのサーバーサイドKotlinで苦労したこと
・なぜ、チームで誰もGraphQL、Kotlinを触れたことないにも関わらず新規プロダクトの開発がスムーズに進んだのか?
・Kotlin独自の機能がDDDとマッチしたこと
このセッションではKotlinもDDDも新規プロダクトも初めての私がKotlinでの開発で魅了された点、苦労した点、サーバーサイドKotlinを選択してよかった!と思えた体験をお伝えし、サーバーサイドKotlinへ踏み出す一歩を後押しできればと思います!
Kotlin1.3でstableになったCoroutinesは今では1.6となり、Androidアプリ開発においてはFirst Class Coroutines Supportとされてから3年が経過しました。私達のチームでも導入されており、もはやなくてはならない存在になったと感じています。
そんなCoroutinesですが、suspend function、Flow、Channel、使い分けられていますか?BroadcastChannelとMutableSharedFlowのどちらを使ったらいいか迷ったりしてませんか?
このセッションでは、kotlinx.coroutinesの最新バージョンをベースにCoroutinesの基本的な使い方を改めて抑えつつ、なんとなくで使っていたChannelやFlowなどをシーンに合わせて選択できるようになることを目指します。