アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

gradle dependencies treeの読み方

facebook SDKを含むAndroidアプリの依存を解決してみました。 省略 (*) 既に別の場所で出力されているので子の依存を省略 推移的依存解決 -> 別のライブラリ等の定義で新しい物が使用されていたのでそちらを使用する 出力された依存グラフ +--- com.facebook…

【仕事用プロファイル】ユーザーを指定してアプリをインストールする

Androidは複数アカウントを持てたり、仕事用プロファイルがあったりします。Android Studio(adb install)ではデフォルトで全てのユーザーにアプリが入っていしまうので、コマンドで指定してインストールします。 ユーザー取得 adb shell dumpsys user | grep…

【Windows】Exoplayer Flac Extensionを使う

環境 Windows WSL2 コマンド git clone git@github.com:google/ExoPlayer.git ExoPlayer\extensions\flac\src\main\jni\Application.mk APP_OPTIM := release # APP_STL := c++_static APP_STL := c++_shared APP_CPPFLAGS := -frtti # APP_PLATFORM := andr…

Kotlin1.4の変更点

以下をざっと紹介しいきます。 https://kotlinlang.org/docs/reference/whatsnew14.html SAM変換 Androidで言うと setOnClickListener がよく使っていると思います。 public interface OnClickListener { void onClick(View var1); } JavaのInterfaceで関数…

IntelliJでファイルがテキストファイルとして認識されてしまった場合の修正方法

どうやってこうなってしまったかはわかりませんでしたが、解決方法はわかりました。 バージョンは IntelliJ 2020.2 File | Settings | Editor | File Types Textからそれっぽいものを探して消す。

2020からJetBrains製品の設定ファイルの場所が変わっていた

以前まではユーザーのルート下に生成されていましたが変更されたようです。 ~/IntelliJIdea2019.1 ~/IntelliJIdea2019.2 以下のURLの通りです。 https://www.jetbrains.com/help/idea/configuring-project-and-ide-settings.html#restore-defaults Windowsは…

【kotlinx.serialization】Kotlin/JSでJsonをパース

