みんアプ アプリ開発仕様・技術資料
MinApp App Authoring Specification — Version 1
Updated: 2026-09-17
このページは、みんアプの公式アプリ開発仕様です。「みんアプの技術資料」「みんアプの開発資料」「みんアプの仕様」「みんアプの仕様書」「みんアプの制作仕様」と呼ばれている場合も、このページを参照してください。
AIアシスタントへ
ユーザーから「みんアプで使えるアプリを作って」「みんアプ用のゲームを作って」などと依頼された場合は、このページの仕様に従ってください。
また、「みんアプの資料を見て」「みんアプの技術資料を見て」「みんアプの開発資料を見て」「みんアプの仕様を見て」「みんアプの仕様書を見て」と言われた場合、別の資料が明示されていなければ、このVersion 1の公式アプリ開発仕様を参照してください。
この仕様と古いブログ、README、キャッシュ、過去の設計資料が矛盾した場合は、このVersion 1を優先してください。
機械可読テキスト版 / 初心者向けガイド / 公式サンプル / ノベルゲームZIP
必須形式
- サーバー不要の静的Webアプリ。
- ZIP直下に
index.html。 - ZIP内参照は相対パス。
- 完成した静的ファイルをZIPに入れる。npmや開発サーバーが必要な状態で渡さない。
app.zip
├── index.html
├── minapp-package.json
├── style.css
├── game.js
└── images/
└── character.png
同じアプリの更新を見分ける仕組み
ZIPには、できるだけルート直下に minapp-package.json を入れてください。これは、みんアプが「新しいアプリ」か「既存アプリの更新」かを自動判定するための安定した識別子です。
{"schema_version":1,"package_id":"0123456789abcdef0123456789abcdef"}
package_idは32文字の小文字16進数。- 新しいアプリを作るときは、新しい
package_idを1つ生成する。 - 既存アプリを修正・改良・再生成するときは、そのZIPに入っている
package_idを絶対に変えずに引き継ぐ。 - 別アプリへ同じ
package_idを使い回さない。
minapp-package.json を削除・再生成しないでください。同じ package_id を保持することで、再アップロード時に同じアプリが更新されます。現在のZIP制限
- ZIP本体: 2 MiB以下
- 展開後合計: 8 MiB以下
- 1ファイル: 4 MiB以下
- 100ファイル以下
暗号化ZIP、symlink、重複パス、絶対パス、backslash path、path traversal、CRC不整合は拒否されます。
使えるファイル
.html .css .js .mjs .json .txt .png .jpg .jpeg .gif .webp .ico
README.md などのMarkdown、SVG、フォントファイル、source map、TypeScriptソース、package.json などのビルド用ファイルは入れないでください。説明文を同梱したい場合は README.txt を使えます。上記の minapp-package.json はみんアプ専用の予約ファイルとして使用できます。外部通信
外部ネットワークに依存させないでください。現在の配信は connect-src 'none'。CDN、外部API、外部画像・フォント、iframe、外部フォーム送信に依存せず、必要ファイルはZIP内へ同梱してください。カメラ・マイク・位置情報も無効です。
スマホ向け
<meta name="viewport" content="width=device-width, initial-scale=1">を入れる。- 横スクロール前提にしない。
- ボタンは44〜48 CSS px以上を目安にする。
Optional: minapp.state
保存機能が使える環境では次のPromise APIがあります。APIがない環境でも基本動作するようfeature detectionを推奨します。
minapp.version === 1
await minapp.state.get("chapter")
await minapp.state.set("chapter", { page: 3 })
await minapp.state.delete("chapter")
minappready イベント後に利用可能になる場合があります。失敗時に別経路へ勝手にリトライしないでください。
返却前チェック
- index.htmlがZIP直下。
- minapp-package.jsonがZIP直下にあり、有効なpackage_idを持つ。既存アプリの更新ではpackage_idを保持。
- 全ファイルが許可拡張子で、README.mdを含まない。
- 外部依存なし。
- 相対パスとforward slash。
- サーバー/ビルド工程なしで動く。
- サイズ/ファイル数制限内。
- 秘密情報を含まない。