August 18, 2026

稀によく停止するMeetingBarを自動起動してミーティングに遅刻しないようにする

MeetingBar はカレンダーの次の予定をメニューバーに出してくれるアプリです。 起動しっぱなしでよいのですが、たまに落ちていて予定を見落とすことがあったので、毎時28分と58分に起動し直す仕組みを組みました。 やりたいのは、次のコマンドを定期実行することです。 open -g -j -a "MeetingBar" -a はアプリ名で起動、-j はウィンドウを隠した状態(hidden)で起動、-g はアプリをフォアグラウンドに持ってこないオプションです。 すでに起動済みなら二重には立ち上がらず、既存プロセスがそのまま使われます。 -g をつけないと実行されるたびに作業中のウィンドウからフォーカスが奪われてしまうので、-g も忘れずに付けてください。 Read more

July 30, 2026

Pokémon GO Plus +のバッテリー交換をするついでにバイブを取り外す

ポケモンスリープやPokémon GOで自動捕獲をできる便利なツール Pokémon GO Plus + ですが、先日うっかりズボンのポケットに入れたまま洗濯機で丸洗いしてしまいました😇 買い直そうと思ってAmazonやフリマアプリを見てみたところ、人気のためかどこも品切れ中で、転売価格でかなり高騰していて簡単に買えない状態でした。 ダメ元で分解してバッテリーを交換してみようと思い、自分で修理してみることにしました。 Pokemon go plus + Read more

June 24, 2026

caffeinate + launchdでMacのスリープ抑止をログイン時に自動起動する

Macでスリープを抑止したいとき、caffeinate コマンドが便利です。 ただ、ターミナルを開くたびに手で叩くのは意外と面倒で、閉じ忘れたウィンドウの数だけプロセスが増えてしまうこともあります。 今回は caffeinate をlaunchd経由でログイン時に自動起動させ、常駐させる方法を紹介します。 Read more

April 29, 2026

CSS columnsの表示順を行優先に変えるMasonryレイアウトの実装

写真ギャラリーのようなレイアウトを作るとき、CSSの columns プロパティはとても便利です。 ただ、使ってみると写真の表示順が「上から下、次の列へ」となり、直感的な「左から右、次の行へ」の順番にならなくて困った経験はないでしょうか。 今回は、行優先の表示順をベースにしつつ、高さの異なる要素をバランスよく配置するMasonryレイアウトをReactで実装する方法を紹介します。 Read more

December 30, 2025

flutter_hooksでPage Viewのログを実装する

FlutterアプリでPage Viewのログを正確に送るのは、意外と面倒です。 画面遷移だけでなく、バックグラウンドからの復帰や、前の画面に戻ってきた時など、考慮すべきタイミングが複数あります。 今回は flutter_hooks を使ったアプリの構成で、useRouteObserver と useAppLifecycleListener という2つのHookを作り、それらを組み合わせた usePageViewLogger を実装しました。 Read more

October 4, 2025

【Dart/Flutter】Dot Shorthandsによって書き方が変わる!!

Dart 3.10では、コードをより簡潔に記述できるdot shorthandsが導入されました。 この機能を使うことで、特定のプロパティやメソッドにアクセスするコードを短縮して記述できます。 今までと書き方や見た目が結構変わるので、最初は戸惑うかもしれませんが、慣れてくるとこちらのほうが見やすいと感じるようになると思います。 Read more

August 31, 2025

Flutter3.35から追加されたDropdownMenuFormFieldが便利!!

今回は、Flutter 3.35 で追加されたDropdownMenuFormField について解説します。 これによって、よくある入力フォームの実装がかなり楽になるのでおすすめです。 以前のDropdownButtonを使った複雑な実装と比較しながら、DropdownMenuFormFieldがどれほど便利になったかを見ていきましょう。 Read more

© AAkira