[Kotlin] ifを愛でる
目次
すっかり忘れていましたが、「Kotlinのifを愛でる」という内容で登壇したのでした。2022年3月11日に開催された勉強会でしたので、2ヶ月以上前のことになってしまいました。Time fliesですね。今更ですが告知です。
YouTubeに当日の録画が公開されているようです。自分は見てませんが(恥ずかしいので)、興味があったらご覧いただけますと幸いです。
内容まとめ
自分の登壇内容を以下にまとめます。
- Kotlin公式のCoding conventionsとAndoidのKotlin style guideを読もう。
- 値を返す式としての
if
の使い方。それ以外の使い方については時間が足りないので話さない。 - 推奨されない
if
の書き方がある。推奨しない理由は明確に書かれていないが、壊れやすい書き方だから?
if (someCondition)
someValue
else
otherValue
- 普通に書くならこんな感じ。改行がある場合はブロック
{}
を使おう。
if (someCondition) {
someValue
} else {
otherValue
}
- Kotlinの
if
は値を返す式なので、ブロックの中でreturnを書かずに、if式を直接returnするのがKotlinらしい書き方。
bad:
fun someValue(int: Int) {
if (someCondition) {
return someValue
} else {
return otherValue
}
}
good:
fun someValue(int: Int) {
return if (someCondition) {
someValue
} else {
otherValue
}
}
- 直接if式を返せるように書ける。この書き方は簡潔なので嬉しい。
fun someValue(int: Int) =
if (someCondition) {
someValue
} else {
otherValue
}
- 1行で書ける場合はブロック
{}
を省略しても良い。
fun someValue(int: Int) =
if (someCondition) someValue else otherValue
- if-elseを行頭に持ってくる書き方(Scalaっぽい?)。個人的には好きだけど、チーム開発ではおすすめしにくい。チーム開発ならこの上に書いた2つのパターンが無難だと思う。
fun someValue(int: Int) =
if (someCondition) someValue
else otherValue
自分たちだけの最強の if
を見つけよう!
追記:スライドを公開しました
過去の登壇時の発表資料をMarkdown形式で書き直して公開しました。「Kotlinのifを愛でる」のスライドは、以下に起きました。VSCodeに Marp: Markdown Presentation Ecosystem をインストールするとスライド形式で見れます。
書いている人 😎

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。
👉 もっと詳しく
著書 ✍
Android 依存性注入 ヒッチハイク・ガイド🧳
Androidアプリでの依存性注入(Dependency Injection)に入門するためのガイダンスです。依存性注入の概念やメリットを理解し、Dagger Hiltを用いてAndroidアプリに適用する方法を解説しています。
ソフトウェアデザイン 2023年6月号📚
特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。
Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳
Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。
Android ユニットテスト ヒッチハイク・ガイド🧳
Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。
Android MVVMアーキテクチャ入門🛠
Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。
関連記事 👀
- [Kotlin] 関数定義が1つだけのinterfaceは `fun interface` で定義できる
- ランチタイムLT会 #1で「何故、UseCaseは1メソッドなのか」というLTをしました
- DroidKaigi.collect{ #1@Tokyo }で「例外を投げるな、値を返せ」というLTをしました
- [Kotlin] 末尾カンマ
- [Kotlin] ユークリッドの互助法を用いて最小公約数・最小公倍数の計算を実装する