SlideShare a Scribd company logo
1 of 50
Kotlin 使いになりました
2016/07/09 Kansai.kt LT #kansaikt
@株式会社はてな 京都オフィス
Sansan株式会社 辰濱健一
Copyright © 2014 Sansan, Inc. All rights reserved.
自己紹介
1
Copyright © 2014 Sansan, Inc. All rights reserved.
> 自己紹介
2
• 辰濱健一
• 徳島生まれ、奈良育ち、徳島県在住
• 2回転職するも、いずれも徳島県内勤務
• Tokushima.app 主催
(徳島でのスマホアプリの勉強会)
• Sansan株式会社所属
• 古民家を改修した神山ラボ勤務
• 名刺アプリ Eight Android 版の開発
• Kotlin, RxJava, Realm, … を使ってます
• リモートワーク
• 趣味は楽器演奏
Copyright © 2014 Sansan, Inc. All rights reserved.
> Sansan神山ラボ
3
Copyright © 2014 Sansan, Inc. All rights reserved.
> 趣味
4
• 楽器演奏(エレクトーン・トランペット)
• 徳島県内のイベントで、ちらほら演奏する機会を頂い
てます
Copyright © 2014 Sansan, Inc. All rights reserved.
> Tokushima.app
5
• http://tokushima-app.connpass.com
• 徳島のスマホアプリ開発の勉強会
• 基本もくもく会、たまにハンズオン
• 場所は徳島市内、10:00〜16:00
• 初心者でも OK、入退出自由、参加費無料
• 月1ペースで開催(したいと思ってはいる)
• 辰濱が東京の勉強会で仕入れてきた情報なども共有します
• 要望あれば、近隣に出張ハンズオンなども始めようかな…とか思っている。
Copyright © 2014 Sansan, Inc. All rights reserved. 6
京都にもオフィス!
Copyright © 2014 Sansan, Inc. All rights reserved.
> Sansan 京都ラボ
7
• 京都で Kotlin 書きたい方、お待ちしております!!
• 京都ラボ:
• http://jp.corp-sansan.com/blog/jinji/2014/141125.html
Copyright © 2014 Sansan, Inc. All rights reserved. 8
本題へ…
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin 使いになりました
9
Copyright © 2014 Sansan, Inc. All rights reserved.
> モバイル経験
10
• 前職 2012/09 〜
• iOS, Android, Windows8(C#)
• 機能担当制で、3OS ともやる
• Sansan 2014/03 〜
• 2014/03 〜 法人向け部門
• Android アプリ
• Java, SQLite, DefaultHttpClient(Deprecated...), 生Activity
• 2016/03 〜 個人向け部門(Eight)に部署異動!
• Android アプリ
• Kotlin, Realm, Retrofit, Rx(UI も), MaterialDesign, ...
Copyright © 2014 Sansan, Inc. All rights reserved. 11
同じ「Android エンジニア」といえど、
使われている技術が違う部署への異動は
かなり大変。。。
Copyright © 2014 Sansan, Inc. All rights reserved. 12
さらに、
異動後の即戦力の期待値感が高い…orz
(端から見れば、Android → Android。そりゃそうだ。)
Copyright © 2014 Sansan, Inc. All rights reserved. 13
不慣れと、わからないことの焦りと不安
なかなか終わらないビルド…
Copyright © 2014 Sansan, Inc. All rights reserved. 14
辛い。。。
Copyright © 2014 Sansan, Inc. All rights reserved. 15
でも、
Copyright © 2014 Sansan, Inc. All rights reserved.
> 社内に Kotlin の師匠
16
• コードレビューによる助言、知見の共有
Copyright © 2014 Sansan, Inc. All rights reserved.
> 弊社主催の Kotlin 勉強会@東京
17
• 他社事例や自社外の知見の共有!(リモート視聴)
Copyright © 2014 Sansan, Inc. All rights reserved. 18
恵まれた環境です。
Copyright © 2014 Sansan, Inc. All rights reserved. 19
異動から…
Copyright © 2014 Sansan, Inc. All rights reserved. 20
ヶ月
ヶ月
※Input に注力する期間を自分で
定めただけです。
※転職するわけではないです
Copyright © 2014 Sansan, Inc. All rights reserved. 21
Input に注力する期間
が終わったので…
Output を!
Copyright © 2014 Sansan, Inc. All rights reserved. 22
Kotlin 使っててハマった所
を共有します。
Copyright © 2014 Sansan, Inc. All rights reserved.
Java → Kotlin コンバータの注意点
23
Copyright © 2014 Sansan, Inc. All rights reserved.
> Code > Convert Java File to Kotlin File
24
Copyright © 2014 Sansan, Inc. All rights reserved.
> Before / After
25
↓ Java to Kotlin ↓
Copyright © 2014 Sansan, Inc. All rights reserved.
> Before / After
26
↓ Java to Kotlin ↓
NewActivity に遷移して、バックキーで戻ると…
Copyright © 2014 Sansan, Inc. All rights reserved.
> RuntimeException...
27
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,
request=123, result=0, data=null} to activity
{jp.tokushima.tatsuhama.myapplication/jp.tokushima.tatsuhama.myapplicat
ion.MainActivity}: java.lang.IllegalArgumentException: Parameter specified
as non-null is null: method
kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data at
android.app.ActivityThread.deliverResults(ActivityThread.java:3699) at
android.app.ActivityThread.handleSendResult(ActivityThread.java:3742) at
android.app.ActivityThread.-wrap16(ActivityThread.java) at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
Copyright © 2014 Sansan, Inc. All rights reserved.
> Nullable にする必要があった
28
×:data: Intent
↓
○:data: Intent?
※色々試してみたところ、data を関数内で null チェックしてたら、
ちゃんと Intent? になりました!
Copyright © 2014 Sansan, Inc. All rights reserved. 29
コンバータを使っても、
関数パラメータの
NonNull / Nullableは
ちゃんと確認しよう!
Copyright © 2014 Sansan, Inc. All rights reserved.
使っているのに、Unused Resources
30
Copyright © 2014 Sansan, Inc. All rights reserved.
> Lint の実行結果
31
• ./gradlew lint で実行
• kt ファイルで使ってるのに、Unused Resources …
リソースを消すときは要注意!
Copyright © 2014 Sansan, Inc. All rights reserved. 32
Kotlin 1.0.2 で Lint 対応
って書いてたんだけど…
まだ、過信しない方が良い
Copyright © 2014 Sansan, Inc. All rights reserved.
使えるのに、警告…
33
Copyright © 2014 Sansan, Inc. All rights reserved.
> Android Studio 上に警告が…
34
• Bundle#putBoolean が API 22 以上??
Copyright © 2014 Sansan, Inc. All rights reserved.
> Android Studio 上に警告が…
35
• Bundle#putBoolean が API 22 以上??
• いいえ、API 1からです。
Copyright © 2014 Sansan, Inc. All rights reserved. 36
Plugin も発展途上。
怪しいと思ったら、
ちゃんと本家で確認を!
Copyright © 2014 Sansan, Inc. All rights reserved.
呼んでるのに…
37
Copyright © 2014 Sansan, Inc. All rights reserved.
> 呼ばれてないことになってしまう
38
• property アクセスが、Hierarchy Callcs で出ない…
• 削除時は要注意!!
使っているのに… 出てない!?
Copyright © 2014 Sansan, Inc. All rights reserved. 39
色々発展途上。
修正したら、
ちゃんとビルドが通ることを
確認しよう!!
(ビルド遅いけど…)
Copyright © 2014 Sansan, Inc. All rights reserved.
IcePickが動かない…
40
Copyright © 2014 Sansan, Inc. All rights reserved.
> アノテーションプロセッサが原因?
41
• IcePick:
• Activity/Fragment のインスタンスフィールドを簡単に
保存・復元してくれるライブラリ
Copyright © 2014 Sansan, Inc. All rights reserved. 42
使ってるライブラリが
Kotlin で動くことを
ちゃんと確認しよう!
Kotlin版 IcePick は弊社の yamamotj が Pikkel を公開しています。
https://github.com/yamamotoj/Pikkel
Copyright © 2014 Sansan, Inc. All rights reserved. 43
まとめ。
Copyright © 2014 Sansan, Inc. All rights reserved. 44
まだ発展途上のツールもあるけど、
慣れてくると Kotlin 良い!
※安心して下さい、Kotlin 本体はプロダクトコードでも
問題なく使えています!
Copyright © 2014 Sansan, Inc. All rights reserved. 45
先人の知見が、
Kotlin 習得に役立ちました!
Copyright © 2014 Sansan, Inc. All rights reserved. 46
この内容も
誰かの役に立てば幸いです。
Copyright © 2014 Sansan, Inc. All rights reserved. 47
四国住まいですが、
また Kotlin の経験積んで
Kansai.kt にて
Output しに来たいと思います!
Copyright © 2014 Sansan, Inc. All rights reserved. 48
本日はありがとうございました!
&
これからも、
よろしくお願いします!
Copyright © 2014 Sansan, Inc. All rights reserved.
ステッカー欲しい方、お声がけ下さい!!
49

More Related Content

What's hot

AWA with Realm
AWA with RealmAWA with Realm
AWA with RealmYuji Hato
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件今城 善矩
 
Akka meetup 2014_sep
Akka meetup 2014_sepAkka meetup 2014_sep
Akka meetup 2014_sepmasahitojp
 
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けーTanUkkii
 
スマホアプリ自動テストサービス
スマホアプリ自動テストサービススマホアプリ自動テストサービス
スマホアプリ自動テストサービスKoh Uehara
 
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)JOYZO
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-jaTIS Inc.
 
Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Kazunori Inaba
 
20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+LambdaKazuki Ueki
 

What's hot (9)

AWA with Realm
AWA with RealmAWA with Realm
AWA with Realm
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
 
Akka meetup 2014_sep
Akka meetup 2014_sepAkka meetup 2014_sep
Akka meetup 2014_sep
 
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けープログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
 
スマホアプリ自動テストサービス
スマホアプリ自動テストサービススマホアプリ自動テストサービス
スマホアプリ自動テストサービス
 
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
kintone Café 東京 Vol.3 ハンズオン資料(kintone & AWS Lambda/S3)
 
akka-doc-ja
akka-doc-jaakka-doc-ja
akka-doc-ja
 
Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4Linuxサーバーのセキュリティ対策 part4
Linuxサーバーのセキュリティ対策 part4
 
20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda20160312 Jaws Days 2016 API Gateway+Lambda
20160312 Jaws Days 2016 API Gateway+Lambda
 

More from 健一 辰濱

地方創生ワカモノ会合
地方創生ワカモノ会合地方創生ワカモノ会合
地方創生ワカモノ会合健一 辰濱
 
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン健一 辰濱
 
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 健一 辰濱
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について健一 辰濱
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今健一 辰濱
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩健一 辰濱
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える健一 辰濱
 
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健一 辰濱
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap健一 辰濱
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話健一 辰濱
 
Firebase hands on in Matsuyama
Firebase hands on in MatsuyamaFirebase hands on in Matsuyama
Firebase hands on in Matsuyama健一 辰濱
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方健一 辰濱
 
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法健一 辰濱
 
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing健一 辰濱
 
企業スポンサー
企業スポンサー企業スポンサー
企業スポンサー健一 辰濱
 
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ健一 辰濱
 
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話健一 辰濱
 
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会健一 辰濱
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る健一 辰濱
 
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく健一 辰濱
 

More from 健一 辰濱 (20)

地方創生ワカモノ会合
地方創生ワカモノ会合地方創生ワカモノ会合
地方創生ワカモノ会合
 
Google Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオンGoogle Analytics のデータ分析ハンズオン
Google Analytics のデータ分析ハンズオン
 
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
 
知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について知っておきたいFirebase の色んな上限について
知っておきたいFirebase の色んな上限について
 
Android 開発の昔と今
Android 開発の昔と今Android 開発の昔と今
Android 開発の昔と今
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
 
Firebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支えるFirebase & BigQuery で Android アプリの成⻑を支える
Firebase & BigQuery で Android アプリの成⻑を支える
 
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
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap
 
Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話Cloud Firestore を使って、Polling をやめたい話
Cloud Firestore を使って、Polling をやめたい話
 
Firebase hands on in Matsuyama
Firebase hands on in MatsuyamaFirebase hands on in Matsuyama
Firebase hands on in Matsuyama
 
インドのインターネット環境 との戦い方
インドのインターネット環境との戦い方インドのインターネット環境との戦い方
インドのインターネット環境 との戦い方
 
インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法インドの低速なネットワーク環境の攻略法
インドの低速なネットワーク環境の攻略法
 
DroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 ClosingDroidKaigi 2018 参加報告会 Closing
DroidKaigi 2018 参加報告会 Closing
 
企業スポンサー
企業スポンサー企業スポンサー
企業スポンサー
 
参加したセッションの ピックアップ
参加したセッションのピックアップ参加したセッションのピックアップ
参加したセッションの ピックアップ
 
CFP(Call For Paper) を出す話
CFP(Call For Paper)を出す話CFP(Call For Paper)を出す話
CFP(Call For Paper) を出す話
 
DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会DroidKaigi 2018 参加報告会
DroidKaigi 2018 参加報告会
 
DroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見るDroidKaigi アプリの内部を見る
DroidKaigi アプリの内部を見る
 
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
 

Kotlin 使いになりました

  • 1. Kotlin 使いになりました 2016/07/09 Kansai.kt LT #kansaikt @株式会社はてな 京都オフィス 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. > Sansan 京都ラボ 7 • 京都で Kotlin 書きたい方、お待ちしております!! • 京都ラボ: • http://jp.corp-sansan.com/blog/jinji/2014/141125.html
  • 9. Copyright © 2014 Sansan, Inc. All rights reserved. 8 本題へ…
  • 10. Copyright © 2014 Sansan, Inc. All rights reserved. Kotlin 使いになりました 9
  • 11. Copyright © 2014 Sansan, Inc. All rights reserved. > モバイル経験 10 • 前職 2012/09 〜 • iOS, Android, Windows8(C#) • 機能担当制で、3OS ともやる • Sansan 2014/03 〜 • 2014/03 〜 法人向け部門 • Android アプリ • Java, SQLite, DefaultHttpClient(Deprecated...), 生Activity • 2016/03 〜 個人向け部門(Eight)に部署異動! • Android アプリ • Kotlin, Realm, Retrofit, Rx(UI も), MaterialDesign, ...
  • 12. Copyright © 2014 Sansan, Inc. All rights reserved. 11 同じ「Android エンジニア」といえど、 使われている技術が違う部署への異動は かなり大変。。。
  • 13. Copyright © 2014 Sansan, Inc. All rights reserved. 12 さらに、 異動後の即戦力の期待値感が高い…orz (端から見れば、Android → Android。そりゃそうだ。)
  • 14. Copyright © 2014 Sansan, Inc. All rights reserved. 13 不慣れと、わからないことの焦りと不安 なかなか終わらないビルド…
  • 15. Copyright © 2014 Sansan, Inc. All rights reserved. 14 辛い。。。
  • 16. Copyright © 2014 Sansan, Inc. All rights reserved. 15 でも、
  • 17. Copyright © 2014 Sansan, Inc. All rights reserved. > 社内に Kotlin の師匠 16 • コードレビューによる助言、知見の共有
  • 18. Copyright © 2014 Sansan, Inc. All rights reserved. > 弊社主催の Kotlin 勉強会@東京 17 • 他社事例や自社外の知見の共有!(リモート視聴)
  • 19. Copyright © 2014 Sansan, Inc. All rights reserved. 18 恵まれた環境です。
  • 20. Copyright © 2014 Sansan, Inc. All rights reserved. 19 異動から…
  • 21. Copyright © 2014 Sansan, Inc. All rights reserved. 20 ヶ月 ヶ月 ※Input に注力する期間を自分で 定めただけです。 ※転職するわけではないです
  • 22. Copyright © 2014 Sansan, Inc. All rights reserved. 21 Input に注力する期間 が終わったので… Output を!
  • 23. Copyright © 2014 Sansan, Inc. All rights reserved. 22 Kotlin 使っててハマった所 を共有します。
  • 24. Copyright © 2014 Sansan, Inc. All rights reserved. Java → Kotlin コンバータの注意点 23
  • 25. Copyright © 2014 Sansan, Inc. All rights reserved. > Code > Convert Java File to Kotlin File 24
  • 26. Copyright © 2014 Sansan, Inc. All rights reserved. > Before / After 25 ↓ Java to Kotlin ↓
  • 27. Copyright © 2014 Sansan, Inc. All rights reserved. > Before / After 26 ↓ Java to Kotlin ↓ NewActivity に遷移して、バックキーで戻ると…
  • 28. Copyright © 2014 Sansan, Inc. All rights reserved. > RuntimeException... 27 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=123, result=0, data=null} to activity {jp.tokushima.tatsuhama.myapplication/jp.tokushima.tatsuhama.myapplicat ion.MainActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data at android.app.ActivityThread.deliverResults(ActivityThread.java:3699) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3742) at android.app.ActivityThread.-wrap16(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
  • 29. Copyright © 2014 Sansan, Inc. All rights reserved. > Nullable にする必要があった 28 ×:data: Intent ↓ ○:data: Intent? ※色々試してみたところ、data を関数内で null チェックしてたら、 ちゃんと Intent? になりました!
  • 30. Copyright © 2014 Sansan, Inc. All rights reserved. 29 コンバータを使っても、 関数パラメータの NonNull / Nullableは ちゃんと確認しよう!
  • 31. Copyright © 2014 Sansan, Inc. All rights reserved. 使っているのに、Unused Resources 30
  • 32. Copyright © 2014 Sansan, Inc. All rights reserved. > Lint の実行結果 31 • ./gradlew lint で実行 • kt ファイルで使ってるのに、Unused Resources … リソースを消すときは要注意!
  • 33. Copyright © 2014 Sansan, Inc. All rights reserved. 32 Kotlin 1.0.2 で Lint 対応 って書いてたんだけど… まだ、過信しない方が良い
  • 34. Copyright © 2014 Sansan, Inc. All rights reserved. 使えるのに、警告… 33
  • 35. Copyright © 2014 Sansan, Inc. All rights reserved. > Android Studio 上に警告が… 34 • Bundle#putBoolean が API 22 以上??
  • 36. Copyright © 2014 Sansan, Inc. All rights reserved. > Android Studio 上に警告が… 35 • Bundle#putBoolean が API 22 以上?? • いいえ、API 1からです。
  • 37. Copyright © 2014 Sansan, Inc. All rights reserved. 36 Plugin も発展途上。 怪しいと思ったら、 ちゃんと本家で確認を!
  • 38. Copyright © 2014 Sansan, Inc. All rights reserved. 呼んでるのに… 37
  • 39. Copyright © 2014 Sansan, Inc. All rights reserved. > 呼ばれてないことになってしまう 38 • property アクセスが、Hierarchy Callcs で出ない… • 削除時は要注意!! 使っているのに… 出てない!?
  • 40. Copyright © 2014 Sansan, Inc. All rights reserved. 39 色々発展途上。 修正したら、 ちゃんとビルドが通ることを 確認しよう!! (ビルド遅いけど…)
  • 41. Copyright © 2014 Sansan, Inc. All rights reserved. IcePickが動かない… 40
  • 42. Copyright © 2014 Sansan, Inc. All rights reserved. > アノテーションプロセッサが原因? 41 • IcePick: • Activity/Fragment のインスタンスフィールドを簡単に 保存・復元してくれるライブラリ
  • 43. Copyright © 2014 Sansan, Inc. All rights reserved. 42 使ってるライブラリが Kotlin で動くことを ちゃんと確認しよう! Kotlin版 IcePick は弊社の yamamotj が Pikkel を公開しています。 https://github.com/yamamotoj/Pikkel
  • 44. Copyright © 2014 Sansan, Inc. All rights reserved. 43 まとめ。
  • 45. Copyright © 2014 Sansan, Inc. All rights reserved. 44 まだ発展途上のツールもあるけど、 慣れてくると Kotlin 良い! ※安心して下さい、Kotlin 本体はプロダクトコードでも 問題なく使えています!
  • 46. Copyright © 2014 Sansan, Inc. All rights reserved. 45 先人の知見が、 Kotlin 習得に役立ちました!
  • 47. Copyright © 2014 Sansan, Inc. All rights reserved. 46 この内容も 誰かの役に立てば幸いです。
  • 48. Copyright © 2014 Sansan, Inc. All rights reserved. 47 四国住まいですが、 また Kotlin の経験積んで Kansai.kt にて Output しに来たいと思います!
  • 49. Copyright © 2014 Sansan, Inc. All rights reserved. 48 本日はありがとうございました! & これからも、 よろしくお願いします!
  • 50. Copyright © 2014 Sansan, Inc. All rights reserved. ステッカー欲しい方、お声がけ下さい!! 49