visible true

技術的なメモを書く

Next.js全部読む 3 (~2.0.0-beta.16)

Add AOT gzip content-encoding support for main build files. 2016/12/30 https://github.com/vercel/next.js/commit/29c226771ce8b5b26632c8e7753e69f7407933b4 AOTってなんだ?と思って引っかかった。 Ahead of Timeの略で、実行前に処理をするという意…

Next.js全部読む 2 (~2.0.0-beta.0)

Custom Document Support 2016/12/17 https://github.com/vercel/next.js/commit/8ddafaea5c1544f713bb0118b78055585b37e1e3#diff-dc3c27fcfe133615dd2b43df0b2da03e1ed23a7a03d17e86ae20f73ef20bc697R20 pages/_ducument.jsにファイルを置くとそっちを使う…

Next.js全部読む 1

2024年の年始にNext.jsのコードベースを読むことにしました。その際に得た知識をアウトプットすることを考えていましたが、初めはどのように読み進めたらよいのか迷い、なかなか整理することができませんでした。最近になって「最初のコミットから差分をすべ…

DoroidKaigi conference app 2023を読んでいく 1

DoroidKaigi 2023の公式アプリのリポジトリが公開されましたね。 github.com Androidアプリケーション開発から離れて久しいので、まずは最新のトレンドや技術について学ぶために、このプロジェクトを使って実際に手を動かしながら、気になる部分を調べてメモ…

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

ユビーAI問診は、Ubieが提供する医療機関向けのプロダクトです。患者さんに対して問診を実施し、医師向けのカルテを作成します。現在は大きく分けて、タブレットとスマートフォンの2つの利用方法があります。 タブレット用、スマートフォン用の画面 これら…

rubyのslice!でめっちゃハマった

map! は 各要素を順番にブロックに渡して評価し、その結果で要素を置き換えます。 https://docs.ruby-lang.org/ja/latest/class/Array.html#I_COLLECT--21 てことで、自分自身を書き換える。 array = [1,2,3,4,5] array.map!{ |a| a * 2 } # [2,4,6,8,10]に…

Junit5でJetpack ViewModelのviewModelScopeを使っている関数のテストをする

viewModelScopeを使っている関数を持つViewModel 次のRecommendBookViewModelクラスは、loadRecommendBooks関数という内部でviewModelScopeを用いて非同期処理を行う関数を持っている。 import androidx.lifecycle.ViewModel import androidx.lifecycle.view…

患者さんと病院をつないでいくシステムの今とこれから

本エントリはUbie Advent Calendar 2020の22日目です。 21日目はtoCプロダクトAI受診相談ユビーのプロダクトオーナーである@shikicheeのエンジニアの僕が強みを活かして施策推進したら、異次元の角度で数字が伸びちゃった話でした。 自分は現在toBプロダクト…

testing-library/reactでmaterial-uiのTextFieldの値をテストする

material-uiのTextFieldをtesting-library/reactでテストしようとすると、HTMLElementを取り出すところで苦労したのでメモを残す。 TextFieldに付与したaria-labelはinputのラッパー要素に付く 次のTextFieldがどこかのコンポーネントにあるとする。 <TextField name="name" label="name" aria-label="name" variant="outlined" value="title" /> 実際に</textfield>…

bit全探索 in Kotlin

最近AtCoderなどに参加していて、すべての組み合わせを生成しつつ計算するといった機会になんどか遭遇し、毎回頑張って実装していたのだけど、bit全探索という方法があるらしいと知り、調べて、Kotlinでどう書くか考えた結果次のようになった。 import java.…

Material-UIのHidden要素をテストする

個人のプロジェクトでMaterial-UIを使っているんですが、 コンポーネントがHiddenを含んでいると、テストがうまく動きません。 hoge.tsx import * as React from 'react'; import {Hidden} from "@material-ui/core"; export const Hoge = (): JSX.Element =…

Jetpack Compose 0.1.0-dev05から0.1.0-dev06にしたときに変更が必要だったところ

