狠狠撸

狠狠撸Share a Scribd company logo
Java で書かれた
Android アプリに
Kotlin を適用させていく
2018/02/03
Android Bazaar&Conference,
Diverse 2018 UDON県
@ e-とぴあ香川
辰濱健一
自己紹介
? 辰濱健一(たつはまけんいち)
? 徳島県生まれ、神山町在住
? GDG Shikoku スタッフ
? Sansan 株式会社、名刺アプリ Eight のアプリ開発
? Twitter:@tatsuhama50
? Facebook:kenichi.tatsuhama
2
ブース出してます
3
ラムネ?ステッカー?携帯クリーナー?野菜の種配布中!!
徳島県神山町
4
Sansan株式会社 神山ラボ
5
Kotlin とは?
Kotlin とは
7
? JetBrains 社が開発しているプログラミング言語
? JVM 上で動作する言語で、Java と完全に相互互換がある
? Google I/O 2017 にて、Android の開発言語に選定
Kotlin とは
8
? JetBrains 社が開発しているプログラミング言語
? JVM 上で動作する言語で、Java と完全に相互互換がある
? Google I/O 2017 にて、Android の開発言語に選定
だけじゃない!
Kotlin とは
9
? Native iOS Support
? Web Apps (Ktor)
? Multiplatform Projects(Common Module)
Kotlin とは
10
? Native iOS Support
? Web Apps (Ktor)
? Multiplatform Projects(Common Module)
もう、Kotlin は Android だけじゃない。
サーバも iOS も Kotlin で書ける!
iOS で Kotlin
? DroidKaigi 2018 unofficial iOS app
? https://github.com/kikuchy/DroidKaigi2018iOS
11
iOS で Kotlin
12
Kotlin の特徴
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
14
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
15
Null 安全
? 型で 「null 不許容型」「null 許容型」が分かれる
? Java の String は null 許容型
? → 「 null でない」という状態が型ではわからない
?
? 例)String の場合
? null 許容型:String?
? null 不許容型:String
16
Null 安全
17
? null が来ないことが確実であれば… Java
Kotlin
Null 安全
? 型で null を許容するか否かを表現できる
? NullPointerException がなくなるわけではない!
? 例)Kotlin の関数を Java から呼び出す
? Kotlin の定義が non-null でも、Java から null を渡すことができてしまう…
? → support annotation を付けておこう。
18
Java でも IDE が認識して、null チェックの必要性を判断してくれます
Java
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
19
型の省略
20
Java
Kotlin
Kotlin
※型推論に時間が掛かるので、
型を書いた方が、コンパイルが速い
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
21
ラムダ式
? ラムダ式
? 関数の宣言なしに、関数オブジェクトを生成できる
22
Java
Kotlin
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
23
Data class
? モデルクラスでおなじみの関数を自動生成
? 各 getter, setter, equals, hashCode, …
24
Kotlin
Java
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
25
拡張関数
? 他のクラスに関数を付け加えることができる
26
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
27
便利なコレクション関数
? filter:絞り込み
? map:変換
? sum() :合計
28
Kotlin の特徴
? Null 安全
? 型の省略
? ラムダ式
? data class
? 拡張関数
? 便利なコレクション関数
? デフォルト引数
29
デフォルト引数
? 指定しなかった引数のデフォルト値を指定できる
30
既存の
Android アプリに
Kotlin を
導入していく
Java プロジェクトへ Kotlin を!
? プロジェクト内に Kotlin を部分導入可能(ファイル単位)
? Android Studio の Java to Kotlin コンバータが便利
? Java からの見え方を知っておく
? Java → Kotlin するタイミング
32
Java プロジェクトへ Kotlin を!
? プロジェクト内に Kotlin を部分導入可能(ファイル単位)
? Android Studio の Java to Kotlin コンバータが便利
? Java からの見え方を知っておく
? Java → Kotlin するタイミング
33
Kotlin の部分導入(ファイル単位)
? 同じパッケージ内に java ファイルと kt ファイルの共存が可能
34
Kotlin
Java
Java
Kotlin
Java
Kotlin の部分導入(ファイル単位)
? 1つの Java ファイル内の関数を切り出して、Kotlin で記述す
るという方法も…
35
Java
Java
Kotlin
切り出し
呼出
Java プロジェクトへ Kotlin を!
? プロジェクト内に Kotlin を部分導入可能(ファイル単位)
? Android Studio の Java to Kotlin コンバータが便利
? Java からの見え方を知っておく
36
Convert to Kotlin
37
Convert to Kotlin
38
Java
Kotlin
Convert to Kotlin
? だいぶ Converter も賢くなってきた
? とはいえ、まだまだ過信してはいけない
? Converter が判断できない部分は手直しが必要
? そのままビルドが通とは限らない
? 実行時エラーになることも
39
変換後のエラー
? 例)Parcelable な Model
40
Java
変換後のエラー
41
Convert to Kotlin 後の手直し
? 必要があれば、nullable → non-null に
(String? → String)
? モデルクラスであれば、 data class に
他にも…
? var(書き換え可能な変数) → val (書き換え不可な変数) に
? Kotlin の言語機能(コレクション関数など)に置き換える
42
Java プロジェクトへ Kotlin を!
? プロジェクト内に Kotlin を部分導入可能(ファイル単位)
? Android Studio の Java to Kotlin コンバータが便利
? Java からの見え方を知っておく
? Java → Kotlin するタイミング
43
実行時エラー
44
CREATOR が見つからない???
Java からの見え方に配慮を
? 100% Java と互換性があるとはいえ、
Java からの見え方やコンバート結果は気をつけておく必要が
ある
? 例)
Kotlin にしかない拡張関数も Java から使えて呼べる
→ どうやって Java から呼ぶ??
45
Java から
Kotlin ファイルは
どう見える?
Java から
Kotlin ファイルは
どう見える?
これを知っておけば、Java と Kotlin が混在しても怖くない!!
みてみよう
? Android Studio Tools > Kotlin > Show Kotlin Bytecode
48
みてみよう
49
Kotlin
Kotlin
Bytecode
みてみよう
50
Kotlin
Kotlin
Bytecode
to Java
みてみよう
51
Java
プロパティ
52
JavaKotlin
var プロパティは
setter / getter
が生成されている
val なら getter のみ
プロパティの呼び出し方
53
Kotlin
Java
※public field へのアクセスに見えるが、 getter 経由になっている
Non-null 型
54
JavaKotlin
Non-null 型の実現は
Java から見ると、
アノテーションでの宣言と
null 例外にすぎない!
non-null の Java からの見え方
? アノテーションの付与でしかないので、警告しか出せない
? → コンパイル&実行できて、実行時エラー
55
static 関数の見え方
56
Kotlin
Java
static なCompanion 子クラス内に
関数が生成される
static 関数の呼び出し方
57
Kotlin
Java
※Companion オブジェクト経由の呼び出しになる
static 関数&変数の見え方の制御
58
Java
? 全ての呼び出し元に Companion をつけなければいけない。。。
? Parcelable なオブジェクトは クラス.CREATOR がある前提
(このままでは、クラス.Companion.CREATOR になり、機能しない)
Static 関数の見え方の制御
? @JvmStatic アノテーション
Companion を経由しない static 関数呼び出しを可能にする
59
Book.staticFunction() でアクセス可能
static 変数の見え方の制御
? @JvmField アノテーション
Companion を経由しない static 変数呼び出しを可能にする
60
Parcelable なオブジェクトの
CREATOR フィールドには
@JvmField 付与必須!
拡張関数の見え方
61
Kotlin
Java
拡張関数は、XXKt クラスの static 関数として出力される
拡張関数を呼び出す
62
Java
Kotlin
※第一引数は拡張関数が生えているクラスのインスタンス
デフォルト引数の見え方
63
Kotlin
Java
Java から見える
function(String):引数1つ
は存在しない???!?
デフォルト引数の関数を呼ぶために
? @JvmOverloads アノテーション
デフォルト引数なしの関数のオーバロード関数を生成する
64
@JvmOverloads の付与
65
Kotlin Java
Java からの
見え方
まとめ
Java からの見え方
67
項目 Java からの見え方
プロパティ getter / setter
non-null @NotNull アノテーション
null 時に例外を throw する関数
Static 関数 Companion オブジェクト経由呼び出し
or @JvmStatic の付与
Static 変数 Companion オブジェクト経由呼び出し
or @JvmField の付与
拡張関数 XXXKt.function(reciver) 形式での呼び出し
デフォルト引数 @JvmOverloads の付与
Java プロジェクトへ Kotlin を!
? プロジェクト内に Kotlin を部分導入可能(ファイル単位)
? Android Studio の Java to Kotlin コンバータが便利
? Java からの見え方を知っておく
? Java → Kotlin するタイミング
68
Java → Kotlin するタイミング
? 基本的に大きな機能修正をする場合に行う
(Kotlin 変換だけのリファクタはほぼしない。開発&テストされる機会に変換する)
? する場合も、1ファイルごとに動作確認しながら
? Java ファイルの数行の編集なら、Java で書く
(レビューコストがかさまないように)
? モデルクラスは、触るタイミングで Kotlin に移行しても安心
(機能がシンプル、レビューも容易)
※新規コードは全て Kotlin で書いています
69
Java → Kotlin の例
? 例)Parcelable なオブジェクト
70
Java
Kotlin
Java → Kotlin の例
? 例)Parcelable なオブジェクト
71
Java
Kotlin
↓エラー修正
Java → Kotlin の例
? 例)Parcelable なオブジェクト
72
ちゃんと Java から見えるように
Java → Kotlin の例
? 例)Parcelable なオブジェクト
73
↓Kotlin の機能を使う(Single Expression)
Java → Kotlin の例
? 例)Parcelable なオブジェクト
74
まだ長い…
さらに、Kotlin の
機能を使うと…!
Java → Kotlin の例
? 例)Parcelable なオブジェクト
75
これだけ(実質2行)で OK !
※まだ Experimental な Kotlin Extensions の @Parcelize を使っています
Java からの
見え方を意識すれば、
Kotlin のプロジェクト
投入も怖くない!
Let’s enjoy Kotlin
Java で書かれた Android アプリに Kotlin を適用させていく
告知
DroidKaigi 参加報告会
? 2/8(木), 9(金) に東京で開催される DroidKaigi 2018 の参加
報告会を開催します
? 日時:2/25(日) 13:00?17:00
? 場所:大同生命徳島ヒ?ル 1 階(徳島駅周辺)
? 申込:GDG Shikoku の Compass にて!
80
Java で書かれた Android アプリに Kotlin を適用させていく

