ANTIGRAVITY LABEN
記事一覧/アプリ開発
アプリ開発/2026-04-18中級

AntigravityでアートアプリをiOS/Androidに同時リリースした話 — 企画・開発・審査の全記録

アーティストである自分のポートフォリオアプリをAntigravityで作り、iOS/Android同時リリースした実体験。技術だけでなくコンセプト設計から審査通過まで全部記録しました。

Antigravity338アートアプリiOS27Android27リリース2個人開発89

「自分のアート作品を見せるアプリを自分で作る」というアイデアは、アーティストなら誰でも一度は思い浮かべるものではないでしょうか。

Antigravityを使って実際にやってみました。iOS・Android同時リリースまでの全プロセスを、技術的な内容だけでなくコンセプト段階から正直に記録します。

コンセプト設計——「ギャラリーアプリ」ではなく「作品の延長」として考える

最初に決めたのは、このアプリを「ポートフォリオ表示ツール」ではなく「作品そのもの」として設計するということです。

一般的なポートフォリオアプリは機能が主役です。「写真を見る、タップすると拡大、スワイプで次へ」——これは機能は正しいですが、美術展示の体験とは異なります。私が目指したのは、アプリを開いた瞬間から「この人の世界観だ」と感じてもらえる体験でした。

具体的には次のことを設計段階で決めました。

インタラクションを最小化する: ナビゲーションボタン、ハンバーガーメニュー、タブバーはすべて排除。作品に集中できる余白を最優先にします。

色を作品に合わせる: UI要素の色は作品に合わせて動的に変わる(Dynamic Color)。背景色が作品のトーンに寄り添う。

テキストは最低限: 作品タイトルと制作年のみ。長い説明文は不要。

この方向性をAntigravityのAGENTS.mdに書き込んでから開発を始めたことで、後のやりとりがスムーズになりました。

技術スタックの選択——React NativeとExpoを選んだ理由

iOS/Android同時リリースを前提にしているため、ネイティブで2つ作るのではなくReact Native(Expo)を選びました。

AntigravityはReact NativeとExpoのコード生成が安定しており、「画像ギャラリー+全画面表示+スワイプナビゲーション」の基本構造は最初のプロンプトで80%完成しました。

AGENTS.mdの内容(抜粋):
- アーキテクチャ: React Native + Expo SDK 52
- 画像表示: expo-image(パフォーマンス優先)
- 状態管理: Zustand(シンプルなグローバル状態のみ)
- アニメーション: react-native-reanimated v3
- デザイン原則: 最小限のUI要素、作品が主役

Dynamic Colorの実装(画像の支配色を取得してUIに反映する処理)はAntigravityだけでは難しく、expo-imageのcolor取得機能とreact-native-reanimatedを組み合わせる部分は、自分でコードを読んで理解しながら調整する必要がありました。

ただ、Antigravityに「expo-imageから支配色を取得してアニメーション付きで背景色を変えたい」と伝えたところ、正確ではないもののベースになるコードを出してくれたので、そこから修正する形で進めることができました。

Apple / Google審査で詰まった2つのポイント

Apple: Privacy Manifestが必要だと分からなかった

初回申請がリジェクトされた理由の一つが、Privacy Manifestファイルの不備でした。サードパーティライブラリ(expo-imageなど)を使っている場合、そのライブラリのプライバシー利用を宣言するPrivacy Manifest(PrivacyInfo.xcprivacy)が必要です。

Antigravityに「このエラーを解決したい」とリジェクト文を渡したところ、必要なファイルの内容と配置場所を教えてくれました。ただし、Privacy Manifestの内容が正確かどうかは自分で確認する必要がありました。Apple公式ドキュメントと照らし合わせながら修正して再申請し、通過しました。

Google Play: ターゲットAPI要件の変更

Google Playは定期的にターゲットAPIレベルの要件が変わります。申請時点でAPI level 34以上が必要でしたが、Expoのデフォルト設定がそれを満たしていなかったためリジェクトされました。

app.json(またはapp.config.js)のtargetSdkVersionを更新してビルドし直すだけで解決しました。Antigravityに直接「このリジェクト理由への対処を教えて」と聞いても回答は出てきましたが、Expo固有の設定ファイルとAndroid Studioの設定の違いに混乱したため、Expoの公式ドキュメントを参照しながら自分で修正しました。

リリース後に分かったこと

アートアプリで特徴的なのは、ダウンロード数より滞在時間が重要な指標になるということです。

Analytics(Firebase)で確認すると、1画面の平均表示時間が通常のアプリ(数秒程度)より長く、1枚の作品に数十秒留まってくれるユーザーが多かったです。これは「見せ方」への投資が機能している証拠だと感じました。

App StoreのレビューにはSNSではつながっていない人からのコメントが届くことがあり、アプリという形でアートを届けることの特殊な価値を実感しました。

これから同じことをやりたい人へ

Antigravityでアートアプリを作るとき、一番重要なのは「コンセプトを先に言語化すること」です。

技術的な構造よりも「このアプリを開いた人にどんな体験をしてほしいか」を文章にして、AGENTS.mdに書いておく。そうするとAntigravityの提案が、機能的に正しいだけでなく「この世界観に合っている」ものになってきます。

アートとコードの両方が好きな人には、Antigravityでの個人アプリ開発は特別な体験になると思います。自分の作品を、自分で作ったプラットフォームで届けることの面白さを、ぜひ体験してみてください。

シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

アプリ開発2026-07-03
ユニバーサルリンクが黙って壊れる — 関連付けファイルのドリフトをエージェントの検証ゲートで塞ぐ
ユニバーサルリンク/App Linksは、関連付けファイルやエンタイトルメントがズレると例外を出さずにブラウザへ落ちます。ルート定義を単一の真実源にまとめ、エージェントに週次と公開前の検証を任せる設計をまとめました。
アプリ開発2026-06-21
Play Store の密度分割で、特定の端末だけ内蔵壁紙が消えた — drawable と nodpi の境界設計
App Bundle の密度分割は、密度別に分けてはいけない画像まで分けてしまうと、特定の密度バケットの端末からだけリソースを取りこぼします。bundletool で再現し、drawable-nodpi への移動か密度分割の無効化で直すまでを、判断基準ごと残しました。
アプリ開発2026-05-26
アプリ内レビュー要求の出し分け条件を Antigravity Editor で 5 アプリ統一した数日の記録
個人開発で運用してきた iOS 壁紙アプリ 5 本の SKStoreReviewController 呼び出し条件を、Antigravity Editor のマルチファイル編集機能でひとつの基準にまとめ直したときの数日間の所感を、コード例とあわせて静かに記録しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →