kokh log

yumikokhの開発日記

Ghosttyからcmuxに乗り換えて並列開発が快適になった

Ghosttyからcmuxに乗り換えた。 worktree が増えると、画面と頭が両方ごちゃつく 1 プロジェクトの中で複数機能を並行して進めるとき、git worktree add でブランチごとに別ディレクトリを切ることが多い。feature A を実装している間に feature B のレビュ…

ClaudeCodeでやったことを忘れる前に記事に残すぞ

Claude Code でやったことを後から忘れがち。session 内容をそのまま記事化して Hatena Blog に投げる slash command /cc-article をつくった。 なぜ作ったか Claude Code で小ツールを作ったり、複雑な設定を組んだり、調査したり。便利な分やることが増え…

ブランチ名を予測して切り替えるgitサブコマンドをつくった

背景 ブランチを切るたびに命名で固まる。考えるのが面倒で、結局 tmp とか wip-2 みたいな雑な名前にしてしまうことも多かった。 Claude Code 内の /branch スラッシュコマンドに頼っていたが、呼ぶには Claude Code を立ち上げる必要があり、起動コストが…

個人開発アプリの振り返りからClaudeにアドバイスをもらう

この記事は、「エンジニアと人生 Advent Calendar 2025」の18日目の記事です。 adventar.org はじめに 今年(厳密には去年末)、個人開発アプリ「Tanzaku Todo for Notion」をリリースしました。 Tanzaku Todo for NotionYumiko Kokubu仕事効率化無料apps.ap…

flutter: 画面スリープしないようにする

アプリ起動中に画面をスリープさせないようにします。 実装 wakelock_plus というプラグインを使用しました。 pub.dev wakelock プラグイン(メンテ終了)の派生プラグインのようです。 WakeLock は画面が暗くなったりロックされることを防ぐためのAPIに用い…

flutter: iOSでアプリ起動していないときに処理を実行する

こちらのライブラリを使います。 pub.dev Documentの中でも、最速でiOS対応する箇所に絞って記録しておきます。 実装 info.plist に権限追加 <key>BGTaskSchedulerPermittedIdentifiers</key> <array> <string>com.transistorsoft.fetch</string> </array> <key>UIBackgroundModes</key> <array> <string>fetch</string> <string>processing</string> </array> 初期化…

flutter: 多言語対応する際の初期設定

flutter多言語対応の導入メモ。 Packageのインストール $ flutter pub add flutter_localizations $ flutter pub add intl:any ファイル設定 pubspec.yaml で、 generate フラグがtrueでない場合は設定します flutter: generate: true プロジェクトルートに …

はてなブログをVercelネームサーバーのサブドメインにしてGoogleAdSense申請した

このはてブロもやっと記事数が30超えたので、GoogleAdSenseの申請をしてみました。 3日くらいして審査が始まり、「有用性の低いコンテンツ」という理由でリジェクトされてしまいました この際打てる対策は全部打っとこうと思い、ついでに独自ドメイン設定す…

Web開発経験しかなかった私がiOSアプリをリリースするまで

この記事はエンジニアと人生 Advent Calendar 2024の 10 日目の記事です。 9日目は @tamanugi さんの「2024 年をつらつらと振り返る」お話でした。 はじめに 10月某日、人生で1度やってみたかった「AppleStore に自分で作ったアプリを載せる!!」という憧れ…

riverpod: invalidate後にstate更新するときの注意点

Riverpodのinvalidateを行ったときの挙動ではまったメモです。 あるリストをRiverpodで管理するProvider経由で取得し、ドロップダウンで表示するコードがありました。 _buildDropdown( value: selected.date?.id, items: selectedViewModel .propertyOptions…