ぽぴなび

知って感動した技術情報・生活情報や買ってよかったものの雑記です。

【Flutter】はてなブログに Flutterのコード&プレビューを埋め込む

こんな感じになります やり方 オンラインコードサンドボックスの Zapp を使用します。 zapp.run 埋め込みコードの取得 上記にアクセスし、右上のGet Startedか、真ん中のView All Templatesを押します。 テンプレートが表示されるので、Flutterを選択します…

【Javascript】分割代入時に変数名を変える

Reactでカスタムフックなどを使っていると、状態を表す変数名(errorやloadingなど)が同じ名前で定義されていたりします。 同じ名前の変数を分割代入で取ってくる際は、元の変数名: 変更後の変数名で取ってくることができます。 const useGetUsers = () => …

【NestJS】認証部分をモックしてe2eテストを作成する

おさらい 流れ e2eテストを作成する 準備 e2eテストを作成 テスト用のMockStrategyの作成 MockStrategyでoverrideする MockStrategy用のJWTを作成する パッケージのインストール JwtServiceをInject トークンの生成 テストコードの修正 前回からの続きです。…

【NestJS】入力値のバリデーションを簡単に実装する

NestJSのバリデーション 準備 パッケージのインストール Auto-validateの設定 リクエストボディ 不要なkeyを削除する おまけ パスパラメータ クエリパラメータ 前回作成した Item API に入力値のバリデーションを作成していきます。 Item APIは以下のように…

【NestJS x Auth0】NestJSで作成したAPIにAuth0の認証/認可を追加する 〜認可(NestJS)編〜

前回の続きです。 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編〜 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編 その2〜 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜認証編〜 NestJSで作成したAPIにAuth0の認証/認可…

【NestJS x Auth0】NestJSで作成したAPIにAuth0の認証/認可を追加する 〜認可(Auth0)編〜

前回の続きです。 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編〜 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編 その2〜 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜認証編〜 前回でトークンによる認証機能を実装する…

【NestJS x Auth0】NestJSで作成したAPIにAuth0の認証/認可を追加する 〜認証編〜

前回からの続きです。 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編〜 NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編 その2〜 今回は、以下の記事を参考に前回作成したサンプルAPIに認証機能を追加します。 Full-Stack TypeScri…

【NestJS x Auth0】NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編 その2〜

前回の続きです。 popy1017.hatenablog.com APIの中身は凝らないと言っていたのですが、 さすがに味気なかったのでテストデータを作成してそれを操作するようにしたいと思います。 1. Item エンティティの修正 2. リポジトリクラスの作成 3. ItemsService を…

【NestJS x Auth0】NestJSで作成したAPIにAuth0の認証/認可を追加する 〜準備編〜

NestJSで作成したAPIにAuth0の認証/認可を追加し、認証状態やロールによってAPIの実行可否を制御できるようにしていきます。 この記事では、準備段階としてNestJS側の実装をします。 また、前提としてUdemy講座でNestJSの基本を知った上で進めています。 以…

1日2リットル水分を摂るためにスマートボトルを買ってみた

