言いたいことはそれだけか

KotlinとかAndroidとかが好きです。調べたことをメモします。٩( 'ω' )و

Kotlin

Kotlin 1.4からFlowのcombine()がより綺麗に書けるようになった(suspend conversion on callable references)

今回は小ネタ。Kotlinがますます可愛いという話をします。 Kotlin 1.4からsuspend conversion on callable referencesがsupportされました。 これ、Kotlin 1.4.0 にあげたらcompile通るようになった。リリース見てみたらSuspend conversion on callable refe…

複数のsubscribersに対応したFlowとテストの書き方

MVVMアーキテクチャにおいて、一つのModelを複数のView Modelで共有している場合、あるイベントを複数のView Modelで同時に受け取りたいことがある。これをKotlin Coroutine Flowを使って書くとどうなるのかなぁと思ったのでやってみたメモ。テストも書いた…

Paging Library 3の内部実装読んだメモ書き

はじめに Paging Library 3が発表された際、Full Kotlinで書かれてCoroutineもたくさん使われているということで話題になった。せっかくなので内部実装を読んでみた時のメモを雑に残しておく。 今回みたバージョンは 3.0.0-alpha01 PagingLibraryをどう使う…

KoinのDIの仕組み

はじめに みなさん、Koinはお好きだろうか? KoinとはKotlin用の軽量DI Frameworkである。 insert-koin.io 基本的には下記の3 stepでお手軽にDIの仕組みを提供してくれる。 moduleの宣言 Koinのstart 任意の場所でinject Injectする際にinject()というcustom…

AndroidからGoogle Sign In経由、AWS Cognitoでuser管理してDynamo DBを操作する ~AWS Java SDKを添えて~

ふと、「そういえばNo SQLのDBって業務で関わったことないな」と思いついたのでAWS DynamoDBをさわってみることにした。 Androidから直接さわるためAWS Java SDKを利用したが、ググって引っかかる情報は結構古くてもう存在しないAPIを使っていたり、公式docu…

androidx.benchmarkの1.0.0がリリースされたので試してみる

Android Dev Summit 2019の下記のセッションで軽くふれられていた androidx.benchmark の1.0.0がリリースされたようなのでさわってみます。このセッションはbenchmarkの使い方を説明したものではないけど、色々と面白いのでおすすめです。 www.youtube.com …

Kotlin Bytecodeを読みたいけど、何から勉強したらいいかわからないあなたへ。ASMのドキュメントを読みましょう。

はじめに このblog postは半年以上下書き放置していて自分の中では旬がすぎた話題ではありますが、最近Android系日本語技術podcastであるdex.fmのep.66でbytecodeが話題になったので、勿体無い精神で公開します :pray: それではどうぞ。 Kotlin書いていると…

Shared element transitionでリストの要素を並び替える

やりたいこと Fragmentを切り替えてReordering(要素を並び替え)する shared element transition の記事を見て楽しそうだったからやってみた。 medium.com 全く同じことをやっても楽しくないので、Fragment <-> Activityでやってみる。 できた いきなりだけ…

KotlinのRegexとDestructuredで文字列からdata classに変換する

Androidでアプリを書いていて、正規表現を扱うときにjava.util.regex.Matcherを使うこと多いが、あれは個人的には好きではない。もっとスッキリかけるんじゃないかなぁといつも思ってしまう。 例えば、URLからprotocolとdomainを正規表現を使って取り出すコ…

kotlin.concurrent.threadは新規threadが作成されるけどcurrent threadのgroupで動く

[2018.7.15 ご指摘いただき記事の最後に追記しました] あらまし 先日おもしろいTweetを見つけたのでちょっと調べてみたメモ。 別ActivityでUI操作の必要なマルチスレッド処理をしたいとき、runOnUiThreadを使わないとMarshmallowならクラッシュするけど、Ore…

@JvmOverloadsなfunctionをmockできないケースがある

@JvmOverloadsを付与したKotlinのfunctionを、Javaから呼び出すコードを書いた。ここのテストを書こうと思ってmockito-kotlinでmockしようとしてできなかったときのメモ。ちなみにmockしたいクラスはDagger2でDIしている前提。 やりたかったこと 例えばこん…

Kotlin 1.1以降をAndroidで安全に使いたかった話

はじめに この記事は「Kotlin 1.1以降をAndroidで安全に使いたかった話」です。本当は会社のAdvent Calendar向けに書くはずだったのですが、色々あってお蔵入りになったのでこちらで供養。 ちなみにこれはボツネタ第2弾で、第1弾はこちら。 muumuutech.haten…

KotlinJSでReact Nativeを書いてみたかった話

はじめに この記事は「KotlinJSでReact Nativeを書いてみたかった話」です。つまりできなかった話 であることをあらかじめご了承ください。 では本題。 年末になり会社のAdvent Calendarのネタ探しをしている最中に電波が降りて来た。 KotlinでReact Native…

KotlinとReduxをAndroidアプリに導入した話をしました。

先日自社のエンジニアイベントで「KotlinとReduxをAndroidに導入したら」という話をしてきました。質疑応答や懇親会でいろんな質問をいただいたのでここに残しておきます。 イベント 登壇したのはこちらのイベント。アプリだけでなくバックエンドやインフラ…

Kotlin初心者から抜け出したい?それなら、

Land of Lispを読んだらどうだろう。 (すみません。9割ネタです。) Land of Lisp作者: M.D. ConradBarski,Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発売日: 2013/02/23メディア: 大型本購入: 1人 クリック: 18回この商品を含むブログ (1…

Dexopenerを使ってKotlinで書かれたfinalなclassをmockする話

[2017.7.27 追記あり] 4ヶ月以上前の話の続きです。下書きにずっと眠っていたのですが、諸事情により公開が遅くなってしまった… こちらの記事でAndroidでKotlinのmockつらい〜〜〜 って話をしたら、 muumuutech.hatenablog.com id:tmurakami さんがコメント…

Kotlin 1.1.2-5くらいからSAM変換がちょっと変わってcrashが起きた件

Kotlinのバージョンあげたら既存コードがcrashしたのでちょっと調べてみたメモ。 何が起こったのか kotlin のversionを1.0.5-3から1.1.2-5にあげたら既存コードがcrashするようになった。具体的には、こんな感じのIllegalStateExceptionが吐かれる。 java.la…

Android + Kotlin + Mockito のメモ書き

Kotlin大好きで、Korlin最高だよって言いまくってるんですけど、Kotlinのつらみみたいな部分も残しておかないとフェアじゃないかなと思ったので残しておきます。 Instrument Testがつらい 実機だったりエミュレータ上で実行するAndroid Instrument Testがつ…