アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

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…

Macの設定

マウス スクロールの加速度を消す。 defaults write .GlobalPreferences com.apple.mouse.scaling -1 キーボード ミッションコントロール 修飾キー ShiftIt スクリーンショットの影を消す。 defaults write com.apple.screencapture disable-shadow -boolean…

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>…

jitpackを使ってAndroidライブラリを公開する

構築ガイド https://jitpack.io/docs/BUILDING/ main以外に好きな名前でモジュールを作成。 そのモジュールのbuild.gradleに以下を追加 apply plugin: 'maven' group = 'com.github.YourUsername' おしまい。

koinでSavedStateHandleを使用する。

結論 module { viewModel { (savedState : SavedStateHandle) -> StateViewModel(savedState) } } class StateViewModel(savedState : SavedStateHandle) : ViewModel { } val viewModel by viewModel<StateViewModel> { parametersOf(Bundle) } parametersOfでBundleを渡す</stateviewmodel>…

darknetをWindowsでビルドしてYOLOv3をPythonで使用する。

CUDAは10.0、cuDNNは7.0、OpenCVは3.4.9を使用。既にOpenCVはビルドが終わっていて、CUDAとcuDNNの設定も終わっているものとする。 VS2017も入れておく。2019だとOpenCVのビルドで躓く可能性がある。 OpenCVビルドした時の記事 https://matsudamper.hatenabl…

ViewBindingUtil+Kotlin Delegationを公開しました。

ViewBindingUtilを公開しました。 DataBindingのようなDataBindingUtilが無いので作りました。 DataBindingUtil DataBindingUtil | Android Developers ViewBindingUtil DataBindingと違ってViewBindingはViewDataBindingとかを継承していないのでリフレクシ…

WSL2でJetBrains ToolBoxを起動する

WSL

準備 WSL1では動かないので注意です。(一応動かせばするのでエラー文に従ってください) Xの準備は終わっているものとする。 https://matsudamper.hatenablog.com/entry/2020/01/06/180037 実行 WSL1からWSL2へのコンバート WSL1の場合は。 wsl --set-versi…

WSL2でX Window Systemを使用する。

WSL

X ServerをWindowsに入れておきます。自分は有料のX410を使用しています。無料だとVcXsrvがあるようです。 Microsoft Storeから入れられるのと、購入時はX410の方が安定していたのでX410を使用しています。(今は知らない) X410 - X Server for Windows 10 - …

WSLでimport、export、デフォルトユーザー名を変更

WSL

WSLの環境はimport、exportができ、Windowsの標準機能とコマンドで簡単に環境を戻したり、複製したりできるのが便利です。 エクスポート 以下のコマンドでエクスポートします。 wsl --export [distribution_name] [file_name].tar インポート 以下のコマンド…

AndroidStudio3.5からのNDKビルドの変更点

exoPlayer flac extensionを使用するプロジェクトをいつも使っているPCではない別のPCでビルドしようとしたら、ビルドできなくなっていました。ということでNDK周りを調べてみました。 エラー文 Execution failed for task ':exoplayer-extension-flac:strip…

【Android】ViewBindingの使用から応用

ViewBindingがもうすぐStableになるので使用してみました。ActivityやFragmentの最新版との組み合わせを書いていきます。 公式ドキュメントはこちらになります。 https://developer.android.com/topic/libraries/view-binding 使用準備 build.gradleにViewBi…

Bitmapから暗黙的Intentでのシェアまで

Android Q時点のコードです。 Bitmap->Uri class ImageRepository( private val application: Application ) { private val IMAGE_PATH = "image" private val imagePath = application.getFileStreamPath(IMAGE_PATH).apply { // シェアのために一時的に保…

mitmproxyで通信を書き換える

アプリをテストする際にテストサーバーが用意されていないと通信を書き換えるなどしなければなりません。 そのような時にmitmproxyを使います。 mitmproxyの利点 Pythonでスクリプトを書くことができます。GUIとか独自の形式とかではなくプログラムを書くこ…

KotlinをGradleでビルド

kts編 https://matsudamper.hatenablog.com/entry/2021/11/27/070504 gradleでビルドする時に以下のように書けというのが多いですが動かなかったので調べました。 既存コード jar { manifest { attributes 'Main-Class': 'net.matsuda.MainKt' } from { conf…

IntelliJ内でJDKのインストールを完結する

プラグイン 「JB SDK Bintray Downloader」プラグインを使います。 使い方 Shift二回連打かCtrl + Shift + Aで「Get JB SDK」と検索して実行します。 バージョンを選択してダウンロード、インストールを実行します。 設定 Project Structureにて設定を行いま…

【Python】No module named keras.preprocessing.image

エディタ上では依存が解決できているが、実行時にエラーになる。 コードジャンプしていくと、内部でPILを読んでいるようなのでPILを入れる。 Anacondaを使っているので。 conda install -c anaconda pillow

PyTorchインストールでSafetyError: The package for cudatoolkit

問題 こんなエラー。cuda10.1入れてるのが良くないのかなとか思って直したりした。 pears to be corrupted. The path 'Library/bin/cublas64_100.dll' has an incorrect size. reported size: 67318784 bytes actual size: 37617664 bytes 解決 けどこれで解…

【Android】Room 2.1の更新点

I/Oセッション youtu.be Coroutineのサポート 関数にsuspendと付ける事でCancelableなコードが生成されるようになります。 全文検索のサポート SQLiteの拡張機能である、全文検索を利用できるようになります。 EntityにFTS4拡張と使用することを書きます。 …

Android Studio 3.5からのDataBindingの進化、3.6からのViewBinding

Viewへのアクセス方法が進化していきます。 I/Oセッション youtu.be DataBinding Annotation Processingの速度が20%向上 Incremental Annotation Processing android.databinding.incremental=true で増分コンパイルが有効化される。 XMLの即時反映 XMLに追…