1.4-M1 で試そうとしたのですが、おそらく、kotlinx.serialization のコード生成部分がうまく動かなかったので 1.3.71 で行いました。 gradleのバージョンは 5.6.1 。 Slackのコマンドのリクエストをパースしてみました。 コード build.gradle.kts plugins {…

Kotlin/JSでpackage.jsonの出力をカスタマイズする。(MPP対応)

Kotlin/JS は Kotlin/JS としてセットアップするか、 Kotlin MultiPlatform Project(Kotlin MPP) としてセットアップするかの二種類があります。 ここでは全体としての Kotlin/JS と、Kotlin/MPP と対になっている Kotlin/JS の表記が混じっています。 基本…

wslにnodeを入れる

WSL

参考 参考というか、ここを見ればおしまいです。 https://docs.microsoft.com/en-us/windows/nodejs/setup-on-wsl2 インストール curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash nvm use node

Windows Package Managerを使ってみる。

インストール Windows Package Manager Client(winget)を使ってみました。GitHubのReleaseからダウンロードしてインストールします。 https://github.com/microsoft/winget-cli インストール前のスクショは取り忘れましたが、こんな感じです。 Package と検…

Windowsでポートのリッスン状況を調べてキルする

調べる 以下のコマンドでポートの状況とプロセス番号を調べられます。 netstat.exe -an -o WSLからgrepすると楽。 netstat.exe -an -o | grep 8080 キルする ※要管理者権限 taskkill.exe /F /pid 0000 タスクマネージャーからやるのもあり。

Javaで外部ライブラリなしでMockをする

Java/Kotlinにて、テストとかで使うのではなく、ちょっとした確認でMockを使用したかっただけでした。それくらいでMockライブラリを入れるのが面倒だったので、ライブラリ無しでMockできないかを検討してみました。 1. Mockライブラリを調べる Mockライブラ…

ESETでログをテキストファイルに出力する

ネットワークのブロック状況を確認して許可設定をするために、ログをテキストファイルに保存すると便利です。 ホーム -> 設定 -> 詳細設定 -> ツール -> ログファイル テキスト方式を有効にするで有効にします。 ネットワークの通信履歴は urllog.txt に保存…

WSL+WindowsのJetBrains製品でSCSSを使用する

一応WSL2を使用しています。 セットアップ sudo apt-get install ruby rubygems ruby-dev sudo gem install sass 設定 Tools -> File Watchersから + でSCSSを追加します。 Programsには wsl.exe を記述します。 デフォルトのディストリビューション以外を使…

【Android】Fragmentを開いたらLogcatにそのFragmentへのコードリンクを表示する

前にこういう記事を書いてデバッグを加速させました。 【Android】Activityを開いたらLogcatにそのActivityへのリンクを表示する - アプリ開発備忘録 よく考えるとFragmentでもできるんじゃないか?と思い調べてみたらできました。 使用する機能 FragmentMan…

【Android】Activityを開いたらLogcatにそのActivityへのリンクを表示する

クラッシュログはコードジャンプでクラッシュ箇所に飛べて便利ですよね。その仕組みを自由に使用できないかなと色々調べた結果、正規表現でやっているらしく、特定の文字列を出力するだけでコードジャンプのリンクを生成できました。 文字列 リンクを表示す…

【MySQL】tinyint(1)はBool値だが、0,1以外も入れられてしまう

tinyint(1) tinyint(1) は明確に公式でBOOLと書いてあります。 BOOL, BOOLEAN | TINYINT | See TINYINT, above as these are aliases for TINYINT(1), currently. https://dev.mysql.com/doc/connectors/en/connector-j-reference-type-conversions.html 数…

Kotlinのdata classでAnnotationとプロパティを一行で書いてフォーマットも乗り越える方法。

要件 これは このように改行させたくないけれど、 これは改行させたいという要件がありました。 Wrap if long Method call arguments Wrap if long が Wrap if long だと以下のようになります。 @JsonProperty( の次から改行されてしまっています。 だからと…

Kotlinで即時実行Delegation

KotlinのDelegation、便利ですよね。プロパティの名前を取得できるという点が便利で、Annotation Processorの代わりに使われたりもします(代替の技術ではないけど)。 紹介する機能 今回はDelegationの Providing a delegate という機能を知ったため、これ…

Windows TerminalでWSLをホームディレクトリで開く

設定を開きます。 jsonのprofilesに以下のような設定があります。 { "guid": "{3092b9ac-06b9-5c04-a123-3f7b1c90c758}", "hidden": false, "name": "develop", "source": "Windows.Terminal.Wsl" } ここに startingDirectory を設定してあげれば良いのです…

WSL2へ外部PCからアクセスする

WSL

※19041.207を使用しました。 WSL2へ外部PCからアクセスするのにかなり苦労しました。一つずつ挙動を追っていきます。 WSL1とWSL2のIPアドレス違い WSL1ではWindowsと全く同じIPアドレスを持っていましたが、WSL2では違うIPアドレスを持つようになりました。…

netsh.exeコマンドでポートフォワーディングしてみる

はじめに 管理者権限で起動したコマンドプロンプトが必要になります。 追加 (v4 or v6) to (v4 or v6)が追加できます。2*2で四種類。 localhost:8081を192.168.0.10:8080に転送するコマンド。 netsh interface portproxy add v4tov4 listenaddress=localhost…

Windows使用者のMacのキーボード設定+

Windowsをメインで使用しているし、今後も使用していきたい。しかし仕事の一部でMacを使用しないといけないので少しでもストレス無く使用するための設定備忘録です。 ミッションコントロール 修飾キー ShiftIt スクリーンショットの影を消す。 defaults writ…

Windows OSからのWSL2の削除と今後のアップデート、Insiderの人の対応

WSL

WSL2を起動すると以下のようなテキストが表示されました。 WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください [process exited with code 4294967295] https://devblogs.micros…

Swift vs Kotlin

暫定。初めてSwiftを書いてみて、ここ必要だなという部分をメモ。 Std Out Swift print("") Kotlin println("") Declaring variables Swift let number = 42 var message: String = "Hello" // let -> NG number = 0 // var -> OK message = "" Kotlin val n…

WindowsでSwiftFormatを使用する

https://github.com/nicklockwood/SwiftFormat ビルド git clone https://github.com/nicklockwood/SwiftFormat cd SwiftFormat/ swift build -c release 以下にswiftformatがあるのでPATHを通しておきましょう。 cd .build/release/ 使用 以下のファイルに…

WindowsでSwiftのサジェストを使用する

サジェストを使用するにはLanguage Server Protocol (LSP)を利用する。 MSが主導している、サジェストとかを共通のInterfaceで提供しよう的なプロジェクトです。 https://microsoft.github.io/language-server-protocol/ LSPのビルド iOSは公式で用意してい…

WindowsでSwiftのビルド環境を作成する

WSL2のUbuntu 18.04.4 LTSを使用しました。 Swiftのセットアップ 以下に従う https://swift.org/getting-started/#installing-swift 依存のダウンロード sudo apt-get install clang apt update, apt upgradeしておくと良い。していないとパッケージが足りな…

WSLでVS Codeを入れると

WSL

ダウンロードはこちらから。 https://code.visualstudio.com/docs/setup/linux wget https://update.code.visualstudio.com/latest/linux-deb-x64/stable mv stable stable.deb sudo apt install ./stable.deb どっちが起動する? 通常、codeと入力するとWin…

KotlinのMapのKeyについて

MapのKeyって文字列とか数値とかしか使ってなかったけど他のdata classとか使いたいなとなったので調べた。 確かめる 何も考えずdata classを使う ちゃんと直感的に動く data class MapKey(val key1: Int, val key2: Int) fun main(args : Array<String>) { // {MapK</string>…