アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

2022-01-01から1年間の記事一覧

jackson2.14からAndroid8未満はサポートしなくなったので、GitHub dependabotでjackson2.13.xより上げないように設定する

以下でminor versionをスキップする事ができます。 version: 2 updates: - package-ecosystem: "gradle" directory: "/" schedule: interval: "daily" ignore: # 2.13はAndroid7(SDK 24)以降対応 # 2.14はAndroid7(SDK 26)以降対応 # https://github.com/Fas…

【GitHub Actions】IssueやPRが作られたら自分をアサインさせる【GitHub API】

要件 PRがOpen、ReOpenしたら動作する IssueがOpen、ReOpenしたら動作する 開いた人自身をアサインする 既に誰かがアサインされている場合はアサインしない 一応デバッグ用にAPIのレスポンスを吐き出す コード name: Assign Author on: issues: types: [open…

【Compose】Pickerを作成する(ほぼFlingBehaviorのカスタマイズ)

こんな感じのNumber Pickerを作りました。 State まずは無難にStateの定義。 State経由でPositionの変化を受け取ります。 @Composable public fun rememberPickerState(): PickerState { return remember { PickerState() } } public class PickerState { pu…

GraalVM + Kotlinでネイティブコンソールアプリを作る

GraalVM + Kotlinでネイティブコンソールアプリを作る bashでshell scriptを書くのが大変。使い慣れた言語のKotlinを使ってスクリプトを実行したい。しかし、Java環境が入れられない制約がある場所で実行したいという状況になりました。 最初に思い浮かんだ…

【Ubuntu】DockerのCLIだけを入れて、RemoteDockerを指定する。

こちらを参考に docker-ce-cli だけを入れます。 https://docs.docker.com/engine/install/ubuntu/ DOCKER_HOSTを指定します。 export DOCKER_HOST=0.0.0.0:2375 docker version を実行して Server: が表示されればOKです。

デバッグ用に低速Wi-Fiを作った

低速回線によるアプリとサーバー側の不整合による不具合が見られたので、低速Wi-Fiを作ろうとなりました。前から作ろうとは思っていたのですが、なかなか面倒臭そうで作っていませんでした。 最初に思い当たったのはこの記事なのですが、ここまでして作る手…

Kotlin/JSでKotlin1.7系にした場合、Webpack5系に上げないと動作しなかった。

Jetpack Compose Webを使いたくてIntelliJのNew Projectでテンプレートから作成しましたが、 Kotlin1.6+Compose1.1 だった為、 Kotlin1.7+Compose1.2 に上げた時に問題が発生しました。 これは開発では問題なくて ./gradlew jsBrowserProductionWebpack 等で…

detektとTwitter Compose Ruleを導入する。

rootのbuild.gradleに以下を追加する。 plugins { id("io.gitlab.arturbosch.detekt") version("1.22.0-RC2") } allprojects { apply plugin: "io.gitlab.arturbosch.detekt" dependencies { configurations.maybeCreate("detektPlugins") detektPlugins("co…

YAMAHA RTXシリーズ設定メモ

使用機器: RTX830 ネットワーク接続はv6プラス固定IPで設定済み。WebUIで簡単に接続できた。 lan type lan1telnetで接続済み。 基本操作 設定時にパスワードをたくさん打つので、そこまで長いパスを設定しないほうが良いなと思っています。設定が終わったら…

はてなブログ備忘録

tableをスクロールさせる。 <table style="overflow-x:scroll; display:block;"> <tr> <td></td> <td></td> </tr> <tr> <td></td> <td></td> </tr> </table>

【Compose】コンテンツを削除して高さが変わる時に高さの変化をアニメーションさせる

Columnの中の途中のコンテンツを消す時に、いきなり高さが0になるのではなく、アニメーションさせて消します。 これは、 AnimatedVisibility を使用すればいいのですが、中のコンテンツを表示させるためのものがnullableであり、nullになったら消したい場合…

WSL2でDocker Server(Engine)を立ち上げて、Windows側から使用する

Ubuntu-22.04 を使用します。今回distribution名はdockerにしました。 Dockerをインストール まずはDockerの公式ガイドに従い、Docker Engineをインストールします。 https://docs.docker.com/engine/install/ubuntu/ 起動時の設定 Boot時にsystemdを起動す…

GoLandでprivateリポジトリを参照する

Go

Git側 git config --global url."git@github.com:".insteadOf "https://github.com/" GoLand側 GOPRIVATE=github.com/<Org></org>

proto3でのnullを表す

proto2でoptionalがありましたが、proto3でoptionalが削除されました。 messageはデフォルトでnullableですが、scalar型はデフォルトでnon-nullの為、nullableを表すには以下のようにmessageでラップする必要がありました。 message Hoge { google.protobuf.…

JVMのGraphQLのサーバー側の実装に使うライブラリを選定する ~ graphql-javaの実装方法

前回の記事 アプリのバックエンドをREST APIからGraphQLに移行する事を検討する。 - アプリ開発備忘録 GraphQLのサーバー側の実装に使うライブラリについて考える 前回の記事を踏まえ、まずはサーバー側で使用するライブラリから検討していきます。 主なライ…

アプリのバックエンドをREST APIからGraphQLに移行する事を検討する。

この連載記事について 今はREST APIを使用しているがGraphQLを検討する。 サーバーについてはJVM-Kotlinを対象とする。 既存の実装を利用しながら、少しづつ移行していくことを前提としている。 クライアント側の実装は主にAndroidでの話がメインとなる。 ラ…

【Jetpack Compose】等幅・幅が足りない場合はスクロールさせるタブを作る

作るもの 収まる場合は等幅 収まらない場合は横スクロールさせる。なおかつ等幅 使用するもの Jetpack Composeは1度しかmeasureを呼ぶ事ができない制約がありますが、レイアウトにとある高さを与えた場合、無限の横幅があると仮定してレイアウトが変わらない…

QRコードを文字列で構成する

目標 GitHubのIssueに貼って読み込めるQRコードを生成する デンソーウェーブの「クルクルQRコードリーダー」で読み込めるQRを生成する https://www.denso-wave.com/ja/system/qr/product/reader.html 実装 言語はKotlinで実装しましたが、生成QRコードの2値…

【GitHub Actions】if: always() not working with Composit Action.

Cannot be used due to limit. How to start using reusable workflows with GitHub Actions | The GitHub Blog

【Google Cloud】サービスアカウントでAPIを叩く【Firebase】

FirebaseのAPIをサービスアカウントを使って、Googleのライブラリ無しで呼び出します。 参考URL: https://cloud.google.com/functions/docs/securing/authenticating#exchanging_a_self-signed_jwt_for_a_google-signed_id_token サービスアカウントを作る h…

Kotlinの継続的IndentをIDEAとktlintでの違いを揃える

違い 以下がIDEAです。 8つスペースになっています。 type != Hoge.Fuga.A && type != Hoge.Fuga.B && type != Hoge.Fuga.C && type != Hoge.Fuga.D && type != Hoge.Fuga.E ktlintが以下です。 4つスペースになっています。 type != Hoge.Fuga.A && type !=…

【Jetpack Compose】CompositionのSkippableとLayoutフェーズでのパフォーマンス最適化

はじめに Jetpack Composeは変更があった部分だけ、再計算(ReComposition) されます。どのようなときにReCompositionされて、どのようなときにCompositionがSkipされるのかを知っていると、最適なパフォーマンスを得られる手がかりになります。 Jetpack Comp…

【Jetpack Compose】derivedStateOfとremember(key)の使い所

派生Stateである DerivedState を作成する derivedStateOf の使い所についてです。 基本的な使い方 rememberの中で derivedStateOf を使います。その中で State を読み込みます。 これにより、 Stateの counter1 が変化した時にだけ計算が行われます。 var c…

【Deep Jetpack Cpmpose】ReadされたStateObjectを把握する

とあるLambdaの中で読み込まれたStateObjectを把握します。 環境 Jetpack Compose Desktopですが、Androidでも動きは同じはずです。 Runtime 1.1 コード Snapshot.observe で読み込まれたStateObjectを把握する事ができます。 derivedStateOf の内部で使われ…

【Jetpack Cpmpose】スキップ/起動可能性と@NonRestartableComposable【パフォーマンス最適化】

Composableの状態 Composable関数には3つの状態があります。 State1 State2 State3 skippable ○ restartable ○ ○ https://github.com/androidx/androidx/blob/403b6d0032c289ed6e65a1c75f137c07aedd220f/compose/compiler/design/compiler-metrics.md skippa…

【Jetpack Compose Android】LayoutInspectorでRecomposeの状況を見る

LayoutInspectorを使って、Recomposeされているタイミングと場所を把握します。 LayoutInspectorを開きます。 設定 Show Recomposition Counts にチェックを入れます。 Show Recomposition Counts が無い場合は compose runtime のバージョンが 1.2 以上が必…

【ACCESS_COARSE_LOCATION】おおよその位置情報にちゃんと対応する

詳細な位置情報 ACCESS_FINE_LOCATION を取得しようとしても、 ACCESS_FINE_LOCATION ではなく、大まかな位置情報である ACCESS_COARSE_LOCATION が許可される場合があるので、しっかりチェックしましょう。 MainActivity.kt private val launcher = object …

【Jetpack Compose】プレビュー画面では別のものを表示する【isInEditMode】

従来のAndroidのViewでは、プレビュー中なことは isInEditMode でわかります。これのCompose版です。 コード 以下でわかります。 val runningInPreview = LocalInspectionMode.current 使い所 GoogleMapは記事を書いている現状で、プレビューが働かないので…

【Compose Desktop】フレームなしウィンドウを移動させる【1.1.1】

こちらで紹介したので 0.3.0-build150 のバージョンでしたが、 LocalAppWindow が無くなったので、代わりにWindowに与える引数の、WindowStateを使います。 https://matsudamper.hatenablog.com/entry/2021/02/08/025214 コード Compose Desktopのバージョン…

【Jetpack Compose】CoordinatorLayoutのCollapsingを作る

こういうのを作ります。 コード @Composable public fun CollapsingLayout( modifier: Modifier = Modifier, scrollOffset: () -> Int, content: @Composable () -> Unit ) { Layout( modifier = modifier.clip(RectangleShape), content = content ) { meas…