2019-01-01から1年間の記事一覧
github.com モチベーション BaseKeyframeAnimation.getCurrentKeyframe()は、アニメーションのプログレス(0から1の実数で表されるアニメーションの進捗度合い)の値にあうKeyframeを返すメソッド。このKeyframeはsetProgress()の際にキャッシュされている。…
仕事で作ったクラスの構造がよくなかったのでそのその反省を少しまとめてみる。 Adapterとは別にLayoutManager的なものも作る必要があったので、RecyclerViewの構造を参考にして似たようなものを作ることにした。RecyclerViewをなんとかして使えるようにすれ…
処理時間の性能改善をするとき、いつもはまずどこに伸びしろがありそうかあたりを付けるためにメソッドトレースのFlame Chartを見ている。LottieSampleの場合は大体setProgress()かdrawかそれ以外(プログレスバーとかログ出力)に分かれていて*1、これを見…
これです github.com ChangelogにはMinor performance optimizationと書かれていることからもわかる通り全然大したことない改善なんだけど、今やっているプロジェクトではこういうのも馬鹿にはできないというレベルで厳しいので取り込んでもらえたのがありが…
今回のモチベーション デザイナーさんにアプリのスクショを送ったらlottieのパーツの色が少し濃いように見えるという話になった lottie-android: version. 3.0.7 問題のパーツは、透明度の指定されたレイヤーがいくつか重なっているもので、絵が重なっている…
モチベーション Androidでは画面のパーツは全部のオブジェクトへの参照を持つのでリークさせたくない MVCとかMVPはCやPがVへの参照を持つので、とくにAndroidでは管理をきっちりやらなければならない その一方で、ActivityやFragmentのライフサイクルが複雑…
ある日突然怒られたりするやつです。ライブラリを新しく入れたりアップデートしたときとか。 stackoverflow.com android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { j…
コールバックがなくて値が変わった時にそのことがわからないようなプロパティを観測可能にしたい。KotlinのChannelの機能を使ってそれっぽい仕組みを作ってみた。Channelは現時点(kotlinx-coroutine 1.1.1)ではExperimental。 Androidで動画や音楽を再生す…
AndroidのValueAnimatorでワンショットのアニメーションを実装していたところ、動いている最中に止めたくなった時に 最初の状態に戻したい 最後の状態まですっ飛ばしたい ということがあって少し考えた。 androidのanimation、cancel呼んだら最初の状態に戻…
Retrofitを使って定義したREST APIのinterfaceは何かで包んでからRepositoryとかに渡すのがいい、という話。Retrofitに限らず何か特定ののREST APIにアクセスするライブラリを使うときにも有効ではないかと思う。そのようにするモチベーションを次の通り述べ…
github.com 曰く、縦書きの時に使うような縦長の記号(二文字以上を繰り返すときの記号など)のために高くなっているらしい。issueを読み進めていくとAndroidならTextView.setIncludeFontPadding(false)を使うといいよ!と書いてある。これを指定することで…
画面に20個ぐらいアニメーションするビューがあってなんとかして60fps出すためにいろいろやったことをメモしておく。 エミュレーターでやってたのが全部悪い(実環境で動かしたらわりとすんなり出た)というオチなので参考になるかはわからない。 前提 Value…
UIテストをやる時にMockWebServerを使ってサーバの挙動をモックしていると、レスポンスをちゃんと待ち構えないとテストが失敗することが稀によくある*1 カジュアルにIdlingResourceを使ってカジュアルに待てるようにしたい テストを書くためのハードルを下げ…
droidkaigiでマルチモジュール関連の発表をたくさん聞いて、やってみたくなったのでやってみている。 github.com データレイヤーを単に外に出すところまではなんとなくできたけどそこから先のところでうまく行かなかったり腑に落ちたり落ちなかったりしてい…
前提 Javaのプロジェクトに徐々にKotlinのコードを増やしていっている Javaのテストコードではmockitoを使ってモックオブジェクトを作成していた テスト対象のクラスに注入するクラスがKotlinに変わった Kotlinのクラスはmockitoではそのままモックできない…
adocで書いていたドキュメントをgradleでpdfにビルドできるように色々やりました。今回のミソはjrubyのgradle pluginを使うとgemを使えるようになるということです。 asciidoctorのプラグインと依存関係のgemを使えるようにするために、次のプラグインをプロ…
かねてより気になっていたoboeのコードラボをやってみた。とりあえず最後まで流してみたという程度で、詳しい動きは追えていない。そこまでのメモということで何卒ご容赦を。 Build a Musical Game using Oboe IllegalStateException: Failed to find Build …
年末、android-ktxをプロジェクトに入れようとして思わぬところで躓いたのでメモしておく。現象としては、Android 5.0以上が動いているエミュレータでは問題ないのに、4.4のエミュレータではアプリが起動するときにクラッシュしてしまうというもので、LogCat…
毎年恒例のやつを今年もやります。タイトルの並び順は50音順です。カッコ[ ]つきのものは録画したけどまだ見てないというやつです。必ず見るのでいつかは外れると思います。 冬クール ヴァイオレット・エヴァーガーデンとよりもいを見て毎週泣くおじさんと化…