Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlin + Javaで始めるAndroid開発
Search
tebasakyu
June 26, 2017
Programming
0
260
Kotlin + Javaで始めるAndroid開発
KotlinのLT会!Kotlin入門者の集い
https://kotlin.connpass.com/event/52374/
tebasakyu
June 26, 2017
Tweet
Share
More Decks by tebasakyu
See All by tebasakyu
育児 × 在宅勤務のTips
tebasakyu
5
5.8k
育児タスクのカンバン管理 離乳食編
tebasakyu
1
2.1k
Annotations specific to the Java platform.
tebasakyu
1
920
Firebaseでslack力を上げる
tebasakyu
1
1.9k
Other Decks in Programming
See All in Programming
テスト駆動開発✅️
akitoshiga
1
210
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
170
The future of development – Are our jobs getting harder or easier?
hollycummins
1
240
色々なIaCツールを実際に触って比較してみる
iriikeita
0
130
go.mod、DockerfileやCI設定に分散しがちなGoのバージョンをまとめて管理する / Go Connect #3
arthur1
10
2.3k
OpenTelemetryでRailsのパフォーマンス分析を始めてみよう(KoR2024)
ymtdzzz
3
1k
CSC305 Lecture 13
javiergs
PRO
0
120
offers_20241022_imakiire.pdf
imakurusu
2
310
開発効率向上のためのリファクタリングの一歩目の選択肢 ~コード分割~ / JJUG CCC 2024 Fall
ryounasso
0
310
Googleのテストサイズを活用したテスト環境の構築
toms74209200
0
240
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
14
3.8k
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
290
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
BBQ
matthewcrist
85
9.3k
It's Worth the Effort
3n
183
27k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
RailsConf 2023
tenderlove
29
870
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
59k
Done Done
chrislema
181
16k
Building Your Own Lightsaber
phodgson
102
6k
A designer walks into a library…
pauljervisheath
202
24k
Transcript
Kotlin + Java で始めるAndroid開発 2017.06.26 KotlinのLT会!Kotlin入門者の集い @tebasakyu
自己紹介 • 鈴木 誠 (Makoto Suzuki) ◦ 娘: 遙華(Haruka) 4ヶ月
• Monstar Lab, Inc. • Android Engineer • Twitter: @tebasakyu • GitHub: @tebasakyu
Start New Project or
択一だっけ?
Start New Project and
立ち回りの基本 • KotlinがJavaからどう見えるのか理解する • Java勢に優しくなる ◦ PublicなものはJava寄りに記述 ◦ Privateなものは好きに書く •
役割分担 ◦ Utilなどのメンテすることが少ないもの ▪ 引き継ぎコストを(多少は)気にしなくなる ◦ テストクラス
どう見える - Null Safety class StringUtil { companion object {
@JvmStatic fun equals(value1: String?, value2: String): Boolean { return TextUtils.equals(value1, value2) } } }
どう見える - 拡張関数 FileName: ViewExtentions.kt fun View.toVisible() { this.visibility =
View.VISIBLE }
どう見える - 拡張関数 FileName: ViewExtentionsKt.java public static void toVisible(@NonNull View
view) { view.setVisibility(View.VISIBLE); } Javaからはこのようなクラスとメソッドが用意されている様に見え ている。 ものによっては、あまり便利に使えない場合もある。
PublicでもKotlinしていいところ fun newInstance(id: Int) = DetailFragment().apply { arguments = Bundle().apply
{ putInt(KEY_ID, id) } } 例えば、Fragmentのインスタンス生成を行う関数。
• 戻り値の型の省略 ◦ DetailFragment#newInstanceの戻り値は自明なので、こ れならば省略しても大丈夫。 ◦ “isHoge”関数も同様に省略して良い。 ▪ 名称から見て、Booleanを返すのは自明である。 •
スコープ関数の使用(apply) ◦ DetailFragment#newInstanceの内容を呼び出し元が大 きく気にかけることは無い。そのため、自由に記述しても大 丈夫。 ◦ 仮に渡す値が増えても、改修内容は複雑では無い。
PublicでもKotlinしていいところ fun toUpperCase(value: String?) { value ?: return value.toUpperCase() }
fun toLowerCase(value: String?) { value?.run { toLowerCase() } } 条件が複雑でなければ雰囲気で分かる
ライブラリ • Javaで書かれたもの ◦ 概ね自由に使える ◦ Annotationものにはkaptを忘れないこと • Kotlinで書かれたもの ◦
Javaから実行する際に公式readmeと記法が異なる場合 があるので注意されたし 例:”@JvmStacic”の有無でJavaから実行する際の記法が異なる なし:FrogUtil.Companion.pickles(); あり:FrogUtil.pickles();
コードレビュー • 互いに実施して理解を深め合う ◦ チームでレベルアップする • 読み方が分からない、分かりづらいポイントは解説する • レビューを通して、コーディングのルールを作っていく
Thank you.