こんな方におすすめ 1日の水分摂取量を記録したいが、手動でやるのはめんどう。 尿酸値を気にしている。 購入にいたった背景 忘年会にて尿酸値を気にしているという話をした際、「1日2リットル水分を摂ると良い」という話を聞き購入を決意。 (私はめんど…

【Flutter】Flutter Webをルート以外のパスでホストしたい場合の対処方法

Github Pages で Flutter Webを公開する際に少し詰まったので記載。 https://hogehoge.com/ ではなく https://hogehoge.com/myapp/のようなURLで公開する場合のお話。 なんと公式にちゃんと書いてある。 flutter build webしてできるindex.htmlの上の方に書…

【Flutter】Mockitoで static 関数をMock化したいとき

Mock化したいstatic関数を呼び出すstaticでない関数をもつクラスを新規に作成する。 // Mock化できない class Greeting { static String get hello => 'hello'; } // こっちはMock化できる class GreetingWrapper { String get hello => Greeting.hello; } c…

【Flutter】shared_preferencesのsetMockInitialValuesが最初の1度しか適用されない

例えば以下のように各テストでSharedPreferencesに異なる初期値を設定したい場合、最初に実行したsetMockInitialValues以外は無視されるっぽい。 以下の例では(おそらく){ 'test': 0 }が有効になり{ 'test': 1 }は反映されない。 void main() { setUp((){ …

【Flutter】チュートリアル表示の tutorial_coach_mark パッケージを使う画面のIntegration testを行う

tutorial_coach_mark とは? アプリの初回利用時などにおいて、ボタンやアイコンなどにフォーカスして使い方を示すためのパッケージ。 pub.dev 他の選択肢 Material DesignのFeature Discoveryを実装したパッケージも気になる。 fluttergems.dev 困ったとこ…

【Vue】Vue x TypeScript x Vuetify プロジェクトのテスト環境(Jest)を整える

Vue公式のやり方で、TypeScriptに対応した後Vuetifyを追加するとエラーが出て長時間詰まったので別のやり方を試すことに。。 手順 vue create my-sample-projでプロジェクトを作成する(この際にTypeScript, Unit Testingを有効にしておく) vue add vuetifyで…

【Flutter】WebViewのスクロール時にAppBar、BottomNavigationBar、FloatingActionButtonを隠す実装をしたときに参考にしたサイト

flutter_inappwebview | Flutter Package webview_flutterではスクロールイベントを取得できないので、flutter_inappwebviewを使う。(onScrollChangedプロパティ) mobile - How to hide BottomNavigationBar when scrolling - Flutter - Stack Overflow Anim…

【Flutter】Full-screen dialogの使い所

Full-screen dialogとは? 通常はNavigator.pushを行うと右側から左側(←方向)に次のWidgetが入り込んでくるが、MaterialPageRouteのfullscreenDialogを使うと下側から上側(↑方向)に向かって次のWidgetが入り込んでくるようにできる。 See the Pen by pop…

【AWS】API Gateway+Lambda構成で200以外のステータスコードを返す

以前使用した Lambda統合プロキシ を使うと、レスポンスが決まった形式になる。それのstatusCodeに返却したいステータスコードを設定すればOK。 # Pythonの場合 { "isBase64Encoded" : "boolean", # <= True or False "statusCode": "number", # <= 200, 400…

【Flutter】Widgetに対するユーザー操作を一時的に無効にする

ButtonなどはonPressedやonTapをnullにすれば非活性化するが、複数の要素へのユーザー操作を無効にしたい場合はAbsorbPointerやIgnorePointerが便利。 AbsorbPointer class - widgets library - Dart API IgnorePointer class - widgets library - Dart API …

【AWS】API Gateway → Lambda でLambdaにパス・クエリパラメータを渡す

やりたいこと https://www.exmaple.com/users/tanaka?firstname=taro,https://www.exmaple.com/users/suzuki?firstname=taro みたいなURLからtanaka(or suzuki)とfirstname=taroを取り出したい。 方法 パスパラメータ https://www.exmaple.com/users/tanaka?…

【Flutter】flutter_styled_toastのToastに影をつける

flutter_styled_toast ? 上からひょこっと出てくる通知領域的な何かを実装するためのパッケージ。 pub.dev やり方 showToastWidgetで指定するWidgetをCardWidgetにして、elevationを0より大きい値にする。shapeにRoundedRectangleBorderを指定することで角を…

【curl】リクエストボディにjsonファイルを指定する

-d @ファイル名を指定する。@(アットマーク)をつけ忘れて30分くらいハマったので注意。 curl -d @test.json -H "Content-Type: application/json" https://example.com

【Flutter】文字の色(白・黒)を背景色に応じて変える

デモ See the Pen flutter_estimate_brightness by popy1017 (@popy1017) on CodePen. 手順 1. 背景色が明色か暗色かを判定する ThemeData.estimateBrightnessForColor(backgroundColor);を使う。 final Brightness brightness = ThemeData.estimateBrightne…

【Flutter】SnackBarの角を丸くする

SnackBar.shapeにRoundedRectangleBorderを指定する。 SnackBar( content: ~~~ shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(40.0), ), ~~ ); See the Pen flutter_snackbar_sample by popy1017 (@popy1017) on CodePen.

【AWS】EC2のストレージを拡張する

以下の方法でできる。便利。 qiita.com

【Flutter】ボタンのprimaryColorを変える

Flutter2からボタンの色は、MaterialAppのTheme.primarySwatchに引っ張られるようになった。 デザインの統一性を持たせるためには便利になったが、ボタン単体で色(primaryColor)を変えるには、以下のようにする。 TextButton( onPressed: (){}, child: Text(…

【Python】Pythonの学習メモ

httpリクエストを送る GET import urllib.request url = 'https://www.google.com/' req = urllib.request.Request(url) # urlopenの実行結果を res に格納してインデントの中身を実行 with urllib.request.urlopen(req) as res: body = res.read() print(bo…

【AWS】API Gatewayで設定を変更したら再デプロイしないと反映されない

リソースポリシーの変更をした後デプロイを忘れていて、なかなか疎通確認ができず2〜3時間浪費してしまった。

【Flutter】画像の右上に削除ボタンを配置する

完成図 const double size = 300; const double padding = 20; class Home extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, …

【AWS】API GatewayでAPIを作っただけではAPIの実行はできない

APIを作成・変更した後はデプロイしないとAPIを実行することはできない(テストは可能)。 docs.aws.amazon.com