くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

Azure DevOps で Android Self Hosted Build Agent をセットアップできるスクリプトがある程度できた。

Azure DevOps ってサービス知ってますか? VSTS とか言われてたやつです。 CI サービスとか タスク管理、Wiki とかの開発で必要そうな奴が詰め合わせになった奴。 Circle CI + Github + Trello とかが合わさったサービスです。(正確には違う) モバイルDevO…

集中したいときにおすすめ!厳選作業用BGMまとめ(新幹線と航空機編

たまによく数時間集中してやらなければいけないことがありますよね。 私は、10月とかありました。 作業用BGMと言いつつ結局 集中できないわけのわからない音楽 を流すと返って効率が下がってしまいます。 その中で集中するのにちょうど良いBGMが存在したの…

Android アプリで現在デバッグ実行中かを判定する方法

Android アプリを作っていて、現在デバッグ実行されているかを確認したいことはたまによくあると思います。 BuildConfig から取得すればいけ感じな。 コード BuildConfig.DEBUG 情報元 stackoverflow.com

Extended FAB っぽいものを実装してみた

Extended FAB を実装するモチベーションはFAB をよりユーザーにわかりやすく実装するため 普通のアイコンだけのFAB だけで実装してましたが、 「アイコンだけでは何をするためのものかすぐに理解して使い始めることができない」という問題が出てきました。 …

Mockito で void なメソッドをモックする

Mockito はいいぞ〜 さて、 void なメソッドを mock するにはどうすれば良いのかってのは少しハマったので書いてきます〜 解決方法 doNothing().when(targetMock).targetMethod() 的な感じで実装してくといけました〜。 コードで解説 val keyword = "hello w…

BottomAppBar で menu を表示する

BottomAppBar で menu を表示するためには、以下のメソッド読んであげれば表示できます。 {BottomAppBar への参照}.replaceMenu(R.menu.ResourceFileName)

Android の Fuel + Moshi + Kotlin Coroutine でいい感じにする拡張関数を書いた

Fuel には、 mochi、 Kotlin Coroutine といい感じに連携してくれる機能があります。 けど、 Moshiと Kotlin Coroutine を組み合わせていい感じに呼び出せる関数は存在してないです。(まぁ、標準で存在してても依存関係考えたら載せるべきでないのはそう)…

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/databinding/DataBinderMapperImpl; ってエラーがでた

エラーメッセージ java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/databinding/DataBinderMapperImpl; 解決策 dataBinding { enabled = true } databinding の設定を AppModule にし忘れてただけですね.... マルチモジュールで作ってると…

Invoke-customs are only supported starting with android 0 --min-api 26 ってエラーがでた

ライブラリの追加をしたら下記のようなエラーが出ました。 そこで、解決策を書いていきたいと思います。 Invoke-customs are only supported starting with android 0 --min-api 26 解決策 以下を追加した Module の Build.gradle へ追記したら解決しました…

Firebase SDK on Nodejs で Firebase App named '[DEFAULT]' already exists (app/duplicate-app).' ってでた。

Firebase SDK を利用して Nodejs で適当なアプリを書いてたら以下のようなエラーが出ました。 エラーメッセージ Exception: Worker was unable to load function uploadMeetupListToFirebase: '[DEFAULT]: Firebase: Firebase App named '[DEFAULT]' already…