前回に引き続いて。 left, rightがstart, endに レイアウトのleft, rightが start, endになりました。なるだろうなーと思ってたので想定どおり。 before LayoutPadding( top = 16.dp left = 8.dp, right = 8.dp, bottom = 16.dp ) after LayoutPadding( top …

Jetpack Compose 0.1.0-dev05で追加されたAdapterListを眺める

Jetpack Compose 0.1.0-dev05がリリースされましたね。0.1.0-dev05でui-foundationにAdapterListというComposableが追加されました。 待望のAdapterList AdapterListの説明は次のようになっています。 A vertically scrolling list that only composes and l…

Jetpack Compose 0.1.0-dev04から0.1.0-dev05にしたときに変更が必要だったところ

Jetpack Compose 0.1.0-dev05が出ました。 リリースノートはこちら https://developer.android.com/jetpack/androidx/releases/compose#0.1.0-dev05 前回に引き続き、アップデートでエラーになる部分と対応方法を紹介していきます。 androidx.ui.layout.Padd…

Jetpack Compose (0.1.0-dev04) でSeekBarをスクラッチする

Jetpack ComposeにはSeekBarがないので、必要な場合は今の所自分で作ることになります。で作りました。0.1.0-dev04 での実装なので将来そのままでは動かなくなると思うのでご注意ください。 Preview 使う 実際の動作はこんな感じになります streamable.com …

Jetpack Compose 0.1.0-dev03から0.1.0-dev04にしたときに変更が必要だったところ

Jetpack Compose 0.1.0-dev04が出ましたね、今回からリリースノートのページもできたみたいです。 developer.android.com まだプレビューなんでどんどんAPIが変わっていきます。もしまともに使ってるとえらいことになるわけですが、個人的にproduction ready…

Jetpack Composeでカスタムフォントを使う

Jetpack Composeでカスタムフォントを使うには、FontFamily を用いる。 res/fontにフォントファイルを置き、FontFamilyにFontを渡す。 // res/font/ipam.ttfがあるとすると次のようになる。 FontFamily( Font(name = "ipam.ttf", weight = FontWeight.W400, …

チームコラボレーションサービス「Miro」いいなぁという話

Ubie Advent Calendar 2019の9日目です。 チームコラボレーションツールっていっぱいありますよね。 UbieではSlackやメール、Notion、Google Hangouts、Jira、Figma、Github、HERP、Salesforceなどのほかに「Miro」というチームコラボレーションサービスを使…

ノンアルコールビールめっちゃ増えてる

adventar.org 昨年のノンアルコールビールで晩酌すると風呂上がりにさっぱりプログラミングできて助かる - visible trueに引き続き、今年も書きます。まるで酔っ払っているかのように雑です。 自我を失ったノンアルコールビールたち さて個人的にノンアルコ…

Ktor用のSpannerのスキーマバージョン管理ライブラリ「spanner-kase」を作った話

Ubie Advent Calendar 2019の2日目です。 最近チームで新しいサービスが必要になったのでKtorでやろうか!ってことでKtorでサービスを書き始めています。 データベースはGoogle Cloud Spannerを使おうということになりました。 Java/KotlinのWebアプリケーシ…

Android Studio 4.0とJetpack Compose関連の見るとよいところなどのメモ

Youtube Android Dev Summit '19のセッション! www.youtube.com Android Studio 4.0 とJetpack Composeのセットアップ Jetnewsというサンプルアプリを試したり、新規プロジェクトでJetpack Composeで始めたり、 既存のプロジェクトにJetpack Composeど導入…

Kotlin Fest 2019で「Kotlinコルーチンを理解しよう 2019」を話してきました

Kotlin Fest 2019楽しかったです。 今回は「Kotlinコルーチンを理解しよう 2019」を話してきました。 資料作りの様子、各セクションを作る時になに考えてたか、反省点などまとめます。 前回と今回でロゴの形がちょっと変わってる 資料 コルーチンとはなにか…

FlowのchannelFlowを使ってRxBindingを置き換える

FlowのflowViaChannelを使ってRxBindingを置き換える - visible trueでKotlin Coroutines 1.2.xでFlowというコールドストリームをサポートするクラスや関数群が登場しました。ってことでflowViaChannel関数について書いたら、Kotlin Coroutines 1.3.0-M1でfl…

Flutter for webでWebフォントを使う

使える気がするんだけど何か方法あるのかなーと思って試してみたら普通に使えばよいことがわかった。 index.htmlでWebフォントを読み込む 好きなフォントを書く <html lang="en"> <head> <link href="https://fonts.googleapis.com/css?family=Gentium+Book+Basic&display=swap" rel="stylesheet"> </head> </html> fontFamilyで指定する あとは普通にfontFamilyで名前を指定するだけ。 @override Widget…

KtorでFirestore Local Emulatorにつなぐ

Firestore良さそうですよね。ローカルで動作を試せるLocal Emulatorがあるので気軽に試せてさらによさそうです。JVM環境で接続する例があんまり見当たらなかったのでメモします。 firestore local emulatorの準備をする とりあえずインストールして、 fireba…

Kotlin Fest 2019のセッションに応募しました。

今年もKotlin Festが開かれますね。もうセッションの応募はされたでしょうか? トラック数が増えたので今年はさらにいろんなジャンルが聞けるのではないかとワクワクしています。Kotlin/JSとかKotlin/Native, MPPが特に気になります。 kotlin.connpass.com …

loco-core 1.1.0をリリースしました。

Android向けロギングライブラリ「Loco」をリリースしました。 - visible true で1.0.0をリリースしたのですが速攻いくつか修正を入れて1.1.0をリリースしました。 しれっと1.0.1も出してました。 あとjcenterにも登録できたのでサクッと導入できるようになり…

Android向けロギングライブラリ「Loco」をリリースしました。

AndroidアプリでロギングするといえばPureeかなと思います。 かなり安定しているしいい感じに動く。 ただコードベースがJavaなので、たま〜に不具合でた時などに追っかけるのが結構たいへんだったり、 Gsonに依存しているので、別のJsonライブラリ使ってる場…

FlowのflowViaChannelを使ってRxBindingを置き換える

※こちらは古いので FlowのchannelFlowを使ってRxBindingを置き換える - visible true を参照ください。 Kotlin Coroutine 1.2.xでFlowというコールドストリームをサポートするクラスや関数群が登場しました。 Flow - kotlinx-coroutines-core 次のような感じ…

IntelliJ IDEAからDocker上で動くSprint Bootアプリにdebuggerをつなぐ

IntelliJからdocker上で動いてるSpring Bootアプリにデバッガつなぎたいときってありますよね。 ドチャクソハマったのでメモします。 Dockerで動かすSpring Bootアプリでデバッグ用ソケットを起動する gradleを使っている前提です。 gradleでSpring Bootを起動す…