1. はじめに:AIの恩恵と「完成」という幻
近年、生成AIやコーディングエージェントの進化により、個人開発のハードルは劇的に下がりました。私もその恩恵をフルに受け、Android向けの広告ブロックアプリ「AdNine」を開発しました。
技術スタックとしては以下の通りです。
- VpnService を利用したシステムワイドなパケット解析とDNSブロック
- 独自ブラウザ(WebView)へのJavaScriptインジェクションによる動画広告のスキップ
- Stripeを用いたサブスクリプション決済(Webhook連携)
KotlinやJetpack Composeを書き、複雑な決済ロジックを実装するプロセスは、優秀なAIアシスタントのおかげで驚くほどスムーズに進みました。「よし、コア機能は動く。アプリ完成だ!」とガッツポーズをしたのが運の尽きでした。
本当の地獄は、コードを書き終えた後の「事務作業」にありました。
本記事では、一人で開発からリリースまでを完遂する個人開発者が直面する、泥臭くて重い「最後の10%の壁」について、リアルな実体験を共有します。
2. 第一の壁:アプリを配る場所がない(LPとインフラ構築)
AdNineはシステムレベルで広告をブロックするという強力な性質上、Google Playストアのポリシーを通過するのは困難です。そのため、最初からストア外配布(いわゆる野良アプリ)としてのリリースを選択しました。
しかし、野良アプリには「ストアという強力な集客・配布プラットフォーム」がありません。自前でランディングページ(LP)を作り、そこからAPKをダウンロードさせる必要があります。
バックエンドにFirebaseを使っていたため、LPもFirebase Hostingで公開することにしました。
HTML/CSSを書き、いざデプロイしようとすると、今度は firebase.json の設定で躓きます。Hosting機能だけを更新したいのに、不要なFunctionsまでデプロイしようとしてエラーを吐いたり、ディレクトリのルーティングがおかしくなったり……。
コードのエラーならAIがサクッと解決してくれますが、こうしたインフラ設定の「ちょっとした食い違い」は、ドキュメントを睨みながら泥臭く設定ファイルを書き換えて解決するしかありませんでした。
3. 第二の壁:「Playプロテクト」という最恐の門番
なんとかLPを立ち上げ、APKをダウンロードできるようになった後、野良アプリ最大の壁が立ちはだかります。「Google Play プロテクト」です。
自分でビルドした安全なアプリであっても、ストアを経由していない以上、インストール時に「デバイスを保護するため、アプリをブロックしました」という真っ暗で恐ろしい警告画面が出ます。
開発者からすれば「あぁ、いつものアレね」ですが、一般のユーザーからすれば「ウイルスに感染する!」とパニックになり、即座に離脱する(あるいは怒る)十分な理由になります。
さらに開発中には、既存のデバッグ版アプリとの署名競合や、versionCode の不整合で「アプリはインストールされていません」とOS自体に物理的に弾かれるトラブルも頻発しました。
これを解決するためには、プログラムを弄るのではなく「ユーザーへの丁寧な説明」というアナログな手法しかありませんでした。
LP内に実際の警告画面のスクリーンショットを並べ、「この小さな『インストールする』という文字をタップすれば大丈夫です」という専用のガイドセクションを設ける。これはコーディングではなく、完全に「カスタマーサクセス」の領域でした。
4. 第三の壁:価値を一瞬で伝える「プロモーション素材」の作成
エンジニアとしては「VpnServiceによる高度なDNSフィルタリング」とドヤ顔で書きたいところですが、ユーザーが求めているのは技術ではなく「うざい広告が消える」という結果です。
文字だけで効果を伝えるのは不可能だと悟り、デモ動画を作ることにしました。
ここからの作業は、もはやエンジニアリングではありませんでした。
- 画面を埋め尽くすような悪質なダミー広告(偽の警告バナーや、情報商材風のギラギラした画像)を生成する。
- それを組み込んだダミーアプリを作り、スマホで画面録画する。
- AdNineをオンにした状態でもう一度画面録画する。
- CapCutなどの動画編集ソフトを開き、2つの動画を「左右分割(Before/After)」に配置して、スクロールのタイミングを0.1秒単位で合わせる。
- LPのダークテーマに合わせて、セキュリティ感のあるアイコン(シールドやビーム)をデザインし、配置する。
この「どう見せるか」というクリエイティブな労働作業は、AIには決して丸投げできない重労働でした。
5. まとめ:AI時代に残る「人間の仕事」とは
昨今、「AIにコードを書かせたら、アイデアをパクられてあっという間にシェアを奪われるのでは?」と心配する声をよく聞きます。
しかし、今回すべてを一人でやり切って確信しました。そんな心配はほぼ無用です。
AIは特定の関数やAPIの叩き方は完璧に教えてくれます。しかし、以下のことはやってくれません。
- バラバラのシステム(アプリ、LP、決済基盤)を破綻なく繋ぎ合わせる全体設計。
- 実機で謎のインストールエラーが出たときの泥臭い検証。
- ユーザーがどこで不安を感じ、どこで離脱するかを想像してUIを整える気配り。
- そして何より、モチベーションが尽きそうになる休日にPCを開き、細々とした事務作業を「最後までやり切る力」。
この「最後の10%の面倒くささ」こそが、個人開発において最も高く、AIにも容易には突破できない強固な参入障壁(モート)になっているのだと思います。
おわりに
そんな泥臭い「事務作業」の壁を乗り越え、ようやくリリースに漕ぎ着けたのが、Android向け広告ブロックアプリ「AdNine」です。
システムレベルのDNSブロックと、独自ブラウザによる動画広告スキップを組み合わせたハイブリッド構成で、快適なブラウジング環境を提供します。
Stripe決済を利用していますが、面倒なクレジットカード登録なしで、今すぐ3日間の無料トライアルが始められます。
「野良アプリのインストール体験」や「LPの作り込み」の参考としても、ぜひ一度触ってみてください。
https://adnine-stripe-dff6a.web.app/


