くらげになりたい。

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

NuxtでもNitroErrorHandlerを使いたい(ワークアラウンド)

unjs/nitroだと、自作のエラーハンドラーを設定できるので、 ErrorからAPIレスポンスに変換したりもできる // ~/error.ts import { EventHandlerRequest, H3Error, H3Event } from "h3"; export default defineNitroErrorHandler((error: H3Error, event: H3…

Drizzle+Turso(libSQL)入門: 例外編

前回の続き。Turso(libSQL)をDrizzle ORMで操作するときに、 例外やエラーの扱い方を調べてみたときの備忘録(*´ω`*) Drizzle ORMに入門してみた with Turso - くらげになりたい。 調べたときのバージョンはこんな感じ drizzle-orm: 0.38.3 @libsql/client: …

cittyとunbuildでCLIツールを作ってみた(テンプレート付き)

以前、unjs/unbuildに入門したけど、 cittyもつかってオレオレCLIツールを作ってみたときの備忘録(*´ω`*) テンプレートとしても使える、サンプルリポジトリもここにつくっておいた github.com cittyとunbuild どちらもUnJsのパッケージで、 citty CLIコマン…

Drizzle x SQLiteで作成日時や更新日時をCustom typesでいい感じにしたい

前回の続き。Drizzle ORMをちょっと触ってみたときに、 いろいろ調べてみたときの備忘録(*´ω`*) Drizzle ORMに入門してみた with Turso - くらげになりたい。 SQLiteにはdate/time型がない Date And Time Functions 残念なことに、SQLiteにはDate/Time/Date…

Nuxtの<component :is>でNuxtLinkをつかいたい

Nuxt3で<component :is>を使うと、 コンポーネントや要素を動的に設定できたりする propsにtoがあるときは、<NuxtLink>にして、 それ以外は<div>にしたいなと思ったときの備忘録(*´ω`*) <template> <component :is="component" :to="to"> <slot></slot> </component> </template> <script setup lang="ts"> const props = defineProps<{ to?: string; }>(); const component = computed((…</div></nuxtlink></component>

Drizzle ORMに入門してみた with Turso

ずっと気になってたDrizzle ORMに入門してみたときの備忘録(*´ω`*) 合わせて、Tursoも一緒に使ってみる Drizzle ORM - next gen TypeScript ORM. Turso - Databases for All version drizzle-orm: v0.38.2 drizzle-kit: v0.30.1 @libsql/client: v0.14.0 nu…

Nuxt Auth Utils入門(Google認証編)

この記事を読んで使ってみたいなぁと思い、はや数ヶ月 ちょっと試してみようと、いろいろ調べてみたときの備忘録(*´ω`*) Nuxt Auth Utils でサーバーサイドの認証を(OAuth・マジックリンク・ワンタイムパスワード) Nuxt Auth Utilsとは https://github.co…

mixi2をmacから閲覧/投稿したりする(Android&scrcpy)

mixi2のWeb版が無いので、ミラーリングでなんとかならないかなぁと、 いろいろ試してみたときの備忘録(*´ω`*) Android端末限定だけど、scrcpyを使うと、まぁまぁうまくいった お、できたっぽい(*´ω`*)? pic.twitter.com/8UdkiyitP2— きらぷか@スプシAPI化…

Cloudflare Workersに入門する

ずっと気になっていた、Cloudflare Workers、 そろそろ入門しようと、ドキュメントを読んでみたときの備忘録(*´ω`*) Cloudflare Workersとは このスライドがわかりやすい Cloudflare Workersのユースケースと開発方法 - Speaker Deck ざっくりいうと、 ユー…

mixi2ライセンスページから学ぶ、便利なFlutterパッケージ【120over】

mixi2がFlutter製だと聞いて、使いはじめてみたけど、 さわり心地とか含めて、いろいろ素敵だなと思い、 ライセンスページの利用ライブラリを見てみたときの備忘録(*´ω`*) 見てみると、知らないすてきなパッケージがたくさんあったので、 ちょっと整理して…

Stripeの3Dセキュア対応について調べてみた

日本でもクレジットカードの3Dセキュア(3DS)の導入が義務化され、 Stripeを使っている場合でも対応が必要となったらしい 日本における 3DS の導入の義務化について : Stripe: ヘルプ & サポート 2025年3月31日までに対応が必要らしいので、 3Dセキュアに関し…

あらためて個人・小規模向けのアーキテクチャを模索する

最近、依存を少ない形がよいというツイートをよく見る気がする 普段、FlutterとNuxtがメインだけど、 個人開発みたいな少人数・小規模向けだとどういうのがいいのかぁと、 模索を続けていて、ちょっとづつ自分似合う形が見つかってきたので、 備忘録として整…

個人開発でもRDB系が使いたくて、いろんなサービスを調べてみた(Turso/TiDB etc.)

普段、Cloud Firestoreを使っているけど、 リレーションが多くなってくると、やっぱりつらくなる。。。 RDBをつかいたいなと思い、いろいろ調べてみた備忘録(*´ω`*) ドキュメントや関連記事ベースのみで、価格メインの調査 まとめ: Turso/TiDBがよさそう Tu…

例外の設計について、あらためて考えてみた

例外ハンドリング周りによく悩むので、改めて考え直してみた ちなみに、例外とエラーは置き換え可能として、区別せず、 try-catch形式を想定してます 全体のイメージ イメージとしてはこんな感じ 利用者やアプリケーションは、 APIサーバなのか、Web/スマホ…

unjs/unbuildに入門してみた

pnpm workspace+TypeScriptなmonorepoで、 Cloud Functions for Firebaseを開発していたときに、 unjs/unbuildでビルドしてみたときの備忘録(*´ω`*) 少ない設定でビルドができて便利(*´ω`*) unbuildとは unjs/unbuild: A unified JavaScript build system…

Nuxt 3.12.3でSSGがうまくうごかない

最新版にしたらアップデートしたら、 SSGでpages/配下のページとかが生成されず、 いろいろ調べてみたときの備忘録(*´ω`*) このIssueにあたったっぽい [3.12.3] SSG/prerender broke · Issue #28037 · nuxt/nuxt 対処方法はこんな感じ。 nuxt.config.tsでpr…

Flutterで文字の上下にある余白をなくす(textHeightBehavior)

ほそぼそと作ってるFlutter製スマホゲームで、 正方形のWidgetの中に文字を中央に表示したいなと思い、 いろいろ調べたときの備忘録(*´ω`*) Textウィジェットの構造 Textが確保している領域の話などは、このスライドがわかりやすい Textの構造を理解する/Un…

Android/iOSのエミュレータ/シミュレータで言語設定をコマンドで変更する

スマホアプリで多言語対応をするとに、 コマンドで言語設定を変更したいなと思い、 いろいろ調べたときの備忘録(*´ω`*) Android 公式ドキュメントに記載があったけど、 以下ではうまく以下なかった... $ adb shell # emulator内で $ setprop persist.sys.lo…

Flutter x iOSでリリース&AppleID認証のための証明書を用意する

FlutterをiOSでリリースする場合とかに署名用の証明書が必要。 いつも調べてるので、まとめてみたときの備忘録(´ω`) 開発/リリース向け 開発やリリースのために、証明書などがいろいろ必要 Apple Developerコンソールでポチポチする感じ 証明書署名リクエス…

satoriでTwemoji(Twitter絵文字)も含めて画像化する

ほそぼそと作ってるゲームアプリで、 絵文字に対応したときの備忘録(*´ω`*) アップデートDONE1. 絵文字でステージを作成できるようになりました✨2. ランキング数を10から30に変更しました✨ほか、いくつかの改善や修正も#マグロ探し #indiedev #ゲーム開発 #…

FlutterでTwemoji(Twitter絵文字)をつかう

ほそぼそと作ってるゲームアプリで、 絵文字に対応したときの備忘録(*´ω`*) アップデートDONE1. 絵文字でステージを作成できるようになりました✨2. ランキング数を10から30に変更しました✨ほか、いくつかの改善や修正も#マグロ探し #indiedev #ゲーム開発 #…

Flutter x Androidでリリース&Google認証のために証明書を用意する

FlutterをAndroidでリリースする場合とかに署名用の証明書が必要。 いつも調べてるので、まとめてみたときの備忘録(*´ω`*) 公式だとこの辺り Sign the app | Android | Flutter リリース用の証明書作成と署名 keystoreの作成 まずは署名するためのkeystore(…

Flutter x Firebase Remote Configで強制アップデート

Firebaseコンソールで設定した値を、 Flutterアプリから取得できるRemote Config Remote Configとpackage_info_plusをつかって、 強制アップデート機能を実装したときの備忘録(*´ω`*) 状態管理には、riverpodを利用してる ざっくりとした流れ 流れとしては…

Android-RateをFlutter/Dartで実装する

昔使ってて好きだったレビュー依頼用のライブラリのAndroid-Rate。 Flutterでも使いたいなと思い、リライトしてみたときの備忘録(*´ω`*) hotchemi/Android-Rate at 1.0.1 Android-Rateとは レビューを依頼するダイアログを表示する便利ライブラリ。 インス…

go_router v13.0.0以降でダイアログがpopできない

Flutterで開発をしているアプリで、 go_routerをv12系からv13系にしたらpopできなくなった。。 このあたりをみてみると、 flutter - context.pop() dialogs after migrating to go_router 13.2.3 from <13 - Stack Overflow Package: Go-router - Unexpected…

FlutterでDeepLinkに対応する(iOS/Universal Links)

前回のiOS版(*´ω`*) FlutterでDeepLinkに対応する(Android/App Links) - くらげになりたい。 Webサイトの特定のURLにアクセスするとアプリが開く、 Deep Linkに対応したいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) Flutterの公式ドキュメントはこ…

FlutterでDeepLinkに対応する(Android/App Links)

Webサイトの特定のURLにアクセスするとアプリが開く、 Deep Linkに対応したいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) Flutterの公式ドキュメントはこのあたり Deep linking | Flutter Set up app links for Android | Flutter Android アプリリ…

Flutter x AdMobでATT/GDPR対応

AATやGDPRをちゃんと対応しようと、 いろいろ調べてみたときの備忘録(*´ω`*) どちらともAdMobで対応できたので便利 google_mobile_ads | Flutter packageを利用 流れ 同メッセージの表示などのために、 User Messaging Platform(UMP)というのがあるらしい…

Flutter/DartでCallbackをFutureにする

TypeScriptとかだとCallbackをこんな感じで、 Promise化できるけど、Flutterでもしたいなと思い、 いろいろ調べてみたときの備忘録(*´ω`*) function myPromise(time){ return new Promise(resolve => { setTimeout(() => resolve(), time) }); } Completer…

FlutterでLottieをつかう&終了を検知する

FlutterでもLottieを使いたいなと思い、 いろいろ調べたときの備忘録(*´ω`*) lottie | Flutter package できたのはこんな感じ 進捗です(*´ω`*) pic.twitter.com/L19gqqcpXi— きらぷか@スプシAPI化&積読のサービス運営中 (@kira_puka) June 8, 2024 使い方 …