くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

satori-htmlで画像を埋め込むとかなり遅いので工夫してみた

以前書いたsatori/sharp/satori-htmlでOG画像生成を使ってたら、 やたらsatori-htmlの処理に時間がかかるので、 いろいろ調べてみたときの備忘録(*´ω`*) unjs/nitro+satori+sharpで動的OGP画像を自動生成する - くらげになりたい。 使ってるのは前回と同じ…

unjs/nitro serverで特定のroutesを無視する

unjs/nitroでこんな感じのディレクトリ構成の場合、 _ignore_dir/*やusers/_ignore_path.tsを無視したいなと思い、 色々調べてみたときの備忘録(*´ω`*) routes/ _ignore_dir/ index.ts users/ _ignore_path.ts index.ts ドキュメントにはちょろっと書いてあ…

東京都の高尾山〜陣馬山にいってきた(25座目)

東京都八王子市にある高尾山から続く縦走ルートで 景信山(かげのぶやま)と陣場山(じんばさん)に行ってきたので、 感想とか諸々の備忘録(*´ω`*) 高尾山 - Google マップ 景信山 - Google マップ 陣馬山 - Google マップ 裏高尾(陣馬山/景信山)DONEさすが裏面…

Flutterで相対時間を表示する(relative_time)

Flutterで3日前とか相対的な時間を表示したいなと思い、 いろいろ調べて見たときの備忘録(*´ω`*) これをつかえばいいっぽい relative_time | Flutter package 使い方 簡単な使い方はこんな感じ // 言語の自動選択版 RelativeTime(context).format(time); //…

埼玉県飯能の棒ノ折山にいってきた(24座目)

埼玉県の飯能/奥多摩にある 棒ノ折山(ぼうのおれやま)に行ってきたので、 感想とか諸々の備忘録(*´ω`*) 棒ノ折山 - Google マップ 埼玉県飯能の棒ノ折山DONE標高低いし、スタンプの穴埋めで来たけど、すごいとこだった。。スリリングだけど登りやすく、めっ…

埼玉県秩父の妙法ヶ岳&白岩山にいってきた(23座目)

埼玉県県の奥秩父にある、 妙法ヶ岳(みょうほうがたけ)と白岩山(しらいわやま)に行ってきたので、 感想とか諸々の備忘録(´ω`) 妙法ヶ岳 - Google マップ 白岩山 - Google マップ 妙法ヶ岳&白岩山DONEいい感じの雲と青空で最高だった!鳥居とかもかっこよく…

FlutterのAdmobでリワード広告を表示する

前回の続き。バナー広告は表示できたので、 リワード広告も試してみたときの備忘録(*´ω`*) www.memory-lovers.blog リワード広告とは 長めの動画広告を見ると、ユーザが報酬を受け取れるタイプの広告 リワード広告とリワードインタースティシャル広告(β版)…

Flutter x Riverpod x SharedPreferences

FlutterでRiverpodを使って、SharedPreferencesを使いたいなと思い、 いろいろ調べたときの備忘録(*´ω`*) 公式だとこの辺り Initialization of Synchronous Provider for Async APIs | Scopes | Riverpod 全体のサンプルを作ってくれている人がいたので、 …

FlutterでAdMobを導入する

FlutterにAdMob広告をいれたいなと思い、 いろいろ調べたときの備忘録(*´ω`*) google_mobile_ads | Flutter packageを使えばいいっぽい ドキュメントやチュートリアルも用意されている ドキュメント: Flutter アプリに AdMob 広告を追加する チュートリアル…

FlutterGenでリソースファイルのパスを安全に扱う(画像/色/フォント名)

Flutter実践開発を読んでいいなと思い、 flutter_genを使ってみたときの備忘録(*´ω`*) 作者さんのブログ記事がわかりやすい コード自動生成の FlutterGen を作りました。Flutter 向けに画像リソースなどのコードを自動生成するためのツールです。 | by wasa…

神奈川県丹沢の檜洞丸にいってきた(22座目)

神奈川県の丹沢山塊にある一座、 檜洞丸(ひのきぼらまる)に行ってきたので、 感想とか諸々の備忘録(*´ω`*) 檜洞丸 - Google マップ 檜洞丸DONE雪しっかり&樹氷いっぱいで最高!富士山もくっきりの快晴で最高!!初グループ登山だったけど無事ついていけて…

Dart/FlutterのDioで認証をいい感じにする

Dioを使ってAPIリクエストをする際、 APIトークンやJWTなどを自動で設定したいなと思い、 いろいろ調べたときの備忘録(*´ω`*) dio | Dart package Interceptorというrequest/response/errorをinterceptする 機能があるっぽいので、そこで追加するようにすれ…

OpenAPIからDartを生成するパッケージ(swagger_parser/swagger_dart_code_generator)

前回の記事でopenapi.yamlからdartコードを生成できたけど、 OpenAPITools/openapi-generatorが吐くコードは、Dart2だったりとあんまりだった。。 TypeSpec(OpenAPI)でTypeScriptとDartのモデルを共通化する - くらげになりたい。 他にもなにかいいのがない…

新しい日付ライブラリのTempoをさわってみた

day.jsを使ってたけど、サイズも小さく軽量とのことで、 ちょっと試してみたときの備忘録(*´ω`*) tempo.formkit.com FormKitのチームが開発したらしい formkit.com Tempoとは nativeのDateを操作するユーティリティなライブラリ。 day.jsとは違い、Date自体…

Firebase AuthのidTokenをブラウザを使わずに取得する

Firebase Authに認証は全部任せて、APIサーバを立てたいなと、 いろいろ調べてみたときの備忘録(*´ω`*) Firebase AuthのidTokenをAPIサーバのAccess Tokenを扱い、 サーバー側でidTokenの検証をして、UIDを取得する サーバの認証処理 サーバ側の処理はこん…

