Infinito Nirone 7

白羽の矢を刺すスタイル

今年楽しんだビール振り返り

Beer Advent Calendar 2018 3日目です。 今年楽しんだビールを振り返ります。 adventar.org 僕ビール君ビール流星レイディオ 10月末に発売になった僕ビール君ビールの新種。強めの苦味が逆に好み。 中村航氏の小説のタイトルみたいなネーミング OLD ENGINE O…

RxJava において Observable#hide() とは何者か

Observable#hide() の Javadoc にある説明は次の通り。 Hides the identity of this Observable and its Disposable. Allows hiding extra features such as Subject's Observer methods or preventing certain identity-based optimizations (fusion). ... …

ホッ転トリ

TL;DR 実を言うと私はDrivemode, Inc.を退職します。 突然こんなこと言ってごめんね。 でも本当です。 本日が Drivemode, Inc. に籍がある最後の日になります。お疲れさまでした。 次も変わらず Android アプリのエンジニアで、明日からメルペイで働き始めま…

さよなら吉祥寺

大学を卒業してからずっと住み続けた吉祥寺(正確には吉祥寺から北に離れた練馬区のエリア)からついに離れることにした。今の家は広くて設備も整っていて家賃もお手頃なので、およそ考えうる限り通勤時間の短縮以外に引っ越す理由は見当たらないのだけれど…

MotionLayout 内にある RecyclerView のスクロールを制御する

Note この記事はcom.android.support.constraint:constraint-layout:2.0.0-alpha2時点のMotionLayoutについての記述です。 まだアルファ版なので将来的に挙動が大きく変わる可能性があります。 MotionLayout 内にある RecyclerView をスクロール可能にする M…

MotionLayout の MotionScene で touchAnchorId に指定した View のクリックをハンドルしたい

MotionLayout は ConstraintLayout 2.0.0 から導入された、スワイプジェスチャやクリックジェスチャで View をキーフレームアニメーションさせるときに使うレイアウトです。キーフレームアニメーションは<MotionScene>をルートとする XML リソースで記述でき、ジェスチャ</motionscene>…

Android の Picture in Picture と Window Focus

TL;DR 他のアプリが Picture in Picture モードに入り、そのオーバーレイ表示が自分のアプリに重なる場合、自分のアプリのActivityやViewのonWindowFocusChanged(boolean)は次の順で計3回呼び出されます。 onWindowFocusChanged(true): タスクが他のアプリか…

Android O からの Service を foreground で動かすときのベストプラクティス

Android Oreo から、Oreo 以上のバージョンをtargetSdkVersionにしているアプリケーションがForeground Serviceを起動するには、Context#startForegroundService()によるサービスの起動とService#startForeground()による通知の表示の両方を実行しなければな…

岐阜について feat. 田舎fm

田舎fm の出演回で自分の出身地である岐阜について話しました。 komatatsu.github.io そして現在の最新回でまたまた岐阜の話題がでました。 komatatsu.github.io 自分は岐阜の西の方で、最新話では岐阜の東の方の話がでてきて、岐阜の東西と北の認識に分かり…

Firebase Storage にある複数の Bucket の Rules を Git で管理するための手順

Firebase Storage には Firestore や Realtime Database のようにルールの設定があり、JSON でパスやファイルごとに読み書きの権限設定を変更できます。 Firebase Storage は複数のバケットを作ることができます。おそらくは保管するファイルの用途ごとに使…

初キャンプ@ふもとっぱら

つい最近はやった某キャンプアニメにあやかって、ゆるくキャンプしようぜ!と知人と話しをしていて、ふもとっぱらキャンプ場でキャンプをしてきました。 ふもとっぱら - fumotoppara.net - ふもとっぱらは、本栖湖の南、富士山麓のなかでも静岡県側にありま…

Mirage Solo で開発者オプションをいじるときは「ポインタの位置」を有効にしない

そろそろ自分も VR デバイスを一個くらい手元において遊べるようにしておこうとおもって、先週末 Mirage Solo を注文しました。Amazon 先生がサッと発送してくれたので週末にシュッと受け取れました。 開発者なので電源投入してすぐ開発者オプションを ON に…

箱根を登ってインターハイしてきた

先週は金精峠に行ったので、今週は箱根です。 はじめての箱根、聞いていたとおりのキツさで、かつ距離を勘違いしていて終盤ヘタってしまいました…… 国道1号最高地点の標識を見てだいぶ満足しましたが、芦ノ湖に降りてからは「このまま小田原に降りてしまって…

GWのシメに日光から金精峠を登ってきた

ゴールデンなウイークの間にどこかへ輪行して山に行こうという計画は前々からしていて、本当は渋峠に行きたかったんですが、火山活動の関係で長野県側からしか登れなくなってしまいました。長野側から登るのもいいんですが、ゴールデンなウイークでみんな電…

桜のAACR完走

今年はじめて桜の AACR(Alps Azumino Century Ride)に参加しました。 これまではヒルクライムが中心だ、長距離ライドのイベントはツールド東北以来ということになります。 車で行くか電車で行くか悩みましたが、150km走ったあとに運転するのはヤバそうだな…