More Related Content

What's hot (20)

12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
Yuki Tamura
?
Cloud Foundry にアプリケーションを push する際の典型的な10のエラー
Cloud Foundry にアプリケーションを push する際の典型的な10のエラーCloud Foundry にアプリケーションを push する際の典型的な10のエラー
Cloud Foundry にアプリケーションを push する際の典型的な10のエラー
nota-ja
?
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
?
础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム
l_b__
?
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
?
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
?
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
Yusuke Naka
?
OpenAI FineTuning を試してみる
OpenAI FineTuning を試してみるOpenAI FineTuning を試してみる
OpenAI FineTuning を試してみる
iPride Co., Ltd.
?
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
?
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Shohei Okada
?
コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」
コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」
コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」
Masahito Zembutsu
?
顿滨(依存性注入)について
顿滨(依存性注入)について顿滨(依存性注入)について
顿滨(依存性注入)について
Yui Ito
?
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
NTT DATA Technology & Innovation
?
叠耻颈濒诲碍颈迟の概要と最近の机能
叠耻颈濒诲碍颈迟の概要と最近の机能叠耻颈濒诲碍颈迟の概要と最近の机能
叠耻颈濒诲碍颈迟の概要と最近の机能
Kohei Tokunaga
?
ヤフーのプライベートクラウドとクラウドエンジニアの业务について
ヤフーのプライベートクラウドとクラウドエンジニアの业务についてヤフーのプライベートクラウドとクラウドエンジニアの业务について
ヤフーのプライベートクラウドとクラウドエンジニアの业务について
驰补丑辞辞!デベロッパーネットワーク
?
颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘
颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘
颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘
Hiroki Chinen
?
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea 急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
?
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
TetsuroMatsumura
?
Node-RED フローの分散処理化による次世代の都市システム
Node-RED フローの分散処理化による次世代の都市システムNode-RED フローの分散処理化による次世代の都市システム
Node-RED フローの分散処理化による次世代の都市システム
Takuro Yonezawa
?
今から始める鲍产耻苍迟耻入门冲202307.辫诲蹿
今から始める鲍产耻苍迟耻入门冲202307.辫诲蹿今から始める鲍产耻苍迟耻入门冲202307.辫诲蹿
今から始める鲍产耻苍迟耻入门冲202307.辫诲蹿
富士通クラウドテクノロジーズ株式会社
?
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
Yuki Tamura
?
Cloud Foundry にアプリケーションを push する際の典型的な10のエラー
Cloud Foundry にアプリケーションを push する際の典型的な10のエラーCloud Foundry にアプリケーションを push する際の典型的な10のエラー
Cloud Foundry にアプリケーションを push する際の典型的な10のエラー
nota-ja
?
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
?
础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム础苍诲谤辞颈诲の新ビルドシステム
础苍诲谤辞颈诲の新ビルドシステム
l_b__
?
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
?
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
?
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
SkyWayを使いこなすために How to use SkyWay -SkyWay UG Kansai #1 スペシャルバージョン-
Yusuke Naka
?
OpenAI FineTuning を試してみる
OpenAI FineTuning を試してみるOpenAI FineTuning を試してみる
OpenAI FineTuning を試してみる
iPride Co., Ltd.
?
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
?
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Shohei Okada
?
コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」
コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」
コンテナの作り方「顿辞肠办别谤は里方で何をしているのか?」
Masahito Zembutsu
?
顿滨(依存性注入)について
顿滨(依存性注入)について顿滨(依存性注入)について
顿滨(依存性注入)について
Yui Ito
?
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
NTT DATA Technology & Innovation
?
叠耻颈濒诲碍颈迟の概要と最近の机能
叠耻颈濒诲碍颈迟の概要と最近の机能叠耻颈濒诲碍颈迟の概要と最近の机能
叠耻颈濒诲碍颈迟の概要と最近の机能
Kohei Tokunaga
?
颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘
颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘
颁测产别谤础驳别苍迟の笔谤颈惫补迟别颁濒辞耻诲别を支える厂迟辞谤补驳别基盘
Hiroki Chinen
?
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea 急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
?
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
TetsuroMatsumura
?
Node-RED フローの分散処理化による次世代の都市システム
Node-RED フローの分散処理化による次世代の都市システムNode-RED フローの分散処理化による次世代の都市システム
Node-RED フローの分散処理化による次世代の都市システム
Takuro Yonezawa
?

