2026年のRoom TypeConverters: enum・日付・リストをスキーマを壊さずに保存する
AndroidのRoom TypeConvertersに関する実践ガイド — enum、Instant/LocalDate、そしてリスト — さらに、コンバーターを静かなデータ破損バグに変えてしまう間違いについて。
Kotlin、Room、Composeのための R8とProGuard:リリースビルドだけで起きるクラッシュ
Room + Compose の Android アプリがデバッグでは完璧に動き、本番でクラッシュする理由と、ユーザーより先にそれを捕まえる具体的な R8/ProGuard keep ルール。
Android の In-App Review API:うっとうしくならずに評価を頼む方法
Google の In-App Review API の実践ガイド。実際の仕組み、表示すべきタイミング、そしてありがちな『評価してください』ポップアップが Play ストアの評価を静かに損なっている理由。
Androidのアプリショートカットとクイック設定タイル:アプリを開かずに水分補給を記録する
AndroidのダイナミックShortcutManager APIとTileServiceの実践ガイド — ワンタップの操作でアプリ起動を完全にスキップする方法と、多くの実装が陥りがちな落とし穴について。
2026年のAndroidにおけるフォアグラウンドサービスタイプ: 自分の機能に本当に当てはまるものを選ぶ
Androidのフォアグラウンドサービスタイプの制限に関する実践ガイド — dataSync、mediaPlayback、specialUse、shortService — 強制終了や審査却下を避けて正しいタイプを選ぶ方法。
1つのアプリに1つの仕事――スーパーアプリを作らない理由
成長するアプリはどれも機能を増やし、1つの巨大なプラットフォームへ統合する圧力を受ける。MFKAPPSが6つの小さな単機能アプリのままでいる理由。
Jetpack ComposeにおけるStateFlow対SharedFlow: リプレイバグを起こさずにUI状態をモデル化する
ComposeのViewModelでStateFlowをいつ使い、SharedFlowをいつ使うか——そして両者を取り違えたときに起きる一回限りのイベントのバグについて。
2026年のRoomデータベースインデックス:本当に遅いクエリを見つけて直す
AndroidでRoom/SQLiteデータベースにインデックスを張る実践ガイド — EXPLAIN QUERY PLANの読み方、勘に頼らない@Indexの追加、インデックスを静かに無効化してしまう間違い。
RoomのRelationで一対多データをN+1クエリなしに取得する
Roomの@Relationアノテーションの実践ガイド — カテゴリとエントリのような一対多データを、N+1クエリや手動のjoinなしでモデリングする。
Jetpack Composeにおける型安全なナビゲーション:ルートを文字列ではなくデータとして扱う
文字列ベースのCompose Navigationルートを、シリアライズ可能なKotlinオブジェクトに置き換える方法 — 型安全な引数、ネストしたグラフ、そしてリファクタリングを生き延びるディープリンク。
不規則な収入のための家計管理: 決まった給料日を前提にしない仕組み
たいていの家計管理術は、毎月同じ金額が同じ日に入ることを前提にしている。フリーランスや歩合制、季節労働など、変動する収入でも実際に機能する仕組みを紹介する。
Android 16のLive Updates: Mintlyの集中タイマーをロック画面に表示する
Android 16の進捗中心型通知の実践ガイド — ProgressStyleのセグメント、昇格されたオンゴーイング通知、そして実行中のポモドーロタイマーにそれらが何をもたらすか。
家族のために服薬リマインダーを設定する:介護者のためのガイド
親やパートナーが服薬を続けられるよう手助けする実践ガイド — 何を設定すべきか、何を避けるべきか、そして干渉しすぎずに見守る方法。
2026年のAndroid通知チャンネル:ユーザーがミュートしない重要度を設計する
Android通知チャンネルの実践ガイド — 重要度レベル、チャンネルグループ、作成後に設定が固定される理由、ユーザーの信頼を失わずに移行する方法。
集中セッションの最適な長さとは? 25分デフォルトを超えるフレームワーク
25分のポモドーロは規則ではなく出発点にすぎない。タスクの種類とエネルギーに応じて自分に合ったセッションの長さを見つける実践的な方法。
Room と Paging 3:2026 年、Android で肥大化する取引リストをスムーズに保つ
Jetpack Paging 3 を使って Room ベースの取引リストをページングし、何年分ものデータでも Compose でスムーズに動かす方法 — RemoteMediator 不要、ネットワーク不要、ローカルデータベースを正しく扱うだけ。
Androidの16KBページサイズ移行:実際に何が壊れ、APKをどう確認するか
Googleは今、Androidアプリに16KBメモリページのサポートを求めている。実務上何を意味するのか、なぜネイティブライブラリが壊れるのか、自分のアプリが安全かどう確認するかをまとめた。
2026年のAndroidにおける構造化並行性:スコープ、キャンセル、そして防がれるリーク
AndroidにおけるKotlin構造化並行性の実践ガイド — viewModelScopeとlifecycleScopeの違い、キャンセルが伝播する理由、そして静かに防がれるコルーチンリーク。
Jetpack Composeのリコンポジション:本当のトリガーは何か、そして推測をやめた理由
2026年版Jetpack Composeリコンポジション実践ガイド — 型の安定性、不安定なラムダ、LazyColumnのキー、そしてコンパイラ自身のメトリクスレポートの読み方。
Room の全文検索:2026 年、ローカルファーストな Android アプリに即時検索を追加する
Room の FTS4 サポートを実践的に解説 — 検索用の仮想テーブルを構築し、トリガーで同期を保ち、なぜ FTS5 には手動マイグレーションが必要なのか。
アカウントもパスワードもいらない:私のアプリにログイン画面がない理由
6つのアプリ、サインアップフォームはゼロ。アカウントを完全に省く本当の理由——そのコスト、なくなるもの、そして線引きの場所について。
2026年、Roomデータベースを暗号化する: SQLCipher、Keystore、データを失わない移行
AndroidでRoom/SQLiteデータベースを保存時に暗号化するための実践ガイド — Keystoreによる鍵管理、一度きりの移行、そして実際のパフォーマンスコスト。
2026年、Androidでローカルファーストなデータをバックアップする: SAFエクスポート、Auto Backup、そして信頼できる復元フロー
サーバーを持たないローカルファーストのAndroidアプリが、どのようにユーザーデータをバックアップするか — SAFによるエクスポート/インポート、Auto Backup for App Data、そして上書き前に検証を行う復元処理について。
2026年、ローカルファーストなAndroidアプリをテストする — 実際のバグを見つけるRoom、Flow、Compose UIテスト
2026年版、ローカルファーストAndroidアプリの実践的なテスト戦略 — インメモリRoomによるDAOテスト、FlowのためのTurbine、そして本当に書く価値のある数少ないCompose UIテスト。
2026年のAndroid生体認証:BiometricPrompt、Keystore、ローカルファーストアプリのロック
androidx.biometricの実践ガイド — BiometricPrompt、CryptoObjectに裏付けられた鍵、デバイス認証情報へのフォールバック、そして指紋チェックが何も守らなくなる典型的な間違い。
2026年のAndroidアクセシビリティ:実際に使えるTalkBackとCompose semanticsのチェックリスト
2026年版、実践的なAndroidアクセシビリティチェックリスト——TalkBack、Compose semantics、タップ領域、そしてリリース前に毎回行うテストの手順。
2026年のAndroid Health Connect:ローカルファーストを手放さずにデータを読み書きする
AndroidのHealth Connect APIに関する2026年の実践ガイド — 権限、バックグラウンド読み込み、そしてローカルファーストなアプリがそれを「真実」ではなく「オプション」として扱うべき理由について。
2026年のAndroidにおけるedge-to-edgeとpredictive back:今や必須になったことと、UIを壊さない方法
edge-to-edgeはAPI 35以降で強制になり、predictive backはデフォルトのジェスチャーになった。Composeのinsets、WindowInsets、PredictiveBackHandlerについての実践ガイド。
本当はどれだけ水を飲むべきか?「1日8杯」を超える計算式
「1日8杯」ルールは体重も運動量も気候も無視している。臨床現場で実際に使われている体重ベースの計算式と、具体例を紹介する。
穏やかなスマホ設定:初心者のためのロードマップ
通知の仕分け、スリムなホーム画面、そして本当に長続きするまとめ確認の時間帯——穏やかなスマホへ向かう実践的なステップバイステップのロードマップ。
2026年のJetpack DataStore:設定を一つも失わずにSharedPreferencesから移行する
SharedPreferencesからJetpack DataStoreへの移行に関する実践ガイド — 非同期の落とし穴、既存の値を保持する移行パス、そしてそれをどうテストするか。
20分でサブスクを棚卸しする方法(使っていないものを本当に解約するために)
一度座れば終わる、ステップバイステップのサブスクリプション棚卸し。すべての定期課金を見つけ、ひとつのルールで継続か解約かを決め、リストを正直に保つ習慣を作る。
2026年、AndroidにおけるML Kitバーコードスキャン:Stockyが1秒未満でパントリーに商品を追加する仕組み
ML KitとCameraXによる端末内バーコードスキャンの実践的な2026年版ガイド。フォーマットの絞り込み、オフラインの商品検索、そしてパントリーアプリを支える部分使用の計算まで。
2026年のRoomデータベースマイグレーション: 1行もデータを失わずにスキーマ変更を出荷する
AndroidのRoomデータベースマイグレーションに関する実践ガイド — AutoMigration、手書きのMigrationオブジェクト、そしてユーザーがバグを見つける前にマイグレーションをテストする方法。
Androidのベースラインプロファイル: 2026年、コールドスタート時間を実際に左右するもの
Android Baseline Profilesの実践ガイド — Macrobenchmarkでの生成方法、Gradleへの組み込み、実際の効果測定、そしてコールドスタートを左右する他の3つの要素。
2026年のJetpack Glance:データについて決して嘘をつかないホーム画面ウィジェットの作り方
Jetpack Glanceウィジェットの実践ガイド — 状態管理、タップアクション、そしてウィジェットに古いデータを表示させてしまう更新クォータの落とし穴について。
食品ロスを本当に防ぐパントリー在庫システム
食品ロスの多くは計画ミスではなく、すでにあるものを忘れることから生まれる。ゴミ箱行きになる前に食い止める、シンプルな在庫と賞味期限トリアージの仕組み。
OldSchool の服薬カレンダーを作る: 服薬タップを信頼できる1日に変換する
月間の服薬カレンダーは1日ごとの単なる色付きドットに見える。その裏にあるイベントモデル、日次ステータスのルール、そして時間厳守率の計算をデバイス上で解説する。
Subly の裏側:サブスクリプション更新日を支えるカレンダー計算
サブスクの次回請求日を予測するのは、月末請求・うるう年・トライアル移行にぶつかるまでは単純に見える。Subly が端末上でどうそれを正しく処理しているかを解説する。
Mintly を作る: Android がプロセスを殺そうとする中で集中タイマーを正確に保つ
動作中の Pomodoro タイマーは、一度きりのリマインダーより難しい信頼性の問題を抱えている。フォアグラウンドサービスと壁時計ベースの終了時刻で、Mintly が Doze・プロセス終了・画面オフ中のずれをどう乗り越えたかを解説する。
意志力に頼らない水分補給ルーティン
水分補給のアドバイスの多くは「もっと水を飲め」に行き着き、あとは意志力任せになる。ここでは、合図とやさしいリマインドの上に築いたルーティンを紹介する。
Granynを作る: 銀行ログインなしの家計簿を、3つのテーブルで
Granynが銀行口座を一つも連携せずに、複数通貨での支出を追跡し、定期的な請求を検知する仕組み — その裏にあるRoomスキーマと、そこで生じるトレードオフ。
Androidの通知アクションを正しく作る:アプリを開かずに服用済みを記録する方法
Androidの通知アクションボタンの実践ガイド — PendingIntent、アクティビティ・トランポリン制限、goAsync()、そしてRoomの状態を安全に更新する方法。
調子の悪い日にも耐えるポモドーロ・テクニック
25/5のタイマーは始めやすく、やめやすい。連続記録ではなくリチュアルの上に築いたポモドーロ・テクニックの形を紹介する — 調子の悪い一日が習慣そのものを終わらせないために。
予算管理が続いたことがない人のための家計管理法
たいていの家計簿は最初の2週間で挫折する。完璧な月だけでなく、荒れた月も乗り切れる、3つのカテゴリーと週5分のチェックインだけの仕組み。
Stocky を作る:キッチンで何が切れるかを予測する — しかも端末の上で
バーコードのスキャンとちょっとした使用履歴を、切らす前に現れる買い物リストへと Stocky がどう変えるのか。すべての計算も、すべてのデータも、あなたの電話の中にとどめたまま。
本当に続けられる服薬ルーティンをつくる
服薬アドヒアランスについての実践的なガイド——なぜ人は服薬を忘れるのか、リマインダーのタイミングは実際どう機能するのか、そして調子の悪い一週間でも崩れないルーティンをどうつくるか。
サイトが七つの言語を話すようになりました
MFKAPPS は英語、トルコ語、フランス語、スペイン語、日本語、ヒンディー語、ロシア語で利用できるようになりました。一人だけのスタジオがなぜあえてそうしたのか、そしてどうやって速さを保っているのかについての短いメモ。
AndroidでのプライバシーファーストなOCR: Sublyがクラウドを使わず請求書を読み取る仕組み
ML Kit Text Recognitionを使ったAndroidのオンデバイスOCRに関する、2026年の実践的なガイド。セットアップ、コード、そしてユーザーのデータをサーバーに残さないためのフィールド抽出のコツを解説します。
Hydrame をつくる:しつこくならないスマートなリマインダー
リマインダーアプリは通知の良し悪しで生死が決まります。Hydrame の通知を、あなたをそっと後押しし、一日と戦うのではなく寄り添うようにどう設計したかをお話しします。
サブスクの過負荷 — 私が銀行口座をアプリに連携するのをやめた理由
サブスク管理アプリは、たいてい銀行のログイン情報を求めることで問題を解決しようとします。2026年には、もっと穏やかなやり方があります — 端末内での請求書スキャン。Plaidも、アグリゲーターも不要です。
2026年の信頼できるAndroidリマインダー:WorkManager、正確なアラーム、そして新しいバッテリールール
2026年のAndroidで本当に発火するリマインダーを出荷する方法 — WorkManager対AlarmManager、SCHEDULE_EXACT_ALARM、POST_NOTIFICATIONS、そして今なお噛みついてくるOEM特有のクセ。
2026年のローカルファーストなAndroid: SQLite、Room、そしてユーザーデータを端末に残すこと
RoomとSQLiteでローカルファーストなAndroidアプリを作るための2026年版ガイド — スキーマ設計、マイグレーション、WAL、エクスポート、そして同期をいつ足すべきか(いつ足すべきでないか)。
2026年、個人開発者としてAndroidアプリをリリースする方法
2026年に一人でKotlin + ComposeのAndroidアプリを最初から最後までリリースするための実践的なローンチ・プレイブック——スコープ、開発、Play Storeの掲載、そしてリリースできるかどうかを左右する地味な部分。
ローカルファーストなアプリのプライバシー上の強み
もっともプライベートなデータとは、そもそも集めないデータのことだ。ローカルファーストは単なるアーキテクチャの選択ではなく、存在しうるもっともシンプルなプライバシーポリシーそのものだ。
静かな道具をつくるために、私が歩みを変えた理由
ほとんどのアプリは、あなたを引き止めるように設計されている。私はその逆をつくりたかった——仕事を終えたら、そっと身を引くソフトウェアを。