0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# 【連載1】Google Playのテスター12人が集まらないので、アプリ配布サイトを自分で作ることにした(構想編)

0
Posted at

はじめに

私は客先常駐で働いていて、勤務時間を自分で管理する必要があります。そのために作った勤務時間アプリなど、自作の Android アプリがいくつかあります。

これらを Google Play で公開しようとしましたが、「テスター12人・14日間」のクローズドテストを満たせず、公開まで進めませんでした。

そこで、自分のアプリを紹介・配布するサイトを、自分で作ることにしました。この連載では、その作る過程を順番に書いていきます。

この記事は連載の1回目です。「なぜ作るのか」「どんな作りにするのか」をまとめます。コードは2回目から出てきます。

連載の予定

  1. 構想編:なぜ自分で配布サイトを作るのか(この記事)
  2. 環境構築編:Next.js と Vercel で公開するまで
  3. データベース編:Supabase にアプリ情報を入れる
  4. 一覧・詳細ページ編
  5. 管理者ページ編:ログインと追加・更新・削除
  6. APK 配布編:リリース署名と GitHub Releases
  7. プライバシーポリシー・仕上げ編
  8. 振り返り

Google Play の「テスター12人・14日間」とは

2023年11月以降に作った個人のデベロッパーアカウントでは、アプリを一般公開する前に、クローズドテストを行う必要があります。

  • 12人以上のテスターが参加する
  • テスターが14日間続けて参加している

この2つを満たさないと、本番公開を申請できません。身近に Android を使っていて、14日間付き合ってくれる人を12人集めるのは、個人には意外と大変でした。

Google Play 以外で配る方法を考えた

Android は、Google Play を通さなくても、APK ファイル(Android アプリのインストール用ファイル)を直接配れます。そこで、配り方をいくつか比べました。

方法 よい点 気になった点
Google ドライブで共有 すぐ配れる 確認画面が出る。ダウンロードの回数に上限がある
GitHub Releases だけで配る 無料・安定している アプリの紹介ページとしては見づらい
紹介サイト+GitHub Releases アプリの説明や画面を見せられる。APK は GitHub に任せられる サイトを作る手間がかかる

最後の「紹介サイトを作り、APK 本体は GitHub Releases に置く」形にしました。サイトを作る手間はかかりますが、作る過程そのものを学習と記事のネタにできると考えました。

どんなサイトにするか

利用者向けのページ

ページ 内容
アプリ一覧 アプリがカードで並ぶ(アイコン・名前・ひとこと説明)
アプリ詳細 説明・画面の画像・バージョン・対応 OS・ダウンロードボタン
インストール方法 APK の入れ方を手順と画像で説明
プライバシーポリシー サイトとアプリが扱う情報の説明

管理者ページ(自分だけが使う)

  • ID とパスワードでログイン
  • アプリの追加・更新・削除
  • アイコンと画面の画像のアップロード

アプリを増やすたびにコードを書き換えるのは面倒なので、最初の版から管理者ページを入れることにしました。

全体のしくみ

 利用者 ──見る──▶ サイト(Next.js / Vercelで公開)
                     │
                     ├─ アプリ情報を読む ──▶ データベース(Supabase)
                     │
                     └─ ダウンロード ──▶ APKファイル(GitHub Releases)

 管理者(自分)──ログイン──▶ 管理者ページ ──追加・更新・削除──▶ データベース

使う技術と、選んだ理由

役割 使うもの 費用
画面 Next.js(App Router・TypeScript・Tailwind CSS) 無料
公開 Vercel(無料プラン) 無料
データベース・ログイン・画像置き場 Supabase(無料プラン) 無料
APK の置き場所 GitHub Releases 無料

Next.js と Vercel

  • React を学び直したかったからです。最近は AI にコーディングを任せることが多く、書き方を忘れてしまっていました
  • Vercel は Next.js を作っている会社のサービスで、GitHub に push するだけで公開まで進みます

Supabase

管理者ページを作るには、次の3つが必要になります。Supabase なら、1つのサービスでまかなえます。

必要なもの Supabase の機能
アプリ情報を保存する場所 データベース(PostgreSQL)
管理者のログイン Auth
アイコン・画面の画像の置き場所 Storage

APK は GitHub Releases に置く

Supabase の無料プランは、ファイル置き場が 1GB までです。APK は1つ数十MBあり、バージョンを上げるたびに増えていきます。そこで APK は GitHub Releases に置き、データベースにはダウンロード用の URL だけを入れることにしました。

リポジトリは、次のように分けます。

リポジトリ 公開設定 中身
サイト本体 公開 このサイトのソースコード
アプリのソースコード 非公開 アプリのプログラム本体
配布専用 公開 Releases に APK を置くだけ

配布専用のリポジトリを公開にするのは、非公開だと GitHub にログインしていない人が APK をダウンロードできないためです。複数のアプリを1つのリポジトリで配るので、Releases のタグにはアプリの ID を付けて区別します(例:sample-todo-v1.0.0)。

費用は0円

Vercel・Supabase・GitHub とも、無料プランの範囲で収まる見込みです。

ただし、次の2点には注意が必要です。

  • Vercel の無料プラン(Hobby)は、個人の非営利目的に限られます
  • Supabase の無料プランは、1週間アクセスがないとプロジェクトが一時停止します

サイト本体のソースコードは公開する

記事からコード全体へ案内できるように、サイト本体のリポジトリは公開します。

公開するうえで、次のことに気をつけます。

  • 秘密の鍵(Supabase の secret key など)は .env.local と Vercel の環境変数だけに置き、GitHub には上げない
  • Supabase の publishable key(公開用の鍵)はブラウザから見える前提の鍵なので、守りはデータベース側の RLS(行ごとの権限設定)で行う
  • 管理者ページのしくみが見えても困らないように、「コードを隠すこと」ではなく「パスワードと RLS」で守る

今後やりたいこと

最初の版ができたら、PC アプリ(Windows・Mac)の配布や、Web アプリの紹介にも対応したいと考えています。

おわりに

次回は、Next.js のプロジェクトを作り、Vercel で公開するところまでを書きます。

ソースコードは GitHub で公開しています(作りながら更新しています)。

サイトは、APK を配れるようになった段階(連載の第6回ごろ)で公開する予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?