ローカルIDE不要 + GitHub Copilot + GitHub ActionsでKotlin AndroidアプリをF-Droid公開まで持っていった全記録
ローカルIDE不要 + GitHub Copilot + GitHub ActionsでKotlin AndroidアプリをF-Droid公開まで持っていった全記録 | りつねぐのつぶやきまとめ
March 20, 2026
こんにちは、りつねぐ(@soraiyu)です。
家族と共有のノートPCだけで、Android Studioを一切インストールせずに、
Kotlinで作ったシンプルな通知マスクアプリ「KyuubiMask」をF-Droidに公開できた話です。
僕の開発環境と本当の制約
使ってるPCはASUS VivoBook 15。
- CPU: Intel Core i5-1035G1 (1.00GHz〜3.60GHz)
- RAM: 8GB
家族みんなで共有してるノートPCです。
スペックが低いというより、「家族と共有だからPCを汚したくない」というのが一番の理由でした。
- Android Studioインストールするとディスク容量がガッツリ減る
- 開発関連のファイルが散らかる
- 常駐プロセスが増えてCPU食う
- 家族が使いたいときに重くなるのが嫌
だからローカルに重いIDEは一切入れませんでした。
テストは自分のスマホ(Libero Flip)で実機のみ。
エミュレーターもADBも使わず、ビルドしたAPKをダウンロードしてインストールして確認するだけ。
アプリを作った本当の理由
スマホを家族や友人に貸したり、近くで画面を見せたりする日常のシーンで、
急に届く通知の内容がチラッと見えてしまうのが気まずい…と思ったことがきっかけです。
- SNSのDM
- LINEのグループトーク
- Twitterのリプライ通知
- 銀行や決済アプリのプッシュ
誰だって「今これ見られたくない!」って思う通知、ありますよね。
だから「通知内容を一切保存・表示せず、ただ汎用的な『New notification』に置き換えるだけ」のシンプルなマスクアプリを作りました。
KyuubiMaskの主な特徴
- 通知本文を完全に隠す(アプリ側で一切ログを取らず、表示もしない)
- 振動パターンはshort/double/heart/longから選べる
- クイック設定タイルでサクッとオンオフ
- 完全オフライン(インターネット権限なし)
- プライバシー最優先のFOSSアプリ(Apache 2.0)
画面共有中、プレゼン時、肩越しに覗かれる時、子供や家族にスマホを触らせる時…
そんな「他人に見える画面」の場面で、プライベートな通知を賢く守れるツールにしたかったんです。
- アプリ名:KyuubiMask
- GitHub: https://github.com/soraiyu/KyuubiMask
- F-Droid: https://f-droid.org/packages/com.rtneg.kyuubimask/
AI駆動開発のフロー(これが一番のポイント)
自分でゼロからコードを書くより、AIをうまく使うスタイルにしました。
主なツールはこれ。
- Grok:アプローチの相談・整理
- GitHub Copilot:リポジトリ連携で実装依頼・コード生成
- Gemini:レビュー・指摘
大まかな流れはこんな感じ。
- やりたいことを決める
- Grokに相談してアプローチ整理
- Copilotに実装依頼
- Copilot + Geminiでレビュー
- レビュー内容をCopilotに反映依頼
- OKならマージ
- GitHub Actionsでビルド → APKダウンロード → 実機テスト
この繰り返しで、僕の「コードを書く力」より「AIに正しく指示する力」「レビューして判断する力」がかなり鍛えられました。
正直に言うと、自分で全部書いたわけじゃないです。でもそれでいいと思ってます。
ハマったところ(代表的なもの)
-
家族と共有のノートPCでビルドできるか不安だった
→ GitHub Actionsでクラウドビルドだから全く問題なし。むしろ速い。 -
NotificationListenerServiceの権限導線
ユーザーへの説明文を丁寧に書いて、設定画面に飛ばす導線を作った。 -
GitHub Secretsでのkeystore管理
keystoreをBase64エンコードしてSecretsに保存。Actionsでデコードして署名。 -
Android 13以降のPOST_NOTIFICATIONS権限
Manifestに追加 + ランタイム許可をComposeで実装。 -
Gradleキャッシュ活用でビルド時間短縮
Actionsのcache-actionを使って依存ダウンロードを高速化。 -
Actionsの細かいトラブル(PR履歴からCopilotがまとめてくれたエピソード)
- secretsがstep-level ifで使えない → シェル内でif文に移動
- コンフリクトの原因が末尾スペース4つ(笑)
- リリースタグ衝突 → ブランチ名チェック追加
- F-Droid metadataタイミング問題 → タグ後更新ワークフローへ修正
これらは全部GitHub PRの会話から抽出されたリアルな話です。
(参考:https://github.com/soraiyu/KyuubiMask/pull/103)
CI/CD自動化(GitHub Actions)
android-ci.yml:プッシュ/PRでデバッグビルド + lintチェックrelease.yml:タグpushで署名付きAPKビルド → GitHub Release作成
Secretsでkeystore扱い、ArtifactsでAPKダウンロード可能。
今回のケースではGitHub Actionsでビルドできたけど、アプリの種類や容量によっては重たいかも。
大規模プロジェクトや複雑な依存関係、大量のテストが入るとビルド時間が長くなったり、Actionsの無料枠を超えたりする可能性もあるので、万能じゃないですよ。
でもシンプルなアプリなら本当に便利でした。
F-Droid公開までの流れ
fdroiddataにmetadataを提出。
審査ではアプリの意図や使い方を丁寧に聞かれ、真摯に答えただけ。
厳しいリジェクトはなく、提出から約1週間で公開されました。
今はF-Droidに載ってますが、ダウンロード数はまだ少ないです。
感想ももらってないけど、使ってくれたら嬉しいです。
よかったら試してみてください!
まとめ
家族と共有のノートPCだけで、Android Studioを一切入れずに、
AI(Grok/Copilot/Gemini)とGitHub ActionsだけでFOSSアプリをF-Droid公開まで持っていけました。
「共有PCだから無理かも」「IDEないと開発できない」と思ってる人に、
「こんなやり方もあるんだ」って伝わったら嬉しいです。
僕自身、AIへの指示力とレビュー力が身についたのが一番の収穫でした。
詳細はGitHubリポジトリを見てみてください。
Happy Hacking! 🦊
(2026年3月現在)