なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

斜めドラッグをどう扱う?SwiftUI で自然なタイムラインを作る

SwiftUI を使って Twitter や Instagram のようなアプリを作っていると、 だいたい一度はこんな UI を作りたくなります。 全体はタイムライン形式で縦スクロール 各投稿には複数枚の写真があって、横にスワイプすると切り替わる よくある UI ですね。 ただ、…

Neon DB から PlanetScale へ PostgreSQL データベースのデータを移行したい

Neon という Serverless PostgreSQL サービスがあるのですが、 24/365 で起動するアプリケーションでは無料枠では収まらない、かつ、 PlanetScale PostgreSQL の最低プラン (15USD/mo) よりも高く付きそうかつ、 PlanetScale は Tokyo リージョンがあるので…

iOS アプリケーションで使用している OSS ライブラリのライセンスを表示したい

アプリケーションを作る上で OSS は欠かせませんが、 OSS を使うことで悩みの種となるのがライセンス表記をどう自動化するかです。 今回、 iOS アプリケーションを作る上で、 OSS ライブラリ一覧を表示したので、その方法をメモしておきます。 今回使ったの…

wrangler で Address already in use (127.0.0.1:9229) と出る場合は

Cloudflare のローカル開発コマンドである wrangler を、複数同時に turborepo などで動かすと、タイトル通りのエラーが発生することがあります。 ✘ [ERROR] Address already in use (127.0.0.1:9229). Please check that you are not already running a ser…

Cloudflare Workers で Mackerel へ OpenTelemetry のトレースを送信したい

以前の記事で、 Vercel から OpenTelemetry のトレースを Mackerel へ送信した記事を書きました。 tech.natsuneko.blog 今回は、プラットフォームを変え Cloudflare Workers から Mackerel へ OpenTelemetry のトレースを送ってみようと思います。 まず、 Cl…

Cloudflare Workers で GraphQL バックエンドを快適に開発したい

Cloudflare Workers で GraphQL バックエンドを構築する際、最初はサンプルなどから簡単に始められますが、実際の開発では「スキーマをコード内に書きたくない」「型安全性が欲しい」といった課題に直面します。 この記事では、Cloudflare Workers の制約の…

Contentful の GraphQL API でコンテンツの更新日時を取得したい

ハマったのでメモしておく。 更新日時は sys.publishedAt、公開日時は sys.firstPublishedAt を使う。 どちらも DateTime が返される。 query SomeQuery { articleCollection(limit: 1) { items { sys { id " このプロパティを使う!" publishedAt firstPubl…

Roslyn で ISymbol から SyntaxNode を得たい

みなさん Roslyn いじってますか? Roslyn(正式名称:.NET Compiler Platform)は、C# をはじめとする .NET 系言語のコンパイラであり、同時に強力なコード解析 API でもあります。JavaScript/TypeScript エコシステムでいえば、ESLint や Prettier のよう…

HonoX で Next.js PagesRouter の getStaticPaths をしたい

みなさん、HonoX はお使いでしょうか? HonoX は、手軽に SSR(Server-Side Rendering)や Island Architecture を試せる優秀なパッケージです。シンプルな API で現代的な Web アプリケーションを構築できるのが魅力ですね。 Next.js の getStaticPaths と…

SignalR のリアルタイム通信で 32KB 以上のパラメータを受信したい

C#

ASP.NET Core 版の WebSocket 実装である SignalR では、 C# 側で実装したメソッドを、 JavaScript フロントエンドから呼び出すことができます。 その際、例えばバイナリの Base64 String を送るなどでパラメータサイズが 32KB を超える場合、以下のようなエ…