Robolectric を offline mode で動作させる

Robolectric でテストを実行すると、初めの方のテストでなにかを Maven Central からダウンロードしているログが出力されることがあります。これは Robolectric がテスト実行時に必要な依存をダウンロードしているもので、Android SDK のなかのクラスを JVM …

Android Plugin for Gradle 3.1.0 で The SourceSet 'xxx' is not recognized by Android Gradle Plugin

Android Studio が 3.1.0 になったのに合わせて Android Plugin for Gradle も 3.1.0 が出ました。 Android Plugin for Gradle Release Notes | Android Studio リリースノートには記述がありませんが、alpha のころから存在する問題として、3.1.0 にあげる…

割とよくあるパターンでリアディレイラーを壊す実績を解除した話

おそらくスポーツ自転車を買った人なら誰もが、納車のタイミングでお店の人に説明を受けるであろう「ディレイラーハンガーが曲がる」パターンでリアディレイラーが昇天してしまう体験を通勤チャリに乗って帰宅している最中に体験したのでメモしておきます。 …

29歳になったので

いえーい!🍖たべるぞ! 干芋のリストはこちらです。https://www.amazon.jp/gp/registry/wishlist/2Y880HXG49I0M

CircleCI 2.0 で GCR に置いた private な Docker イメージを使ってビルドする

今日は Wercker がビルドキューを無限に積んでビルドしてくれなくなってしまったので、急遽 CircleCI 2.0 を試すことにしました。 メモリが足りずに OOM Killer にデーモンが殺されたり、desugar 中になにかが失敗しているようですが、とりあえず一番大事な…

DroidKaigi 2018 やっていきed

「やっていき」だと未来の話だけど、やっていきが完了した話はどうやって言うのがいいか分からなかったので、edをつけてみました。 はい。DroidKaigi 2018 が無事に終わりました。自分の参加歴はスピーカーとしては 2 回目・スタッフとしては 4 回目(フル参…

DroidKaigi 2018 Day 2 Room 5 で"詳解 Android Auto"という発表をします

droidkaigi.jp 気がついたら仕様の総ページ数が 200 を超えていて、超大作でお送りいたします。 Android Auto という取っ掛かりではありますが、幅広く応用の効く話を中心に据えていて、というか Android Auto の実体がほぼそういう潰しの効くフレームワーク…

ProductFlavor ごとに apply from で読み込む外部 Gradle ファイルを切り替える

flavor1 と flavor2 という 2 つの productFlavor があり、flavor ごとに名前が同じで値の異なる変数を使いたいとき、flavor1 向けの変数を定義した flavor1.gradleと flavor2 向けの変数を定義した flavor2.gradleを用意したとして、どのように apply from …

BuildType と ProductFlavor のマトリクスで BuildConfigField や ManifestPlaceholders を生成したい

BuildConfigField は、BuildConfig という自動生成されるクラスに定義する定数をビルドスクリプトから制御する仕組みです。 そしてもうひとつ、ManifestPlaceholders は AndroidManifest のプレースホルダーに放り込む値をビルドスクリプトから制御する仕組…

あけましておめでとうございます

今年も例によって浅草寺へおみくじを引きに行ってきました。 何一ついいこと書いてないのに凶じゃないのかよ!!

2017年振り返り

はやりのビッグウェーブ*1に乗って2017年を振り返りたいと思います。 ちなみに、1月のツイートを遡るだけでも随分な数になったし、何を思ってそれを言ったのかよく覚えていないものもたくさんあってちょっと後悔しています。 1月 Android でうるう秒見てみよ…

RxEither を RxJava2 に対応してみた

もともとのモチベーションとして、Java で Either を扱いたくて色々探していました。 そのなかで RxJava との運用もカバーしてくれている RxEither を見つけたのですが、あいにく RxJava 1.x で止まっていたので RxJava 2.x に対応させてみることにしました…

C93 Android モダンプログラミングに RTL 対応の章を書きました

明日から C93 が始まりますね。TechBooster から Android モダンプログラミングという新刊が出ますが、そのなかにある RTL 対応の章を担当しました。 techbooster.github.io この章を見れば RTL 対応に必要なことが大体網羅できるはずです。よくあるレイアウ…

諸君、私はAndroidが好きだ

諸君、私は戦争が好きだ: wids.net 作ってみました。 諸君、私はAndroidが好きだ 諸君、私はAndroidが好きだ 諸君、私はAndroidが大好きだ クラッシュが好きだ ANRが好きだ 機種依存問題が好きだ 激安端末が好きだ 売れないタブレットが好きだ アメリカで 日…

Canon EOS 6D MarkII を持って散歩した

前まで使っていた EOS Kiss X3 が天寿を全うしまして、新しいのほしいなと思っていたときに神楽坂つむりさんのブログ記事を読んでフルサイズよさそうだな?と思っていたところ、フルサイズはいいぞという声をTwitterでも頂いたので、自転車もあることだしあ…