Similar to Java で書かれた Android アプリに Kotlin を適用させていく (20)

Java で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていくJava で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていく
Kenichi Tatsuhama
?
Kotlin が公式サポートになったので Kotlin の話
Kotlin が公式サポートになったので Kotlin の話Kotlin が公式サポートになったので Kotlin の話
Kotlin が公式サポートになったので Kotlin の話
Kenichi Tatsuhama
?
碍辞迟濒颈苍こんなん出ましたけと?
碍辞迟濒颈苍こんなん出ましたけと?碍辞迟濒颈苍こんなん出ましたけと?
碍辞迟濒颈苍こんなん出ましたけと?
yy yank
?
碍辞迟濒颈苍について学んだコト
碍辞迟濒颈苍について学んだコト碍辞迟濒颈苍について学んだコト
碍辞迟濒颈苍について学んだコト
iPride Co., Ltd.
?
3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API
Hiroshi Kikuchi
?
Kotlinことはじめ -まずは触って動かしてみよう-
Kotlinことはじめ  -まずは触って動かしてみよう-Kotlinことはじめ  -まずは触って動かしてみよう-
Kotlinことはじめ -まずは触って動かしてみよう-
CASAREAL, Inc.
?
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
LINE Corporation
?
碍辞迟濒颈苍ソースコート?探访
碍辞迟濒颈苍ソースコート?探访碍辞迟濒颈苍ソースコート?探访
碍辞迟濒颈苍ソースコート?探访
yy yank
?
碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访
豊明 尾古
?
Qt5 の新機能 2012/12/15
Qt5 の新機能 2012/12/15Qt5 の新機能 2012/12/15
Qt5 の新機能 2012/12/15
Takumi Asaki
?
2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code
n-yuki
?
New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0
Goichi Hirakawa
?
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
Hirotaka Kawata
?
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
?
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ
Kenichi Tatsuhama
?
碍辞颈苍绍介
碍辞颈苍绍介碍辞颈苍绍介
碍辞颈苍绍介
Damper Matsu
?
碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话
碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话
碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话
shinnosuke kugimiya
?
础尝惭ツールたべくらべ
础尝惭ツールたべくらべ础尝惭ツールたべくらべ
础尝惭ツールたべくらべ
Kaoru NAKAMURA
?
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
信之 岩永
?
Objective-C Generics
Objective-C GenericsObjective-C Generics
Objective-C Generics
Goichi Hirakawa
?
Java で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていくJava で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていく
Kenichi Tatsuhama
?
Kotlin が公式サポートになったので Kotlin の話
Kotlin が公式サポートになったので Kotlin の話Kotlin が公式サポートになったので Kotlin の話
Kotlin が公式サポートになったので Kotlin の話
Kenichi Tatsuhama
?
碍辞迟濒颈苍こんなん出ましたけと?
碍辞迟濒颈苍こんなん出ましたけと?碍辞迟濒颈苍こんなん出ましたけと?
碍辞迟濒颈苍こんなん出ましたけと?
yy yank
?
碍辞迟濒颈苍について学んだコト
碍辞迟濒颈苍について学んだコト碍辞迟濒颈苍について学んだコト
碍辞迟濒颈苍について学んだコト
iPride Co., Ltd.
?
3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API3分で作る Kotlin Friendly な API
3分で作る Kotlin Friendly な API
Hiroshi Kikuchi
?
Kotlinことはじめ -まずは触って動かしてみよう-
Kotlinことはじめ  -まずは触って動かしてみよう-Kotlinことはじめ  -まずは触って動かしてみよう-
Kotlinことはじめ -まずは触って動かしてみよう-
CASAREAL, Inc.
?
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
LINE Corporation
?
碍辞迟濒颈苍ソースコート?探访
碍辞迟濒颈苍ソースコート?探访碍辞迟濒颈苍ソースコート?探访
碍辞迟濒颈苍ソースコート?探访
yy yank
?
碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访碍辞迟濒颈苍の飞别产フレームワーク探访
碍辞迟濒颈苍の飞别产フレームワーク探访
豊明 尾古
?
Qt5 の新機能 2012/12/15
Qt5 の新機能 2012/12/15Qt5 の新機能 2012/12/15
Qt5 の新機能 2012/12/15
Takumi Asaki
?
2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code
n-yuki
?
New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0New Objective-C Features for Swift 2.0
New Objective-C Features for Swift 2.0
Goichi Hirakawa
?
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
KotlinConf 2018 から見る 最近の Kotlin サーバーサイド事情
Hirotaka Kawata
?
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
?
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ
Kenichi Tatsuhama
?
碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话
碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话
碍辞迟濒颈苍つかって蚕颈颈迟补クライアント作った时の话
shinnosuke kugimiya
?
础尝惭ツールたべくらべ
础尝惭ツールたべくらべ础尝惭ツールたべくらべ
础尝惭ツールたべくらべ
Kaoru NAKAMURA
?

