Iganinのブログ

日頃の開発で学んだ知見を中心に記事を書いています。

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

【iOS】ARKitのFace Trackingの結果をobjファイルとして出力する

TL;DR; ARSessionでARFaceTrackingConfigurationを走らせる ARFaceGeometryをMDLAssetに変換する MDLAssetのexport(to:)メソッドを使う objファイルについて いわゆるobj形式のファイル。下記の記事が参考になった。 ブログ記事からの引用ではあるが、objフ…

【Kotlin】BCryptを使用してPasswordのハッシュ化を行う

TL;DR; パスワードは一般的な暗号化だけでなくSaltも加えた上でHash化するのが望ましい BCryptを使用すると暗号化データの中にSaltの情報が含まれるためSalt Columnが不要 jBCrypt/BCrypt.java at master · jeremyh/jBCrypt · GitHub がJavaではおそらく安牌…

【Kotlin】ExposedでDateTimeを扱う

TL;DR; org.jetbrains.exposed:exposed-java-timeを使う timezone付きでの保存には対応してないため注意 localDate, localDateTimeへの変換の際にsystemDefault TimeZoneが使用されるため注意 環境 Exposed 0.23.1 内容 ExposedはKtorとともに主に使用される…

【Flutter】RiverpodのProviderの変化を検知する

TL;DR; ProviderObserverを使用し,ProviderScopeのobservers引数に設定する 環境 [✓] Flutter (Channel stable, 2.2.3, on macOS 11.3.1 20E241 darwin-x64, locale ja-JP) [✓] Xcode - develop for iOS and macOS [✓] Chrome - develop for the web [✓] And…

【Flutter】FlutterのDartコードの難読化について

TL;DR; Dartコードの難読化には buildOptionとして --obfuscate --split-debug-info をつける 難読化について 難読化はクラス名やメソッド名を変更し、バイナリサイズを落とすことを主な目的としているらしい。 例えば、 SpecialCatクラスをaに置き換えると…

【Flutter】ScrollViewとExpandedを併用してSignIn / SignUp画面 などのレイアウトを作成する方法

TL;DR; LayoutBuiderとIntrinsicHeightを併用する 環境 [✓] Flutter (Channel stable, 2.2.3, on macOS 11.3.1 20E241 darwin-x64, locale ja-JP) [✓] Xcode - develop for iOS and macOS [✓] Chrome - develop for the web [✓] Android Studio (version 202…

【Flutter】GraphQLClientでキャッシュの永続化を行う(DIにRiverpodを使用)

TL;DR; HiveStoreを使う HiveStoreの初期化は非同期処理のためgraphqlのproviderがFutureとなってしまいめんどくさい 上記解消のために main.dart で 初期化を終わらせ ProviderScopeでoverrideする 環境 [✓] Flutter (Channel stable, 2.2.3, on macOS 11.3…

【Flutter】RiverpodのProviderのキャッシュをLogout時に効率的に削除する

TL;DR; logout時に値を変更するProviderを作成して、各Providerの初期化処理でそのProviderをwatchする 環境 [✓] Flutter (Channel stable, 2.2.3, on macOS 11.3.1 20E241 darwin-x64, locale ja-JP) [✓] Xcode - develop for iOS and macOS [✓] Chrome - d…

【Flutter】Navigation2.0とAutoRouteライブラリを使用して、画面遷移時に認証状態を確認する

tl;dr; 画面遷移時の認証状態をAutoRouteライブラリのAutoRouteGuardを使って確認する 認証していない場合は認証画面に遷移させるなどもできる riverpodでDIしている場合でも対応できる 書くこと auto_route + riverpodでの画面遷移時の認証状態確認方法 書…

【Kotlin】InteliJ IDEAでmockk使用時にError during attachment using: net.bytebuddy.agent.ByteBuddyAgentエラーが出た際の対処方法

tl; dr; JDKのpathにwhite spaceが含まれていると、mockkで使用しているByteBuddyがパス解決に失敗する ProjectのJDKのpath設定を変更し、white spaceが含まれないようにすることで解決する JDKを別途ダウンロードするのが良いと思われる 環境 macOS Catelin…

【React】GraphQLとSentryを組み合わせて使用する際に気をつけること

tl; dr; graphQLのリクエストは全て同一のURLとなる 通信エラーの場合、sentry上では同一URLとなってしまい、operationがわからなくなる 外部のOSS(apollo-link-sentry)を入れてgraphqlのリクエストの中身を見れるようにする 発生する問題 graphQLのリクエス…

【React】(未解決)SentryのPerformance Monitoringがうまく機能しなかった

ほとんど個人用のメモです。 掲題の通りSentryのPerformance Monitoringが機能しなかったので調べたことなどまとめておきます。 環境 react 16.9.55 next 10.0.8 sentry/react 6.4.1 sentry/tracing 6.4.1 発生したこと 下記のチュートリアル通りに実装して…

【Flutter】webview_flutterで独自WebViewerを作る

webview_flutterはアプリ内で独自のWebView表示をしたい場合にまず第一候補として上がってくるライブラリかと思います。 本稿では、webview_flutterとhooks_riverpodを使用し、アプリ内に独自のWebViewerをMVVMの形で作成する方法を記載します。 下記環境を…