くらげになりたい。

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

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…

Flutterで現在の言語設定を取得する

以下の記事からの引用。 Localizations.localeOf(context)で取得できるっぽい。 Flutterで端末内の言語設定を取得する | okaryo.log Locale locale = Localizations.localeOf(context); print(locale); // en_US print(locale.languageCode); // en print(lo…

FlutterのGestureDetectorでpaddingでもタッチを検出する

GestureDetectorをつかってContainerもタッチできるようにしたかったけど、 余白で反応しなかったので、いろいろ調べてみたときの備忘録(*´ω`*) HitTestBehaviorを設定するらしい 使い方 使い方はこんな感じ GestureDetector( // これを指定 behavior: HitT…

東京都の大岳山&日の出山にいってきた(18座目)

東京都青梅市の御岳山の奥にある、 日本二百名山の大岳山(おおだけさん)と 日の出山(ひのでやま)に行ってきたので、 感想とか諸々の備忘録(*´ω`*) 大岳山 - Google マップ 日の出山 - Google マップ 御岳山 - Google マップ 大岳山DONE青梅市の御岳山の奥に…

Flutterでステータスバー/ナビゲーションバーを非表示にする

Flutterでも全画面モードみたいに、 上のステータスバーや下のナビゲーションバーを非表示にしたいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) SystemChrome.setEnabledSystemUIMode()で設定できるらしい setEnabledSystemUIMode method - SystemChr…

埼玉県の飯能アルプスに行ってきた|その2(17座目)

埼玉県飯能市にある、 飯能アルプス(伊豆ヶ岳〜高畑山&天覧山〜多峯主山)に行ってきたので、 感想とか諸々の備忘録(*´ω`*) 伊豆ヶ岳 - Google マップ 天覧山 - Google マップ 飯能アルプスDONE(*´ω`*)近場でほどよいハイキングコース(*´ω`*) pic.twitter…

FlameのGameLoopはどう実現しているのか

前回、Flutterのゲームエンジン「Flame」 に入門してみたけど、GameLoopってどうしてるのか気になり、 いろいろ調べてみたときの備忘録(*´ω`*) FlutterのFlameに入門する - くらげになりたい。 Tickerで実現してるっぽい ソースを見るとすごくシンプル impo…