そして当時の編集長が マスコミであるならきっちり取材をしろという意見もわかりますが 私達も報道陣の前に1人の人間です。 どうかご理解ください。 と綴っていてそれに対する大きな反論は起こるはずもなく賞賛する声が圧倒的に多かった。
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Thread-local data 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルは、スレッドないのローカルのデータだと思いますが、意味不明です。 早速読み進めましょう。 Sometimes it is convenient to have an ability to pass some thread-local data, but, for coroutines, which are no
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Cancellation via explicit job 前回に引き続き、公式サイトを読み解いていきます。 いつもだったらタイトルから内容を予想していました。 しかし、今回はタイトルの考察はしません。 なので、今回は内容を理解した上でタイトルの意味を考えてみます。 それでは、読み進めていきます。 Let us put our knowledge about contexts, children and jo
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Combining context elements 前回に引き続き、公式サイトを読み解いていきます。 前回はコンテキストの要素について説明しました。確か、スレッド名を変更するだけでした。 今回のタイトルを見るとその要素を結合するみたいです。 感のいい人はなんとなく予想がつくかと思います。 それでは、読み進めていきます。 Sometimes we need to define multiple element
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Naming coroutines for debugging 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルはわかりやすいです。 これまで、デバッグではスレッド名とIDが表示されることについて学習してきました。 多分、その部分の名前を変えられるのでしょう。 早速読み進めてみます。 Automatically assigned ids are good when coroutines log
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Parental responsibilities 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルは教育論でしょうかといった具合になっていますが、これまでの流れだと子コルーチンと親コルーチンの話の続きな気がします。 今回は短めです。 早速読み進めてみます。 A parent coroutine always waits for completion of all its children.
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Async-style functions 前回に引き続き、公式サイトを読み解いていきます。 タイトルと読むと漫画の題名みたいです。 タイトルだけではよくわからないので、読んでみましょう。 We can define async-style functions that invoke doSomethingUsefulOne and doSomethingUsefulTwo asynchronously us
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Lazily started async 前回に引き続き、公式サイトを読み解いていきます。 タイトルを見てみるとゆっくり実行って・・・。日本語にするとよくわからないですが、英名で考えると意外とすんなり理解できます。lazilyという単語からlazyで連想した場合、Kotlinだとあとで実行するとイメージするんではないでしょうか? ということは、今回は、asyncを任意のタイミングで実行する方法と考えられます。
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Concurrent using async 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルはわかりやすいです。 asyncってやつを使うと並列処理ができるってイメージでしょうか。 内容を読み進めます。 What if there are no dependencies between invocation of doSomethingUsefulOne and doSomethingUse
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Sequential by default 前回に引き続き、公式サイトを読み解いていきます。 タイトルが意味不明です。 読み進めたほうがいい気がします。 Assume that we have two suspending functions defined elsewhere that do something useful like some kind of remote service call or
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Timeout 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルはわかりやすいですね。タイムアウトです。 既に想像に難くないです。コルーチンのタイムアウトでは無いかと推察しておきます。 それでは、読んでみましょう The most obvious reason to cancel coroutine execution in practice is because its execution
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Run non-cancellable block 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルは「キャンセルさせない」です。これまではキャンセルさせることに注力していましたが、今回はキャンセルさせないってことでしょうか。 早速、読んでいきます。 Any attempt to use a suspending function in the finally block of the pre
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Cancelling coroutine execution 前回に引き続き、公式サイトを読み解いていきます。 タイトルをみると、わからなくもないです。 キャンセルしたときにfinally句でリソースクローズする話だろうなとイメージはわきます。 それでは、読み進めてみます。 Cancellable suspending functions throw CancellationException on canc
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Making computation code cancellable 前回に引き続き、公式サイトを読み解いていきます。 前回は、キャンセルの裏側の話をしました。 しかし、キャンセルできない処理についても話しました。今回のタイトルはそれをひっくり返すような感じがしますね。 早速読み進めます。 There are two approaches to making computation code cancell
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Cancellation is cooperative 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルは日本語にすると意味がわかりません。 内容を理解すれば、理解できるかもしれません。 早速読み進めます。 Coroutine cancellation is cooperative. A coroutine code has to cooperate to be cancellable. Al
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Cancelling coroutine execution 前回に引き続き、公式サイトを読み解いていきます。 これまでの記事でキャンセルも少しだけふれましたが、今回からはキャンセルの詳細について説明していきます。 それでは、読み進めます。 In a long-running application you might need fine-grained control on your background
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Global coroutines are like daemon threads 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルは読んだままです。 早速読み進めます。 The following code launches a long-running coroutine in GlobalScope that prints "I'm sleeping" twice a second an
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Coroutines ARE light-weight 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルはわかりやすいです! 軽量アピールです。 早速読み進めます。 Run the following code: いきなり、サンプルコードを実行せよと言われたので、実行してみたいと思います。 まず、サンプルコードは以下のとおりです。 import kotlinx.coroutines.* fun
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa 前回に引き続き、公式サイトを読み解いていきます。 このブロックのタイトルは、リファクタリングのメソッドの抽出になっています。 タイトルからだけでは、内容が察せないので、早速読み進めます。 Let's extract the block of code inside launch { ... } into a separate function. When you perform "Extract functi
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Scope builder 前回に引き続き、公式サイトを読み解いていきます。 このブロックのタイトルは「Scope builder」となっています。 なんとなくですが、スコープを作れるのではと勘ぐってしまうタイトルです。 それでは、読み進めていきます。 In addition to the coroutine scope provided by different builders, it is possib
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Structured concurrency 前回に引き続き、公式サイトを読み解いていきます。 今回のタイトルを翻訳すると意味不明な感じになります。 公式
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Waiting for a job 前回に引き続き、公式サイトを読み解いていきます。 タイトルの意味的には、ジョブを待つでしょうか。 コルーチンの処理を待つことが今回の主題になりそうです。 それでは、公式サイトの説明を見てみます。 Delaying for a time while another coroutine is working is not a good approach. Let's expli
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) 準備 詳細は下記の準備を参照してください。 https://qiita.com/naoi/items/8abf2cddfc2cb3802daa Bridging blocking and non-blocking worlds 前回に引き続き、公式サイトを読み解いていきます。 タイトルの意味的には、ブロックとブロックしていない世界の架け橋でしょうか。 ブロックが今回の主題になりそうです。 では、読み進めていきます。 The first example mixes non-blocking delay(...) and blocking Thread.
検証環境 この記事の内容は、以下の環境で検証しました。 Intellij IDEA ULTIMATE 2018.2 Kotlin 1.3.0 Gradle Projectで作成 GradleファイルはKotlinで記述(KotlinでDSL) やりたいこと Kotlin 1.3のリリースと同時に、これまで実験的だったCoroutineの1.0.0がリリースされました。 早速、公式サイトで内容を確認してみると思いの外難しいです。そのため、少しづつ翻訳して、実験しながら理解していいくことにしました。現時点では、Coroutineが何者かも今はわかりません。 最終的には、コルーチンを完全に理解します。 ※翻訳の際、意訳が交じることがあります、ご注意ください。 公式:Coroutineのページ 準備 Coroutineを利用するには、ライブラリを追加する必要があります。 渡しの場合、gradleも
こんにちは、kz_moritaです。 これまではずっと iOS をやっていたのですが、最近サーバーサイド Kotlin を書き始めたので今日は Kotlin の Coroutine について勉強がてら軽く触ってみました。 Kotlin 完全に初心者なので、IDE で project を作るところから詳しめに書いていきます。 準備 開発環境としては、IntelliJ IDEA CE を使う想定なので、別環境の方は適宜読み替えてください。 まずはプロジェクトを作ります。 File > New > Project… Gradle で環境を作るので、以下の写真のように Gradle を選択し、 Kotlin/JVM を選択状態で Next を押します。 GroupId に組織名など(個人の場合は適当で良いはず)をいれ、ArtifactIcd にこのアプリ名を入れます。 Project 名と Pro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く