なつねこメモ

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

Jetpack Compose で Preview が NoClassDefFoundError で表示されない

Android Studio にて、 Jetpack Compose の @Preview アノテーションを使ってプレビューをしたかったのだが、エラーが出て表示されない。 java.lang.NoClassDefFoundError: _layoutlib_/_internal_/kotlinx/datetime/serializers/InstantIso8601Serializer a…

Windows のウィジェットを作ろう!

Windows でウィジェット使っていますか?わたしはあまり使っていませんでしたが、これを期に使い始めました。 Windows におけるウィジェットとは、 Windows + W キーで横から出てくるボードに配置できるアプリケーションの事です。 ウィジェットの様子、自作…

Firebase Cloud Messaging で iOS アプリにリモートプッシュ通知を送ろう

趣味で iOS アプリを作っているのですが、今回、 Firebase Cloud Messaging でのリモートプッシュ通知に対応したので、対応方法を紹介します。 今回リモートプッシュ通知に APNs にダイレクトに通知を行うのではなく、 Firebase Cloud Messaging を使った理…

斜めドラッグをどう扱う?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…