Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Kenichi Tatsuhama
PPTX, PDF
10,438 views
Java → Kotlin 変換 そのあとに。
2016/12/13 第4回Kotlin勉強会@Sansan Sansan株式会社 辰濱健一
Software
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 46
2
/ 46
3
/ 46
4
/ 46
5
/ 46
6
/ 46
7
/ 46
8
/ 46
9
/ 46
10
/ 46
11
/ 46
12
/ 46
13
/ 46
14
/ 46
15
/ 46
16
/ 46
17
/ 46
18
/ 46
19
/ 46
20
/ 46
21
/ 46
22
/ 46
23
/ 46
24
/ 46
25
/ 46
26
/ 46
27
/ 46
28
/ 46
29
/ 46
30
/ 46
31
/ 46
32
/ 46
33
/ 46
34
/ 46
35
/ 46
36
/ 46
37
/ 46
38
/ 46
39
/ 46
40
/ 46
41
/ 46
42
/ 46
43
/ 46
44
/ 46
45
/ 46
46
/ 46
More Related Content
PPTX
Java → Kotlin 変換 そのあとに。
by
Kenichi Tatsuhama
PPTX
Kotlin が公式サポートになったので Kotlin の話
by
Kenichi Tatsuhama
PPTX
Kotlin 使いになりました
by
Kenichi Tatsuhama
PPTX
前任者から引き継いだ Eight Android アプリ内部の改善
by
Kenichi Tatsuhama
PPTX
Android 開発, 運用時に使いたいライブラリやサービスの紹介
by
Kenichi Tatsuhama
PDF
AWS Amplify XRを動かしてみたら、、、
by
Tsuyoshi Yamamoto
PDF
Developing an Akka Edge6
by
saaaaaaki
PDF
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
Java → Kotlin 変換 そのあとに。
by
Kenichi Tatsuhama
Kotlin が公式サポートになったので Kotlin の話
by
Kenichi Tatsuhama
Kotlin 使いになりました
by
Kenichi Tatsuhama
前任者から引き継いだ Eight Android アプリ内部の改善
by
Kenichi Tatsuhama
Android 開発, 運用時に使いたいライブラリやサービスの紹介
by
Kenichi Tatsuhama
AWS Amplify XRを動かしてみたら、、、
by
Tsuyoshi Yamamoto
Developing an Akka Edge6
by
saaaaaaki
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
What's hot
PDF
Servlet と Future の関わり方 #scala_ks
by
Kazuhiro Sera
PDF
AWS Lambda in Golang
by
Koichiro Nishijima
PDF
akka-doc-ja
by
TIS Inc.
PPTX
Developing an Akka Edge4-5
by
saaaaaaki
PDF
Reactive Systems と Back Pressure
by
Akihiro Ikezoe
PDF
PHP Application E2E with Capybara
by
Yoshiaki Yoshida
PDF
Scala.js触ってみた
by
Asami Abe
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PDF
Ruby紹介
by
Masahiro Tomita
Servlet と Future の関わり方 #scala_ks
by
Kazuhiro Sera
AWS Lambda in Golang
by
Koichiro Nishijima
akka-doc-ja
by
TIS Inc.
Developing an Akka Edge4-5
by
saaaaaaki
Reactive Systems と Back Pressure
by
Akihiro Ikezoe
PHP Application E2E with Capybara
by
Yoshiaki Yoshida
Scala.js触ってみた
by
Asami Abe
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
Ruby紹介
by
Masahiro Tomita
Similar to Java → Kotlin 変換 そのあとに。
PPTX
2018/2/20 Kotlin勉強会
by
虎の穴 開発室
PDF
Kotlinではじめる Webアプリケーション入門
by
虎の穴 開発室
PPTX
Java で書かれたAndroid アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
PPTX
Java で書かれた Android アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
PDF
Kotlinアンチパターン
by
Recruit Lifestyle Co., Ltd.
PDF
Scala conf2013
by
Takafumi Ikeda
PDF
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
PDF
From Scala/Clojure to Kotlin
by
Kent Ohashi
PPTX
Kotlin
by
Shumpei Hozumi
PDF
Javaプログラミング入門
by
なおき きしだ
PDF
第2回関数型言語勉強会 大阪
by
Naoki Kitora
PDF
磯野ー!関数型言語やろうぜー!
by
Ra Zon
PDF
Programming24 第2回androidアプリ勉強会
by
codeal
PDF
[コデアル][Programming24]Androidアプリ勉強会01
by
codeal
PPTX
ゼロから始めるScala文法 (再)
by
Suguru Hamazaki
PDF
第1回内容の振り返り
by
skowata
PPTX
YJTC18 C-1 Kotlin導入の状況と展望
by
Yahoo!デベロッパーネットワーク
PDF
Scalaプログラミング・マニアックス
by
Tomoharu ASAMI
PDF
関数プログラミング入門
by
Hideyuki Tanaka
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
2018/2/20 Kotlin勉強会
by
虎の穴 開発室
Kotlinではじめる Webアプリケーション入門
by
虎の穴 開発室
Java で書かれたAndroid アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
Java で書かれた Android アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
Kotlinアンチパターン
by
Recruit Lifestyle Co., Ltd.
Scala conf2013
by
Takafumi Ikeda
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
by
Ouka Yuka
From Scala/Clojure to Kotlin
by
Kent Ohashi
Kotlin
by
Shumpei Hozumi
Javaプログラミング入門
by
なおき きしだ
第2回関数型言語勉強会 大阪
by
Naoki Kitora
磯野ー!関数型言語やろうぜー!
by
Ra Zon
Programming24 第2回androidアプリ勉強会
by
codeal
[コデアル][Programming24]Androidアプリ勉強会01
by
codeal
ゼロから始めるScala文法 (再)
by
Suguru Hamazaki
第1回内容の振り返り
by
skowata
YJTC18 C-1 Kotlin導入の状況と展望
by
Yahoo!デベロッパーネットワーク
Scalaプログラミング・マニアックス
by
Tomoharu ASAMI
関数プログラミング入門
by
Hideyuki Tanaka
BOF1-Scala02.pdf
by
Hiroshi Ono
More from Kenichi Tatsuhama
PDF
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
by
Kenichi Tatsuhama
PDF
地方創生ワカモノ会合
by
Kenichi Tatsuhama
PDF
Google Analytics のデータ分析ハンズオン
by
Kenichi Tatsuhama
PDF
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
by
Kenichi Tatsuhama
PDF
知っておきたいFirebase の色んな上限について
by
Kenichi Tatsuhama
PDF
Android 開発の昔と今
by
Kenichi Tatsuhama
PDF
Firebase Extensions はじめの一歩
by
Kenichi Tatsuhama
PDF
Firebase & BigQuery で Android アプリの成⻑を支える
by
Kenichi Tatsuhama
PPTX
GDG DevFest Tokyo 2019 Day2 Special Hands-on
by
Kenichi Tatsuhama
PPTX
Firebase Summit 2019 Recap
by
Kenichi Tatsuhama
PPTX
Cloud Firestore を使って、Polling をやめたい話
by
Kenichi Tatsuhama
PPTX
Firebase hands on in Matsuyama
by
Kenichi Tatsuhama
PPTX
インドのインターネット環境との戦い方
by
Kenichi Tatsuhama
PPTX
インドの低速なネットワーク環境の攻略法
by
Kenichi Tatsuhama
PPTX
DroidKaigi 2018 参加報告会 Closing
by
Kenichi Tatsuhama
PPTX
企業スポンサー
by
Kenichi Tatsuhama
PPTX
参加したセッションのピックアップ
by
Kenichi Tatsuhama
PPTX
CFP(Call For Paper)を出す話
by
Kenichi Tatsuhama
PPTX
DroidKaigi 2018 参加報告会
by
Kenichi Tatsuhama
PPTX
DroidKaigi アプリの内部を見る
by
Kenichi Tatsuhama
【技術的負債LT会】私たちの技術負債最前線〜過去と未来について〜 2024/08/01
by
Kenichi Tatsuhama
地方創生ワカモノ会合
by
Kenichi Tatsuhama
Google Analytics のデータ分析ハンズオン
by
Kenichi Tatsuhama
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
by
Kenichi Tatsuhama
知っておきたいFirebase の色んな上限について
by
Kenichi Tatsuhama
Android 開発の昔と今
by
Kenichi Tatsuhama
Firebase Extensions はじめの一歩
by
Kenichi Tatsuhama
Firebase & BigQuery で Android アプリの成⻑を支える
by
Kenichi Tatsuhama
GDG DevFest Tokyo 2019 Day2 Special Hands-on
by
Kenichi Tatsuhama
Firebase Summit 2019 Recap
by
Kenichi Tatsuhama
Cloud Firestore を使って、Polling をやめたい話
by
Kenichi Tatsuhama
Firebase hands on in Matsuyama
by
Kenichi Tatsuhama
インドのインターネット環境との戦い方
by
Kenichi Tatsuhama
インドの低速なネットワーク環境の攻略法
by
Kenichi Tatsuhama
DroidKaigi 2018 参加報告会 Closing
by
Kenichi Tatsuhama
企業スポンサー
by
Kenichi Tatsuhama
参加したセッションのピックアップ
by
Kenichi Tatsuhama
CFP(Call For Paper)を出す話
by
Kenichi Tatsuhama
DroidKaigi 2018 参加報告会
by
Kenichi Tatsuhama
DroidKaigi アプリの内部を見る
by
Kenichi Tatsuhama
Java → Kotlin 変換 そのあとに。
1.
Java → Kotlin
変換 そのあとに。 2016/12/13 第4回Kotlin勉強会@Sansan Sansan株式会社 辰濱健一
2.
Copyright © 2014
Sansan, Inc. All rights reserved. 自己紹介 1
3.
Copyright © 2014
Sansan, Inc. All rights reserved. > 自己紹介 2 • 辰濱健一 • 徳島生まれ、奈良育ち、徳島県在住 • 2回転職するも、いずれも徳島県内勤務 • Tokushima.app 主催 (徳島でのスマホアプリの勉強会) • Sansan株式会社所属 • 古民家を改修した神山ラボ勤務 • 名刺アプリ Eight Android 版の開発 • Kotlin, RxJava, Realm, … を使ってます • リモートワーク • 趣味は楽器演奏
4.
Copyright © 2014
Sansan, Inc. All rights reserved. > Sansan神山ラボ 3
5.
Copyright © 2014
Sansan, Inc. All rights reserved. > 趣味 4 • 楽器演奏(エレクトーン・トランペット) • 徳島県内のイベントで、ちらほら演奏する機会を頂い てます
6.
Copyright © 2014
Sansan, Inc. All rights reserved. > Tokushima.app 5 • http://tokushima-app.connpass.com • 徳島のスマホアプリ開発の勉強会 • 基本もくもく会、たまにハンズオン • 場所は徳島市内、10:00〜16:00 • 初心者でも OK、入退出自由、参加費無料 • 月1ペースで開催(したいと思ってはいる) • 辰濱が東京の勉強会で仕入れてきた情報なども共有します • 要望あれば、近隣に出張ハンズオンなども始めようかな…とか思っている。
7.
Copyright © 2014
Sansan, Inc. All rights reserved. 6 本題へ…
8.
Copyright © 2014
Sansan, Inc. All rights reserved. 7 Java → Kotlin そのあとに。
9.
Copyright © 2014
Sansan, Inc. All rights reserved. Android Studio の Code メニュー 8
10.
Copyright © 2014
Sansan, Inc. All rights reserved. 9 Convert Java File to Kotlin File!
11.
Copyright © 2014
Sansan, Inc. All rights reserved. 10 既存コードを 簡単に Kotlin 化!
12.
Copyright © 2014
Sansan, Inc. All rights reserved. 11 できるけど、 Kotlin らしくない 変換結果も…
13.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 12 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
14.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 13 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
15.
Copyright © 2014
Sansan, Inc. All rights reserved. メンバ変数の名前 14 • Java • Kotlin
16.
Copyright © 2014
Sansan, Inc. All rights reserved. メンバ変数の名前 15 • Java • Kotlin 接頭辞の m は外しておこう!
17.
Copyright © 2014
Sansan, Inc. All rights reserved. なぜ? 16 • 生成される getter / setter 関数名に残ってしまう • 例) これを Java から使うと…
18.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 17 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一関数式に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
19.
Copyright © 2014
Sansan, Inc. All rights reserved. おさらい 18 • var • 再代入可能な変数 • val • 再代入不可な変数 • 原則として、val を使用して再代入を極力避けるべき
20.
Copyright © 2014
Sansan, Inc. All rights reserved. var → val に 19 • Java • Kotlin ↑こいつを val にする
21.
Copyright © 2014
Sansan, Inc. All rights reserved. var → val に書き換えた 20 val は再代入不可…
22.
Copyright © 2014
Sansan, Inc. All rights reserved. Val cannot be reassigned 対応 21 val は再代入不可なので、宣言時に代入
23.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 22 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
24.
Copyright © 2014
Sansan, Inc. All rights reserved. 遅延初期化に 23 • by lazy{…} を使うと、初期化を遅延できる • 委譲プロパティ
25.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 24 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
26.
Copyright © 2014
Sansan, Inc. All rights reserved. NotNull 型にできるならして、!! 演算子の除去 25 • NotNull 型 • null 代入可能 • 型名そのまま • Nullable 型 • null 代入不可 • 型名のあとに?をつける
27.
Copyright © 2014
Sansan, Inc. All rights reserved. NotNull 型にできるならして、!! 演算子の除去 26 警告が増えた…orz
28.
Copyright © 2014
Sansan, Inc. All rights reserved. NotNull 型にできるならして、!! 演算子の除去 27 • !! 演算子 • Nullable な参照を、NotNull に強制的に変換する • ただし、null に対して !! 演算子を適用すると、 KotlinNullPointerException が throw される • !! 演算子は原則使用しないことがお勧めされている • どうしても必要なら、requireNotNull を
29.
Copyright © 2014
Sansan, Inc. All rights reserved. NotNull 型にできるならして、!! 演算子の除去 28 !! を除去するだけでOK
30.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 29 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出し • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
31.
Copyright © 2014
Sansan, Inc. All rights reserved. スコープ関数 30 • let, with, run, apply • 「Kotlin スコープ関数 用途まとめ」 http://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e がわかりやすくて、オススメ! • newIntent 関数 に apply を使うのがオススメ
32.
Copyright © 2014
Sansan, Inc. All rights reserved. スコープ関数に置き換える 31
33.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 32 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出し • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
34.
Copyright © 2014
Sansan, Inc. All rights reserved. 単一式関数 33 • 波括弧 { } で囲まれたブロックがない • 関数シグネチャに続けて =、その後に式がある • return がない 単一式関数化
35.
Copyright © 2014
Sansan, Inc. All rights reserved. 単一式関数にする 34 単一式関数化 行数削減
36.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 35 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
37.
Copyright © 2014
Sansan, Inc. All rights reserved. 安全呼び出し 36 • Nullable 変数に null が入っていたら何もしない → null チェックを簡素化できる
38.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 37 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
39.
Copyright © 2014
Sansan, Inc. All rights reserved. if, else if,… は when に 38 Java to Kotlin
40.
Copyright © 2014
Sansan, Inc. All rights reserved. 変換後に手直ししたい箇所 39 • メンバ変数の名前 • 可能な箇所は var → val に • 遅延初期化に • NotNull 型にできるならして、!! 演算子の除去 • スコープ関数に置き換える • 単一式関数に • 安全呼び出しに • if, else if, … は when に • 使われていない関数パラメータの NotNull / Nullable チェック
41.
Copyright © 2014
Sansan, Inc. All rights reserved. 使われていない関数パラメータの型チェック 40 Java to Kotlin
42.
Copyright © 2014
Sansan, Inc. All rights reserved. 使われていない関数パラメータの型チェック 41 Java to Kotlin
43.
Copyright © 2014
Sansan, Inc. All rights reserved. 使われていない関数パラメータの型チェック 42 Java to Kotlin 実はここは Nullable
44.
Copyright © 2014
Sansan, Inc. All rights reserved. 使われていない関数パラメータの型チェック 43 Java to Kotlin 実はここは Nullable “Intent” → “Intent?” にする必要がある!
45.
Copyright © 2014
Sansan, Inc. All rights reserved. 44 Convert Java to Kotlin したら、 Kotlin らしくするのも お忘れなく!
46.
Copyright © 2014
Sansan, Inc. All rights reserved. 45 おわり。
Download