Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlin + Javaで始めるAndroid開発
Search
tebasakyu
June 26, 2017
Programming
0
270
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
6.1k
育児タスクのカンバン管理 離乳食編
tebasakyu
1
2.2k
Annotations specific to the Java platform.
tebasakyu
1
970
Firebaseでslack力を上げる
tebasakyu
1
1.9k
Other Decks in Programming
See All in Programming
Module Harmony
petamoriken
2
580
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
4
1.7k
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
10
9.4k
Duke on CRaC with Jakarta EE
ivargrimstad
0
310
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
830
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
5
2.7k
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
13
5.5k
Atomics APIを知る / Understanding Atomics API
ssssota
1
230
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
160
connect-python: convenient protobuf RPC for Python
anuraaga
0
310
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
2
1.3k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Agile that works and the tools we love
rasmusluckow
331
21k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Faster Mobile Websites
deanohume
310
31k
Being A Developer After 40
akosma
91
590k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Practical Orchestrator
shlominoach
190
11k
The Cult of Friendly URLs
andyhume
79
6.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
RailsConf 2023
tenderlove
30
1.3k
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.