More from Kenichi Tatsuhama (20)

【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01
【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01
【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01
Kenichi Tatsuhama
?
地方创生ワカモノ会合
地方创生ワカモノ会合地方创生ワカモノ会合
地方创生ワカモノ会合
Kenichi Tatsuhama
?
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
Kenichi Tatsuhama
?
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
?
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
Kenichi Tatsuhama
?
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今
Kenichi Tatsuhama
?
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
Kenichi Tatsuhama
?
Firebase & BigQuery で Android アプリの成?を支える
Firebase & BigQuery で Android アプリの成?を支えるFirebase & BigQuery で Android アプリの成?を支える
Firebase & BigQuery で Android アプリの成?を支える
Kenichi Tatsuhama
?
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-onGDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on
Kenichi Tatsuhama
?
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap
Kenichi Tatsuhama
?
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
Kenichi Tatsuhama
?
Firebase hands on in Matsuyama
Firebase hands on in MatsuyamaFirebase hands on in Matsuyama
Firebase hands on in Matsuyama
Kenichi Tatsuhama
?
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
Kenichi Tatsuhama
?
インドの低速なネットワーク环境の攻略法
インドの低速なネットワーク环境の攻略法インドの低速なネットワーク环境の攻略法
インドの低速なネットワーク环境の攻略法
Kenichi Tatsuhama
?
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
Kenichi Tatsuhama
?
公司スポンサー
公司スポンサー公司スポンサー
公司スポンサー
Kenichi Tatsuhama
?
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話
Kenichi Tatsuhama
?
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
Kenichi Tatsuhama
?
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
Kenichi Tatsuhama
?
20171209エンシ?ニアの移住相谈会 自己绍介スライド
20171209エンシ?ニアの移住相谈会 自己绍介スライド20171209エンシ?ニアの移住相谈会 自己绍介スライド
20171209エンシ?ニアの移住相谈会 自己绍介スライド
Kenichi Tatsuhama
?
【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01
【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01
【技術的負債LT会】私たちの技術負債最前線?過去と未来について? 2024/08/01
Kenichi Tatsuhama
?
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
Kenichi Tatsuhama
?
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
?
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
Kenichi Tatsuhama
?
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
Kenichi Tatsuhama
?
Firebase & BigQuery で Android アプリの成?を支える
Firebase & BigQuery で Android アプリの成?を支えるFirebase & BigQuery で Android アプリの成?を支える
Firebase & BigQuery で Android アプリの成?を支える
Kenichi Tatsuhama
?
GDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-onGDG DevFest Tokyo 2019 Day2 Special Hands-on
GDG DevFest Tokyo 2019 Day2 Special Hands-on
Kenichi Tatsuhama
?
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
Kenichi Tatsuhama
?
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
Kenichi Tatsuhama
?
インドの低速なネットワーク环境の攻略法
インドの低速なネットワーク环境の攻略法インドの低速なネットワーク环境の攻略法
インドの低速なネットワーク环境の攻略法
Kenichi Tatsuhama
?
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
Kenichi Tatsuhama
?
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話
Kenichi Tatsuhama
?
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
Kenichi Tatsuhama
?
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
Kenichi Tatsuhama
?
20171209エンシ?ニアの移住相谈会 自己绍介スライド
20171209エンシ?ニアの移住相谈会 自己绍介スライド20171209エンシ?ニアの移住相谈会 自己绍介スライド
20171209エンシ?ニアの移住相谈会 自己绍介スライド
Kenichi Tatsuhama
?

Java で書かれた Android アプリに Kotlin を適用させていく