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.9k
育児タスクのカンバン管理 離乳食編
tebasakyu
1
2.1k
Annotations specific to the Java platform.
tebasakyu
1
930
Firebaseでslack力を上げる
tebasakyu
1
1.9k
Other Decks in Programming
See All in Programming
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
820
Beyond ORM
77web
11
1.5k
rails newと同時に型を書く
aki19035vc
5
630
Package Traits
ikesyo
1
160
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
360
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
180
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
630
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
800
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
360
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
260
GitHubで育つ コラボレーション文化 : ニフティでのインナーソース挑戦事例 - 2024-12-16 GitHub Universe 2024 Recap in ZOZO
niftycorp
PRO
0
1.1k
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
200
Featured
See All Featured
Music & Morning Musume
bryan
46
6.3k
Making the Leap to Tech Lead
cromwellryan
133
9k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Cult of Friendly URLs
andyhume
78
6.1k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
340
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
490
The Invisible Side of Design
smashingmag
299
50k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
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.