Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
980
Firebaseでslack力を上げる
tebasakyu
1
1.9k
Other Decks in Programming
See All in Programming
愛される翻訳の秘訣
kishikawakatsumi
3
350
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
270
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
790
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
380
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
120
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
190
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
310
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
390
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.4k
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Paper Plane (Part 1)
katiecoart
PRO
0
2.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
51
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
170
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
Leadership Guide Workshop - DevTernity 2021
reverentgeek
0
170
30 Presentation Tips
portentint
PRO
1
180
Building the Perfect Custom Keyboard
takai
1
660
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
340
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.