UnJS/Nitro ServerでCORSのpreflight requestに対応する

UnJSのNitroでAPIサーバを開発しているときに、 CORSでハマったときにいろいろ調べたときの備忘録(*´ω`*) preflight requestというのがあり、 OPTIONSmethodでリクエストが飛んでくるが、 GETしか許可していなかったため、うまくいかなかったっぽい Preflig…

モノレポでもVSCodeでVitestできるようにする

VSCodeのVitest拡張機能をつかっているけど、 monorepoだとうまく動かなくて、 いろいろ調べたときの備忘録(*´ω`*) ちゃんとドキュメントに書いてあった(*´ω`*) Vitest - Visual Studio Marketplace vitest.workspace.ts Workspace | Guide | Vitest Vites…

MelosでFlutter/Dartをモノレポ運用する

Flutter/Dartでもモノレポで運用したいなと思って、 いろいろ調べたときの備忘録(*´ω`*) DartではMelosというCLIツールを使えばいいっぽい melos.invertase.dev FlutterFireやFlameなどでも使われている。 FlutterFire CLIなどでおなじみのInvertase社製。 …

TypeSpec(OpenAPI)でTypeScriptとDartのモデルを共通化する

Firestoreを使ってアプリとサーバを開発していて、 FlutterとCloud FunctionsやNitro Serverでモデルを共通化したいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) TypeSpecでOpenAPIの定義を書いて、 それぞれの言語で生成するのがいいかもしれない。 …

東京都奥多摩の御前山にいってきた(21座目)

東京都の奥多摩にある花の百名山のひとつ、 御前山(ごせんやま)に行ってきたので、 感想とか諸々の備忘録(*´ω`*) 御前山 - Google マップ 奥多摩の御前山DONE登山口から雪がたっぷり(*´ω`*)ひさびさの快晴&富士山で最高だった。。 pic.twitter.com/6CMI28…

FlutterのUnit TestでDateTime.now()を固定する

FlutterのUnitTestのときに、現在時刻のテストをどうしようかなと、 いろいろ調べてみたときの備忘録(*´ω`*) このあたりを使うとよいらしい clock | Dart package テストしやすいDateTime.nowのパッケージ fake_async | Dart package Future/Stream/Timerな…

FlutterのTextFormFieldのカスタマイズ

Flutterのテキストフィールドをカスタマイズしたいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) 背景や枠のデザインはInputDecorationでするっぽい サンプル TextFormField( controller: controller, // オートフォーカスさせるか autofocus: true, /…

長野県の黒斑山にいってきた(20座目)

長野県の小諸市にある日本百名山の浅間山の外輪にある、 黒斑山(くろふやま)に行ってきたので、 感想とか諸々の備忘録(´ω`) 黒斑山 - Google マップ 黒斑山DONE悪天候でも白銀の世界、最高。。吹雪いてきたけど、どこも新雪になって、それもまたいい(*´ω`*…

Dart/Flutterの独自パッケージを非公開で扱う

npmはGitHub Packagesでprivateなライブラリとして扱えるけど、 Dart/Flutterの場合はどうしようかなと、いろいろ調べてみたときの備忘録(*´ω`*) 公式ドキュメントをみると、Git packagesが使えるっぽい。 Package dependencies | Dart # ブランチ省略 depe…

静岡県の天城山(万三郎岳)にいってきた(19座目)

静岡県の伊豆半島中央部にある日本百名山のひとつ、 天城山(あまぎさん)の万三郎岳(ばんざぶろうだけ)に行ってきたので、 感想とか諸々の備忘録(*´ω`*) 天城山 - Google マップ 静岡の天城山DONE苔と岩と木々がすてきなところ人手があまり入ってなく、野生…

ImageMagickで開発用とステージング用のアイコン画像を生成する

こんな感じでオリジナルのカラーのアイコンから 開発用(グレー)とステージング用(半々)の画像を生成したいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) ImageMagickでごにょごにょしたらできた(*´ω`*) #!/bin/bash ICONS=' icon-1024x1024 icon-fore…

Flutterのアプリ名を多言語化する

Flutterの多言語対応(internationalization/l10n)は、 flutter_localizationsをつかった方法が公式ドキュメントはこれ Internationalizing Flutter apps | Flutter Android/iOSのビルド関連はこのあたりに書かれているけど、 Build and release an Android a…

FlutterであとからPlatformを追加する

Android/iOS/Webなどいろいろ対応してるけど、 あとから追加や再作成したいなと思ったときの備忘録(*´ω`*) # webとmacosを作成 $ flutter create --platforms=web,macos . 実行すると再作成されるので、 README.mdやlib/main.dartなどもできてしまうので注…

Flutterで9-patchみたいに画像をいい感じに伸縮させたい(centerSlice)

FlutterでもAndroidの9-patch画像がつかえないかなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) 9.pngファイル自体は対応していないが、 centerSliceで伸縮する部分を指定すればいいっぽい。 Image.asset( "images/button.png", height: 100, width: 35…

Flutter doctor --android-licensesでエラーになる

ひさびさにflutter doctorを実行するとこんなエラーが。。 $ fvm flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.16.9, on macOS 13.2.1 22D68 darwin-arm64, locale ja-JP) [!] Android tool…