Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Philipp Hauer's Blog Engineering Management, Java Ecosystem, Kotlin, Sociology of Software Development Posted on Feb 12, 2018. Updated on Jun 12, 2022 Unit Testing in Kotlin is fun and tricky at the same time. We can benefit a lot from Kotlin’s powerful language features to write readable and concise unit tests. But in order to write idiomatic Kotlin test code in the first place, there is a certai
Kotlin向けMockライブラリのMockKの使い方について簡単にまとめます GitHub - MockK MockKがどんな意図で作られているかはこちらの記事で作者が語られていますのでご参照ください。 Medium - MockK: intentions MockKとは MockKはKotlin独自の言語仕様をほぼ網羅しているモックライブラリ Coroutineやobject、private関数などにも対応している優れもの 今回はCoroutineには触れませんので、あしからず。。。 公式ドキュメントにすべて書かれていますので、詳細はこちらを見てください https://mockk.io/ 今回は公式ドキュメントの内容からいくつか代表的なもの(自分がよく使うもの)を紹介させていただきます。 内容に不備等ありましたら、やさしくマサカリ投げてくださいm(_ _)m 動作確認環境について M
MockK is skyrocketing in Kotlin world during the last year. Users actively help to improve it by submitting issues and suggesting improvements. Last months, MockK introduced many powerful features and I am pleased to share them with you. This article is not short, because I want to share a lot about new possibilities you can use to improve your tests. Hierarchical mockingSince a very recent versio
この記事はAndroid Advent Calendar 2018の15日めです。 え?前回の日記は16日目だったのになぜ 今日は15日目かだって? それは言わないお約束です。 Swiftには次のように書くことで、 hogeが非nullだった場合はif内の処理、nullだった場合はelseの処理を行う仕組みがあります。 if let hoge = hoge.val { // hogeがnullでないときだけ実行 } else { // hogeがnullのときだけ実行 } 似たようなことをKotlinでやろうとするとこんな感じでやりがち hoge?.let{hoge-> // hogeがnullでないときだけ実行 } 定形ですね。 ところが、この方法ではelseを指定することが出来ません。 そこで、 ついうっかりエルビス演算子を使ってしまいがちです。 hoge?.let{hoge-> //
[Android]Kotlinのエルビス演算子(?:)とは 2018.03.12 2023.01.10 Androidアプリ開発ミニ動画講座 スマホアプリ開発ミニ動画講座 Kotlinは空っぽ(null)が嫌いなプログラミング言語ですので、クラス(プログラミングを作るためのブロックの単位)は、名前をつけて中身を入れないと使うことが出来ません。 一方で、クラスの型(ブロックの種類)の後ろに「?」をつけることで、どーしても空っぽ(null)が入る場合も許容されています(「nullable」と言ったりします)。 val message: String? = "こんにちは" このときのオブジェクト(message)の中身を、 空っぽでなければ設定されたものを使って、 空っぽの時は他の中身(デフォルトの値)を使いたい 場合があるとします。 そのときは、普通はこのように書きますが、 textView.
KotlinはNull安全なプログラム言語だといいますが、当然ながらNullを取りうる変数objに対して、obj!!なんてやっちゃったら、場合によっては落ちます。 ただKotlinにはJavaにはないスコープ関数や拡張関数、エルビス演算子などがあります。それらを活用すればあの忌々しいNullを華麗にかわすことができます。今回、比較的よく使うNull回避の実装をまとめておきます。 全てのオブジェクトがNullでない場合のみ処理を実行する1 あるオブジェクトがNullでない場合のみ、とある処理を実行したいケースはよくあると思います。普通は次のように書くと思います。 この書き方自体問題があるわけではないのですが、次のようなケースの場合にちょっとした不都合があります。 objがインスタンス変数の場合、スマートキャストが効かない Nullチェックしたい変数が複数ある場合、if条件にタラタラと書かなき
なんとなくうっかり間違えそうなところがあったので、クイズ風にまとめてみました。 始める前に Kotlinをこれから勉強しよう or 勉強したてという人向けの簡単な問題です。 普段からKotlinを書いてる人からしたら、物足りないかもしれませんがご了承ください。 また、Kotlinの経験が浅い人向けに2点補足です。 null.toString() KotlinではnullはAny?の拡張関数によりtoString()を呼び出せるようになっています。 リファレンス そのためprintlnにnullを渡すと"null"が出力されます Kotlinでのif文は式 Javaとは違いKotlinではif文は式になっています。そのため戻り値が取れます。 letやエルビス演算子(?:)でも同様です。 そのためKotlinには三項演算子はありません。(必要ないから) 例 fun main() { var s
今回はここまで紹介してきたコレクションで使えるメソッドを、備忘録的な意味も込めて残しておこうと思います。随時更新です。 要素の追加や削除、基本的なループ処理に関しては、ページ末尾に各コレクションの記事へのリンクを掲載してますので、そちらをご覧ください。 なおMapやMutableMapのメソッドは、新たに作成した別ページにまとめてあります。 値を取得し、その値を返すfirst() / last()インデックス番号ではなく、メソッドによって最初や最後の値を取得する。(List/Set) val list = listOf("グー","チョキ","パー") list.first() //グー list.last() //パー find{…} / findLast{…}ラムダ式の結果trueになる最初の値を1つ取得する。(List/Set) trueになる値が無ければ戻り値はnullになるため、
Kotlin が Android の公式言語になることが Goole I/O 2017 で発表されました。これから Kotlin を始める Java プログラマが多くなると思うので、本投稿では Java プログラマが Kotlin でつまづきがちなところについて説明します。 本投稿は単独で理解できるように書いていますが、↓の連載の第二弾です。 Kotlin の基礎的な構文は理解していることを前提としているので、 Kotlin の基礎については "Javaとほぼ同じところ" を御覧下さい。 Javaとほぼ同じところ 新しい考え方が必要でつまづきがちなところ ←この投稿で扱う内容 Kotlinならではの便利なこと 新しい考え方が必要でつまづきがちなところ 新しい概念を学ぶときには、何ができるのかだけでなく、どうしてそうなっているのかがわからないとそれをうまく使いこなすことができません。 本節で
先日、JetBrainsのブログでKotlinにコルーチンが導入されるという発表がありました。 以下のリポジトリで先行事例の調査や仕様の検討が行われています。 https://github.com/Kotlin/kotlin-coroutines 先行事例の調査は以下のissueです。 https://github.com/Kotlin/kotlin-coroutines/issues/2 Kotlinにおける仕様の草稿(と思われるもの)は以下の文書です。 https://github.com/Kotlin/kotlin-coroutines/blob/master/kotlin-coroutines-informal.md examples/ にあるのは、coroutinesがどのように実装されるのかのスケッチにみえます。つまり、coroutinesを使ったコードがコンパイルされる結果の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く