CatHand Blog

アプリ開発やMac弄り

Android

gStat

gStatというアプリをリリースしました。 GitHub Actions のステータスを表示したり、実行したりできるアプリです。 play.google.com 最近 CI/CD 環境をBItriseからGItHub Actionsに移行しています。BitriseはbStatというアプリをリリースしていましたが、そ…

Github Actionsでビルドナンバーにオフセットを設定する

Github Actionsでいいかんじのビルドナンバーをつけたいとき、 github.run_number が使えます。これはworkflowの実行番号を表しています。 これをそのままではなく、オフセットをつけたい場合は以下のようにコマンドでできます。↓の例では +2000 しています…

Jetpack Composeで滑らかなViewPagerを作成する

Composeで横にページングするViewを実現したいとき、AccompanistのHorizontalPagerを使います。 google.github.io ですが、HorizontalPagerはページごとにバウンスするような挙動になっており、連続してスワイプすると引っかかるような動きになります。(し…

bStat Android

Bitriseのステータスを表示したりトリガーをかけたりするアプリ、bStatのAndroid版が公開されました。 play.google.com SwiftUIのマルチプラットフォームでiOSとmacOS向けに作成していたものをFlutterで書き直しました。なのでiOS / macOS版も同じUIでアップ…

Failed to commit edit, error: googleapi: Error 400: Prices are missing for the following billable countries: GI., badRequest

Google Play API でバイナリをアップロードすると表題のようなエラーが返る場合があります。 Failed to commit edit, error: googleapi: Error 400: Prices are missing for the following billable countries: GI., badRequest これは、有料アプリで国別の…

Navigation ComposeとSafe Argsを同時に使うとビルドエラーになる

buildscript { dependencies { classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5" } } plugins { id 'androidx.navigation.safeargs.kotlin' } の環境で dependencies { implementation "androidx.navigation:navigation-compose:2…

Jetpack ComposeでminifyEnabled trueにするとクラッシュ

最近はJetpack ComposeでAndroidアプリ作っているんですが、 minifyEnabled true にするとCompose内でクラッシュする現象に悩まされました。 デバッガとかで見れないので、Firebase Crashlyticsでログを見ると、以下のようなExceptionで死んでいました。 Fat…

BitriseからDeployGateへデプロイする

BitriseからDeployGateへデプロイするのは DeployGate Upload ステップがあるので簡単そうです。 ですが、既存のDeployGateアプリの配布ページへデプロイ設定する際にいくつかハマった部分があるのでメモしておきます。 DeployGate: API Key API Keyには、De…

AndroidのOpenCVで

More than one file was found with OS independent path 'lib/x86/libc++_shared.so' のようなエラーが出る時。 アプリモジュールの build.gradle に android { packagingOptions { pickFirst 'lib/x86/libc++_shared.so' pickFirst 'lib/x86_64/libc++_sha…

Rakuten Mini

1円だったので買ってみました。 network.mobile.rakuten.co.jp なんかキャンペーンで月額も1年間無料な上、ポイントキャッシュバックでむしろプラスになるとのことで話題になっています。 楽天モバイルは縛りも無いっぽいんですが、何か落とし穴無いんですか…

MyScriptで数字だけ認識させたい

MyScriptという文字認識ライブラリがあります。 developer.myscript.com 認識結果を数字に絞りたい場合、カスタムリソースを作成すると実現できます。 ↓で Subset knowledge (SK)リソースを作成します。 https://developer.myscript.com/support/recogniti…

MyScriptの設定方法

MyScryptという手書き文字認識ライブラリがあります。 developer.myscript.com 各種設定方法がすごくわかりずらいのでメモ。 OSはAndroidです。 日本語を認識できるようにする 日本語のAssetを↓からダウンロードします。 https://developer.myscript.com/sup…

Androidでファイルオープン/セーブダイアログを出す

val intent = Intent() .addCategory(Intent.CATEGORY_OPENABLE) .setType("*/*") .setAction(Intent.ACTION_GET_CONTENT) startActivityForResult(Intent.createChooser(intent, "Select a file."), REQUEST_CODE) でファイルオープンのActivityが起動しま…

Androidアプリでリリースビルドだけクラッシュする問題

MyScriptという手書き文字認識のライブラリがあります。 developer.myscript.com Androidのライブラリを使っていたのですが、リリースビルドだけクラッシュする問題に悩まされていました。 MyScriptのサンプルアプリはクラッシュしない デバッグビルドだとク…

Android Studio のエディタが重い

Android Studio が重すぎて困っていました。 AndroidStudioのエディターが重すぎて1文字打つ毎に固まるかんじ。— nya (@cathandnya) 2020年3月12日 いろいろ調べた結果、ディスプレイの解像度をデフォルト以外にしていると重くなるようです。 ディスプレイ解…