タグ

ブックマーク / sys1yagi.hatenablog.com (11)

  • 開発時の動作確認ツールとしてCypressのE2Eテストを導入した話 - visible true

    ユビーAI問診は、Ubieが提供する医療機関向けのプロダクトです。患者さんに対して問診を実施し、医師向けのカルテを作成します。現在は大きく分けて、タブレットとスマートフォンの2つの利用方法があります。 タブレット用、スマートフォン用の画面 これらはどちらもWebアプリケーションとして実装していて、フロントエンドReact/TypeScriptで書いています。 問診のプロセスは画面遷移が多い ユビーAI問診は紙の問診票で書くような定型的な質問だけでなく、来院した目的に合わせて様々な質問を行います。 例えば「頭が痛い」といった症状を入力した場合、発症時期や部位、痛みの程度、持続時間、経過、頻度などを掘り下げて、更にそれらの回答内容から疑われる疾患に関連する質問を重ねていきます。あるいは「足をひねった」など外傷に関する場合は、スポーツをしていたかや事故かといった状況を聴取したりします。問診の長

    開発時の動作確認ツールとしてCypressのE2Eテストを導入した話 - visible true
  • Kotlin Fest 2019で「Kotlinコルーチンを理解しよう 2019」を話してきました - visible true

    Kotlin Fest 2019楽しかったです。 今回は「Kotlinコルーチンを理解しよう 2019」を話してきました。 資料作りの様子、各セクションを作る時になに考えてたか、反省点などまとめます。 前回と今回でロゴの形がちょっと変わってる 資料 コルーチンとはなにか、から実際使ってどうテストするかまでを45分でまとめるのはなかなか難しかったですが、一応網羅的にやれたか!?とは思っています。作る時はヒイヒイ言っててなにも考えてなかったけど改めてみると、これから触っていく場合に最初に読むものとして結構いいかもしれんと思うなどしました。 speakerdeck.com コルーチンとはなにか、なにがうれしいのか 概念については自分のなかではある程度理解できてたものの、対象コルーチンや非対称コルーチンについて曖昧だったので改めて調べた。 新雑誌「n月刊ラムダノート」の『「コルーチン」とは何だった

    Kotlin Fest 2019で「Kotlinコルーチンを理解しよう 2019」を話してきました - visible true
  • Kotlin Fest 2019のセッションに応募しました。 - visible true

    今年もKotlin Festが開かれますね。もうセッションの応募はされたでしょうか? トラック数が増えたので今年はさらにいろんなジャンルが聞けるのではないかとワクワクしています。Kotlin/JSとかKotlin/Native, MPPが特に気になります。 kotlin.connpass.com とりあえず4つほど応募しました。応募内容は次のとおりです。 他の方々の応募状況も見てみたいっす 言語機能 Kotlin コルーチンを 理解しよう 2019 概要 Kotlin コルーチンは2017年3月にexperimentalな機能としてKotlin 1.1とともに登場しました。 その後2018年10月に正式版の1.0.0がリリースされるまでに、様々な変更がありました。 特に2018年9月に加えられた並行性の構造化に関する変更は、それ以前のコルーチンのコードが利用できなくなるなど、とても影響が大

    Kotlin Fest 2019のセッションに応募しました。 - visible true
  • Android向けロギングライブラリ「Loco」をリリースしました。 - visible true

    AndroidアプリでロギングするといえばPureeかなと思います。 かなり安定しているしいい感じに動く。 ただコードベースがJavaなので、たま〜に不具合でた時などに追っかけるのが結構たいへんだったり、 Gsonに依存しているので、別のJsonライブラリ使ってる場合ちょっとな〜ってなったりすることがあります。 かねてから何らかの形で書き直しできないかな〜と思いつつ時間が取れなかったんですが、 コルーチンベースでpureeやってみっか— 八木 (@sys1yagi) 2019年5月17日 ということでついに手を出してみたところ、結構スッと出来上がったのでリリースします。 LocoはLog Coroutineの略です。 https://github.com/sys1yagi/loco 構造 Locoは次のような構造を持ちます。 Smasher: ログをシリアライズする // ここだけ料理つな

    Android向けロギングライブラリ「Loco」をリリースしました。 - visible true
  • FlowのflowViaChannelを使ってRxBindingを置き換える - visible true

    ※こちらは古いので FlowのchannelFlowを使ってRxBindingを置き換える - visible true を参照ください。 Kotlin Coroutine 1.2.xでFlowというコールドストリームをサポートするクラスや関数群が登場しました。 Flow - kotlinx-coroutines-core 次のような感じでめっちゃRxJavaっぽい雰囲気ですが動作の仕組みはコルーチンでやってる感じです。 val f = flowOf(1, 2, 3) // Flowを固定値で作る .map { it * 2 } .flowOn(Dispatchers.IO) // 実行コンテキストを設定できる runBlocking { f.collect { // この呼出しで初めて値が送出され始める println(it) } } Channelはホットストリームなので取扱いが難しい

    FlowのflowViaChannelを使ってRxBindingを置き換える - visible true
  • Androidと非同期処理 とCoroutine1.0.0 - visible true

    Google Play App Dojoで話してきました。Google Play App Dojoは非公開イベントなので全体的な内容は言えないんですが、どの発表もおもしろい & 濃いので、もし参加のチャンスがあったらぜひ行ったほうがいいな〜と思いました。 Androidと非同期処理 とCoroutine1.0.0 資料はコチラ 話した事 詳細は資料を見て下さい。 その他リンクなど Android Suspenders Android Dev Summit '18のコルーチンのセッションです。資料読んだあと見るとわかりが深まると思います。Androidと非同期処理 とCoroutine1.0.0 では触れられなかったところ(Android APIをコルーチン化する、複数回値を返却するケースなどなど)が結構あるのでぜひ見て下さい。 www.youtube.com 資料内でリンクしてるやつ Re

    Androidと非同期処理 とCoroutine1.0.0 - visible true
  • Roomはどのようにsuspend関数を実現しているのか - visible true

    Roomに2.1.0-alpha03からsuspend関数(コルーチン)のサポートが入りましたね。ちょっと気になったのでいくらか触ってみました。 Architecture Components Release Notes  |  Android Developers 何ができるようになるのか DAOでsuspend関数を宣言できるようになりました。具体的には次です。 @Dao interface UserDao { @Insert suspend fun insert(user: User) @Query("SELECT * FROM user") suspend fun getAllUsers(): List<User> @Delete suspend fun delete(user: User) } CoroutineScopeのなかでこれらの関数を呼ぶとノンブロッキングで各種操作がで

    Roomはどのようにsuspend関数を実現しているのか - visible true
  • Kotlin Coroutine 1.0.0までに夏から変わったところ - visible true

    日進月歩。夏に話した頃とは大きく変わってしまったKotlinコルーチン。 Kotlin Fest 2018でコルーチンの話をしてきた - visible true ↑はコルーチンの概念と実現の仕組みを中心に置いたので、その辺はまぁ変わってないんで問題ないんですが、後半の実際にコルーチンを使う場面に関してはすでにdeprecatedっていうか、そのまま書いても動かないくらい変化してしまいました。 ということでざっくりメモ 0.25.xから1.0.0までの主要な変化 基的にはリリースノートと関連するissueの議論を読めば大体わかります。 https://github.com/Kotlin/kotlinx.coroutines/releases [0.26.0] CoroutineScopeを導入し既存の書き方がdeprecatedに 9/12にリリース。kotlin festから2週間やん

    Kotlin Coroutine 1.0.0までに夏から変わったところ - visible true
  • Structured concurrencyってなんなの - visible true

    Structured concurrency – Roman Elizarov – Mediumでは、Kotlin coroutine 0.26.0でCoroutineScopeを導入した経緯などが書かれているんですが、タイトルのStructured concurrencyってのが結局なんなのか文中にはあんまり出てこないんですよね。 んで、CoroutineScopeの動作の理解に精一杯で、coroutineScope関数がなんなのか、どういう時に使うべきなのかよくわからないし、ましてやsupervisorScope関数なんて言われた日には意味が不明なわけです。 とりあえずlaunch関数内でasync関数呼び出したら駄目なんだな〜ふ〜んなんで? Notes on structured concurrency, or: Go statement considered harmfulを頑張

    Structured concurrencyってなんなの - visible true
  • Kotlin in Action はとてもいいのでとりあえずAndroidエンジニアは全員読むのがいいと思います - visible true

    頂きました。ありがとうございます。 Kotlin in Actionとは Kotlin in ActionはJetBrains社でKotlinの開発に参加しているDmitry Jemerov氏とSvetlana Isakova氏がJava開発者向けに書いたKotlin1.0の解説書です。 Kotlinが生まれた経緯、Kotlinの言語機能に関する網羅的な解説、高度な利用法の解説がどっさり400Pくらいに渡って書かれています。 原著が2017年2月発売なので、ちょうどKotlin 1.1がリリースされる直前です。ですのでKotlin 1.1以降に関する内容は含まれていません。 1.0と1.1や1.2はそこまで差分はないので、書で十分Kotlinを学べると思います。 Kotlin in Actionのここがいい 書のいいところはKotlinのリード設計者のAndrey Breslav氏

    Kotlin in Action はとてもいいのでとりあえずAndroidエンジニアは全員読むのがいいと思います - visible true
  • Kotlin 1.1 async/awaitの仕組みと使い方の概要 for Android - visible true

    これはKotlin Advent Calendar2016の19日目のエントリです。 エントリではKotlinの次期バージョン(1.1)で導入されるコルーチンと、その実装のひとつであるasync/awaitについて解説します。 今回書いているコードはGitHub - sys1yagi/kotlin-async-await-sample: yey!に置いています。 Kotlin 1.1の様子 Kotin 1.1は2016年7月にFirst glimpse of Kotlin 1.1: Coroutines, Type aliases and moreで変更の概要とEAPが公開されました。コルーチンのほかにタイプエイリアスやメソッド参照、ラムダ式での引数の分解宣言などなど様々な便利な機能の追加が予定されています。2016年12月の時点で1.1-M03が公開されています。 Kotlin 1.1

    Kotlin 1.1 async/awaitの仕組みと使い方の概要 for Android - visible true
  • 1